Диск нашего сервера пула занят на 100%.
Я проверил с iotop
и определил, что nfsd
это верхний процесс, который потребляет дисковый ввод-вывод.
Мне нужно сузить это еще больше и я хочу определить, какой из клиентов NFS, использующих сервер, несет ответственность за это узкое место ввода-вывода диска. Как мне продолжить?
iotop
а потом o
- вы увидите, какой процесс читает и / или пишет и сколько на жесткий диск.
Проверьте pid этого процесса и выполните netstat -entp | grep <pid>
- таким образом вы увидите установленное TCP-соединение и с какого адреса оно идет. Использовать enp
для проверки сессий tcp и udp.
Вы также можете сделать netstat -anp | grep 2049
- таким образом получая ip-адрес и pid, а затем соотносите pid с тем из iotop
.
Обычно клиент, использующий большую часть операций ввода-вывода, также выполняет большую часть сетевого трафика, поэтому я делаю следующее: сбрасываю весь трафик в течение нескольких секунд, а затем создаю отсортированный список хостов (ограниченный хостами nfs), которые использовали большую часть трафика:
tcpdump > dump.cap # (30 secs should be enought), press ctr+ c
grep -o "<something iding an nfs client>" dump.cap | sort | uniq -c | sort -n