Тюнинг NFS (CentOS 6) (nfsd, загрузка CPU 100%)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модератор: SLEDopit

v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Тюнинг NFS (CentOS 6)

Сообщение v1k3ng »

Здравствуйте.
Логика:
Имеется сервер с пачкой примонтированных СХД, которые доступны по сети через 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 читал. И поиском по форуму пользовался.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18091
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тюнинг NFS (CentOS 6)

Сообщение Bizdelnick »

Проверьте, всё ли в порядке с сетью вообще. Скорость, потеря пакетов, время пинга, всё такое. А то может оказаться, что Вы вообще не там проблему ищете.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Re: Тюнинг NFS (CentOS 6)

Сообщение v1k3ng »

Нда, я еще вроде не упомянул. Сеть 10Gb.
Вот, на скорую руку попингал с этого страдающего сервера все остальные:
[root@server ~]# ping server2
rtt min/avg/max/mdev = 0.103/0.143/0.167/0.022 ms
[root@server ~]# ping server3
rtt min/avg/max/mdev = 0.056/0.066/0.076/0.011 ms
[root@server ~]# ping server4
rtt min/avg/max/mdev = 0.061/0.078/0.088/0.008 ms
[root@server ~]# ping server5
rtt min/avg/max/mdev = 0.145/0.227/0.294/0.051 ms
[root@server ~]# ping server6
rtt min/avg/max/mdev = 0.068/0.495/2.571/0.824 ms

И при этом ни одной потери пакета.
Кроме того, на интерфейсах тоже потерь нет:

root@server

# ifconfig eth0 Link encap:Ethernet HWaddr B8:CA:3A:EC:77:85 inet addr:10.10.10.11 Bcast:10.10.10.255 Mask:255.255.255.0 inet6 addr: fe80::baca:3aff:feec:7785/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14437761 errors:0 dropped:0 overruns:0 frame:0 TX packets:180283803 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1564325686 (1.4 GiB) TX bytes:271536519192 (252.8 GiB) Interrupt:34 Memory:d1000000-d17fffff eth1 Link encap:Ethernet HWaddr B8:CA:3A:EC:77:87 inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::baca:3aff:feec:7787/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3694510199 errors:237 dropped:0 overruns:237 frame:0 TX packets:4284897942 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4644644605325 (4.2 TiB) TX bytes:6048125824336 (5.5 TiB) Interrupt:36 Memory:d2000000-d27fffff

Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18091
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тюнинг NFS (CentOS 6)

Сообщение Bizdelnick »

А что за СХД, как подключены? Судя по огромному iowait, надо не NFS тюнить, а именно их (ну или XFS, но я про неё практически ничего не знаю).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Re: Тюнинг NFS (CentOS 6)

Сообщение v1k3ng »

Вот про СХД я ничего не знаю...как и в прошлый раз, этот кластер от меня находится за несколько тысяч километров.
Ну в общем-то да, можно даже запросить селф-тест какой-нибдь. Вдруг это признаки гибели HDD.
Спасибо сказали:

v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Re: Тюнинг NFS (CentOS 6)

Сообщение v1k3ng »

Пока не получил доступ к серверам и СХД, нагуглил вот что:
Подвисание системы (ошибка ядра 12309)
И в том числе статейки про 12309 и сам тред на багзилле.
Какова может быть вероятность данного бага?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18091
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тюнинг NFS (CentOS 6)

Сообщение Bizdelnick »

А фиг его знает. Сталкивался с чем-то подобным только очень давно, на флешках (кажется в Мандриве). За последние лет 5, а то и больше (как перешёл на Debian) — ни разу не было. Если там ядро экзотической или просто кривой сборки, то может быть, конечно, всякое.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Re: Тюнинг NFS (CentOS 6)

Сообщение v1k3ng »

Нет, все стандартное. Все с родных репозиториев.
Ну, мне пока, в связи с большой загрузкой серверов, менять там ничего не дают. Но, все же, первым делом попробую сменить I/O scheduler. Про него начитался. У себя потестил - работает.
Спасибо сказали:

v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Re: Тюнинг NFS (CentOS 6)

Сообщение v1k3ng »

Итак, повоевал вчера с I/O scheduler'ами.
Стандартный cfq Я ставил anticipatory, затем noop.
Deadline ставить не стал, судя по описанию он не очень подходит.
В итоге мало что поменялось. Но, по показаниям %wa самый низкий был при anticipatory. Порядка 60%.
Спасибо сказали:

v1k3ng
Сообщения: 98
ОС: centos/ubuntu

Re: Тюнинг NFS (CentOS 6)

Сообщение v1k3ng »

В общем, судя по всему проблема решилась переносом точки включения одной из СХД (самой нагруженной) на другой сервер.
И вроде как по заверениям пользующихся - все стало гораздо лучше, быстрее и веселее.
Спасибо сказали: