Re: rpc.mountd high cpu usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 06.01.2014 12:18, Karel Zak wrote:
> statfs("/some/export", {f_type=0x2fc12fc1, f_bsize=131072,
> f_blocks=50331648, f_bfree=8355553, f_bavail=8355553,
> f_files=2139121087, f_ffree=2139021753, f_fsid={1912623216,
> 10933642}, f_namelen=255, f_frsize=131072}) = 0
> stat("/some/export", {st_mode=S_IFDIR|0775, st_size=15, ...}) = 0
> lstat("/some/export", {st_mode=S_IFDIR|0775, st_size=15, ...}) = 0
> lstat("/some/export/..", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
> stat("/some/export", {st_mode=S_IFDIR|0775, st_size=15, ...}) = 0
> open("/sys/dev/block/0:187", O_RDONLY)  = -1 ENOENT (No such file or
> directory)

This is blkid_devno_to_devname(), the first attempt is /sys, but it
failed, then it tries to scan /dev (which is pretty expensive method).

BTW, what is device 0:187?

It seems like btrfs... maybe we can  optimize the code to ignore such
devices especially when get_uuid_blkdev() filters out btrfs :-)

This machine is running ZFS On Linux with 180 multipathed disks. I wouldn't be amazed if ZFS and BTRFS suffer from the same problem because they are both volume managers and filesystems in one.

The another problem is poorly designed relationship between match_fsid()
and uuid_by_path().  The function uuid_by_path() is called in loop and
blkid is *always* requested, but the blkid_val is used when type==0.
It would be better to call get_uuid_blkdev() only when type==0.

The patch below is just untested suggestion :-)

Should/Would ZFS_SUPER_MAGIC 0x2fc12fc1 be added to make this untested suggestion theoretically work with ZFS? I got this from the ZFS On Linux source code (https://github.com/zfsonlinux/zfs/blob/master/include/sys/zfs_vfsops.h). Oh, and I just noticed it is also in the f_type above :-)

Greets,

Sander


--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux