У меня есть кластер Linux с узлами, имеющими точки монтирования NFS с центрального сервера (на самом деле узлы бездисковые и загружаются через PXE). После некоторой активности точек монтирования NFS с узлов NFS, похоже, резко замедляется, например Вход в систему по ssh занимает минуты, программам, зависящим от некоторых файлов в общей папке nfs, требуется несколько минут для запуска и т. д.
Перезапуск службы nfs на сервере и / или перезагрузка проблемного узла (узлов) решает проблему на короткий период времени, однако вскоре она всегда появляется снова. (Выполнение обоих, кажется, помогает немного дольше)
Сервер и узлы работают под управлением CentOS 7.4 с ядром Linux 3.10.0-693.el7.x86_64 x86_64 и используется NFSv4. Хранилище состоит из 4 жестких дисков, объединенных в RAID10 (/ dev / sda). Сетевое соединение между сервером и узлами составляет 1 ГБит / с каждый, и пока нет свидетельств отбрасывания пакетов.
В чем может быть причина очень медленной реакции NFS, зависящей от прежней активности?
Сокращенный вывод nfsstat на узле при медленной реакции файловой системы дает:
Статистика клиента rpc:
звонки | ретранс | authrefrsh
44154157 | 0 | 44154258Клиент nfs v4:
null | читать | написать | совершить | открыть | open_conf
0 0% | 58125 0% | 422038 1% | 6846 0% | 139899 0% | 0 0%open_noat | open_dgrd | закрыть | setattr | fsinfo | возобновить
30775986 95% | 144 0% | 70464 0% | 2639 0% | 9 0% | 0
Вывод nfsiostat выглядит так (для быстрых nfs):
op / s rpc bklog
3596,86 0,00читать: ops / s | кБ / с | кБ / оп | ретрансляция ср. RTT (мс) | avg exe (мс)
0,224 | 0,289 | 1.292 | 0 (0,0%) 0,441 | 1,151написать: ops / s | кБ / с | кБ / оп | ретранс | среднее RTT (мс) | avg exe (мс)
33.837 | 47.329 | 1,399 | 0 (0,0%) | 0,452 | 1,406
Вывод nfsiostat выглядит так (для медленных nfs):
оп / с | rpc bklog 183.75 | 0,00
читать: ops / s | кБ / с | кБ / оп | ретранс | среднее RTT (мс) | avg exe (мс)
0,012 | 1.158 | 99.426 | 0 (0,0%) | 2.708 | 16,656написать: ops / s | кБ / с | кБ / оп | ретрансляция ср. RTT (мс) | avg exe (мс)
0,295 | 1.882 | 6.387 | 2 (0,0%) | 0,448 | 0,560
Здесь мы видим гораздо более низкую продолжительность операций в секунду и большую длительность кБ / операцию и среднюю длительность выполнения.
iostat на центральном сервере (когда все работает нормально):
Linux 3.10.0-693.el7.x86_64 27.09.2019 _x86_64_ (4 ЦП)
avg-cpu:% user% nice% system% iowait% steal% idle
0,48 0,00 0,37 0,02 0,00 99,12Устройство: tps kB_read / s kB_wrtn / s kB_read kB_wrtn
SDB 10,83 40,61 67,55 9423785 15673740
sda 0,71 5,67 2,54 1315496 590208
SDC 10,47 18,96 67,55 4398709 15673740
md127 0,00 0,12 0,00 27241 80
md126 10,83 59,42 66,92 13787337 15526832
md125 0,00 0,01 0,00 2228 0
и то же самое, когда все работает медленно (но без больших различий):
Linux 3.10.0-693.el7.x86_64 14.10.2019 _x86_64_ (4 процессора)
avg-cpu:% user% nice% system% iowait% steal% idle
2,94 0,00 1,03 0,01 0,00 96,02Устройство: tps kB_read / s kB_wrtn / s kB_read kB_wrtn
SDB 15,05 261,13 52,53 449712785 90460908
sda 0,54 7,23 35,45 12443668 61054912
SDC 14,97 257,76 52,53 443917089 90460908
md127 0,00 0,02 0,00 27241 112
md126 11,57 8,68 51,72 14953949 89075284
md125 0,00 0,00 0,00 2228 8
Скажите, пожалуйста, если вам нужна дополнительная информация.
Мои первые мысли, что вы можете захотеть проверьте свои iostats после этого это начинает звучать как проблема кеширования.