Периодические проблемы с производительностью клиента NFS (очередь ожидания очереди?)

У меня возникла странная проблема с одним из клиентов NFS (Ubuntu 16.04 LTS). Я работал последние несколько дней, пытаясь отладить это, но пока безуспешно. После того, как я смонтирую раздел, все работает отлично несколько дней, скорость передачи между клиентом и сервером составляет 1 Гбит / с. Через несколько дней скорость упадет до менее 10 Мбит / с, и даже простой вывод списка каталогов занимает несколько секунд, а ожидание ввода-вывода составляет 100%

. Я заметил, что время ожидания невыполненной работы, особенно для операций записи, чрезвычайно велико. high:

root@srv:~# mountstats /mnt/data
Stats for 192.168.0.15:/mnt/data mounted on /mnt/data:
  NFS mount options: rw,vers=4.0,rsize=16384,wsize=16384,namlen=255,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.150,local_lock=none
  NFS server capabilities: caps=0xffdf,wtmult=512,dtsize=16384,bsize=0,namlen=255
  NFSv4 capability flags: bm0=0xfdffbfff,bm1=0xf9be3e,bm2=0x0,acl=0x3,pnfs=notconfigured
  NFS security flavor: 1  pseudoflavor: 0

NFS byte counts:
  applications read 8168679407142 bytes via read(2)
  applications wrote 4833000353435 bytes via write(2)
  applications read 0 bytes via O_DIRECT read(2)
  applications wrote 0 bytes via O_DIRECT write(2)
  client read 4218977852758 bytes via NFS READ
  client wrote 4832098253207 bytes via NFS WRITE

RPC statistics:
  561421762 RPC requests sent, 561421608 RPC replies received (1 XIDs not found)
  average backlog queue length: 0

READ:
        263822474 ops (46%)     0 retrans (0%)  0 major timeouts
        avg bytes sent per op: 184      avg bytes received per op: 16051
        backlog wait: 8.772689  RTT: 27.972131  total execute time: 36.752241 (milliseconds)
WRITE:
        295296111 ops (52%)     0 retrans (0%)  0 major timeouts
        avg bytes sent per op: 16567    avg bytes received per op: 132
        backlog wait: 62468603019.791718        RTT: 78.030143  total execute time: 62468603097.830574 (milliseconds)

Ошибок нет, предупреждений нет, я пробовал отладку с помощью "echo 1> / proc / sys / vm / block_dump" (который в прошлом творил для меня чудеса), но на этот раз ничего не видно, связанного с NFS. Есть идеи, как я могу дальше отлаживать и посмотреть, что вызывает чрезвычайно большое время ожидания ожидания?

0
задан 15 March 2019 в 09:43
1 ответ

На случай, если у кого-то возникнет такая же проблема, единственное исправление, которое я смог найти, - это принудительное использование NFS3 вместо NFS4. Теперь проблема исчезла.

0
ответ дан 5 December 2019 в 03:45

Теги

Похожие вопросы