Логика:
Имеется сервер с пачкой примонтированных СХД, которые доступны по сети через NFS. Со временем, объемы данных на СХД выросли, возможно изменилось количество операций чтения/записи (как было ранее, не скажу. Мне выдали только проблему по факту). Сейчас, когда по сети начинают ворочаться много больших файлов, процессы nfsd утилизируют весь процессор да еще и с диким LA.
Данные:
root@server
top - 12:53:02 up 1 day, 13 min, 6 users, load average: 55.12, 55.75, 54.44
Tasks: 486 total, 1 running, 485 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.5%us, 4.6%sy, 0.0%ni, 1.8%id, 91.0%wa, 0.0%hi, 1.1%si, 0.0%st
Mem: 99154920k total, 98773896k used, 381024k free, 5268k buffers
Swap: 98303992k total, 148728k used, 98155264k free, 94933644k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
138 root 20 0 0 0 0 S 5.6 0.0 22:06.08 kswapd0
2878 root 20 0 0 0 0 D 3.0 0.0 20:56.45 nfsd
2848 root 20 0 0 0 0 D 2.6 0.0 21:24.13 nfsd
2849 root 20 0 0 0 0 S 2.6 0.0 20:49.05 nfsd
2852 root 20 0 0 0 0 D 2.6 0.0 20:56.47 nfsd
2856 root 20 0 0 0 0 D 2.6 0.0 21:04.67 nfsd
2857 root 20 0 0 0 0 D 2.6 0.0 20:44.28 nfsd
2858 root 20 0 0 0 0 D 2.6 0.0 20:59.00 nfsd
2861 root 20 0 0 0 0 D 2.6 0.0 20:56.32 nfsd
2870 root 20 0 0 0 0 D 2.6 0.0 21:10.91 nfsd
2871 root 20 0 0 0 0 S 2.6 0.0 21:00.38 nfsd
2872 root 20 0 0 0 0 D 2.6 0.0 21:21.94 nfsd
2875 root 20 0 0 0 0 D 2.6 0.0 20:49.67 nfsd
2879 root 20 0 0 0 0 S 2.6 0.0 20:56.01 nfsd
2882 root 20 0 0 0 0 S 2.6 0.0 20:50.49 nfsd
2885 root 20 0 0 0 0 D 2.6 0.0 21:17.77 nfsd
2886 root 20 0 0 0 0 S 2.6 0.0 21:09.52 nfsd
2887 root 20 0 0 0 0 S 2.6 0.0 21:03.66 nfsd
2890 root 20 0 0 0 0 D 2.6 0.0 21:05.08 nfsd
2847 root 20 0 0 0 0 S 2.3 0.0 20:54.60 nfsd
2850 root 20 0 0 0 0 D 2.3 0.0 20:50.19 nfsd
2851 root 20 0 0 0 0 D 2.3 0.0 21:19.14 nfsd
2853 root 20 0 0 0 0 S 2.3 0.0 20:51.41 nfsd
2854 root 20 0 0 0 0 D 2.3 0.0 21:19.86 nfsd
2855 root 20 0 0 0 0 D 2.3 0.0 20:56.36 nfsd
2859 root 20 0 0 0 0 D 2.3 0.0 21:08.06 nfsd
2862 root 20 0 0 0 0 D 2.3 0.0 21:12.67 nfsd
2863 root 20 0 0 0 0 R 2.3 0.0 20:48.78 nfsd
2864 root 20 0 0 0 0 D 2.3 0.0 20:47.64 nfsd
2865 root 20 0 0 0 0 D 2.3 0.0 21:09.39 nfsd
2866 root 20 0 0 0 0 D 2.3 0.0 21:16.52 nfsd
2867 root 20 0 0 0 0 D 2.3 0.0 21:04.39 nfsd
2868 root 20 0 0 0 0 D 2.3 0.0 21:03.13 nfsd
2869 root 20 0 0 0 0 D 2.3 0.0 21:07.90 nfsd
2873 root 20 0 0 0 0 S 2.3 0.0 21:06.49 nfsd
2874 root 20 0 0 0 0 S 2.3 0.0 20:48.77 nfsd
root@server
# uname -a
Linux server 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
root@server
# mount
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdj2 on / type ext4 (rw)
/dev/sdj3 on /scr type ext4 (rw)
/dev/sdd on /data20 type xfs (rw)
/dev/sdf on /data7 type xfs (rw)
/dev/sdg on /data9 type xfs (rw)
/dev/sdh on /data10 type xfs (rw)
/dev/sdi on /data11 type xfs (rw)
/dev/sda on /data6 type xfs (rw)
/dev/sdb on /data type xfs (rw)
/dev/sdc on /data1 type xfs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
10.1.10.12:/data30 on /data30 type nfs (rw,tcp,rsize=32768,wsize=32768,sloppy,vers=3,addr=10.1.10.12)
/data/USERS/kate on /home/kate type none (rw,bind)
10.1.10.12:/data30/userg on /home/userg type nfs (rw,tcp,hard,intr,vers=3,rsize=32768,wsize=32768,sloppy,addr=10.1.10.12)
root@server
# cat /etc/exports
/data20 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data1 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data2 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data3 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data4 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data5 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data6 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data7 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data8 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data9 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data10 10.0.0.0/24(rw,insecure,sync,no_root_squash)
/data11 10.0.0.0/24(rw,insecure,sync,no_root_squash)
root@server
# nfsstat -s
Server rpc stats:
calls badcalls badauth badclnt xdrcall
299392224 0 0 0 0
Server nfs v3:
null getattr setattr lookup access readlink
3596 0% 4158187 1% 8122 0% 2343564 0% 3433751 1% 218 0%
read write create mkdir symlink mknod
161427139 53% 127235135 42% 20278 0% 233 0% 9424 0% 0 0%
remove rmdir rename link readdir readdirplus
24284 0% 156 0% 5006 0% 1 0% 43384 0% 29864 0%
fsstat fsinfo pathconf commit
55761 0% 5464 0% 740 0% 222010 0%
root@server
# iostat
Linux 2.6.32-358.el6.x86_64 (server) 07/05/2016 _x86_64_ (12 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.16 0.00 5.98 34.22 0.00 59.64
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdc 1118.98 134866.58 101654.83 13470297724 10153151476
sdd 4.47 17.86 71.62 1784193 7152995
sde 0.02 0.06 0.00 5653 0
sdf 0.02 0.08 0.01 8287 512
sdg 0.02 0.08 0.01 8335 512
sdh 0.02 0.08 0.01 8223 512
sdi 0.05 0.15 0.19 14702 18546
sdj 9.51 532.10 711.66 53145639 71079248
sda 10.45 1305.31 2845.53 130373138 284208197
sdb 4.74 523.57 715.44 52293936 71457546
Менял уже настройки rsize, wsize для монтировок.
Менял количество максимальных процессов RPCNFSDCOUNT.
В какую сторону копать?
Самая большая нагрузка, я так понимаю, идет на /dev/sdc1?
Кроме того, может, по опыту кто-то сможет сказать - не много ли ресурсов расшарено на одном сервере? Может, не имеет большого смысла копать софтово, а просто сразу разнести СХД на другие сервера?
Сегодня на вечер в планах поменять параметры wdelay в настройках exports, а так же увеличить MTU.
Тему Мониторинг и контроль процессов NFS читал. И поиском по форуму пользовался.