У нас NFS используется поверх брандмауэра, что ограничивает производительность.
И у нас есть эти случайные сценарии увеличения нагрузки на клиентском хосте, когда выполняется какая-то огромная операция ввода-вывода, такая как tar.
Насколько я понимаю, tar может вызывать перегрузку и, таким образом, влиять на другие операции NFS.
И поскольку домашний каталог пользователей также находится в NFS, и из-за новой низкой производительности NFS (вызванной перегрузкой с помощью команды tar) обычные операции, такие как ssh, su, ls и т. Д., Также будут медленными, и, как в среде разработки, эти операций может быть много, и, следовательно, больше операций ожидают выполнения одновременно, увеличивая среднюю нагрузку. Это увеличение средней нагрузки обнаруживается в отчетах sar.
Но мне непонятно, где именно tar создает перегрузку? Внутри хранилища NFS (в нашем случае - netapp) или в сети?
Моя вышеупомянутая гипотеза верна только в том случае, если в сети происходит перегрузка, поскольку мы не видим никакого влияния на производительность других клиентов NFS в то время (как если бы перегрузка присутствует на сервере хранения, все клиенты должны быть затронуты).
Кроме того, я не уверен, как проверить, есть ли перегрузка сети между клиентом и сервером, если моя гипотеза верна.
Невозможно сказать. Вам нужно больше разбираться в системе. Начните с этих 10 команд: Анализ производительности Linux за 60 000 миллисекунд
Например, если vmstat
Столбец r намного больше, чем количество процессоров, у вас есть процессы, ожидающие запуска, и они перегружены. В top
посмотри на коды состояния процесса чтобы отличить ожидание ввода-вывода (D) от ожидания на CPU (R).
В Linux рассмотрите возможность использования инструмента, который будет часто опрашивать большое количество метрик, например netdata.
Не ограничивайте расследование только ведущим. Посмотрите на показатели использования и ошибок на всех сетевых путях от хоста до хранилища. Проверьте массив хранения на предмет использования и ошибок.