Клиенты NFS иногда зависают на 15 секунд

Сервер NFS: CentOS7.1 (ядро 3.10.0-229, nfs-utils 1.3.0)

Некоторые клиенты - это Ubuntu Precise ( 12. 04) с использованием NFSv3 ... они работают нормально.

Проблемные клиенты работают под управлением CentOS7.1 с использованием NFSv4.1 (или NFSv4.0). В большинстве случаев все работает нормально. Но иногда при записи файла возникает таймаут в 15 секунд. Это небольшие файлы (<10 КБ).

Через 15 секунд запись заканчивается, и файл имеет правильное содержимое.

Это наиболее заметно при сохранении файлов с помощью vi. Это происходит только в 5% случаев (но из-за того, что это так неприятно, кажется, что это происходит чаще, чем есть на самом деле).

Сегодня это произошло при запуске rsync на нескольких сотнях файлов (2–5 КБ каждый). Мне удалось запустить strace для процесса rsync и увидеть, что это происходит более 50% времени.

# sudo strace -ttt -T -p 14186
Process 14186 attached
1452694932.030892 select(9, [8], [], NULL, {55, 59875}) = 1 (in [8], left {44, 963900}) <10.096109>
1452694942.127262 read(8, "\4\0\0k\10\3\0\0", 8184) = 8 <0.000038>
1452694942.127378 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {59, 997018}) <0.003029>
1452694942.130529 read(8, "\4\0\0k\t\3\0\0", 8184) = 8 <0.000040>
1452694942.130715 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {44, 963694}) <15.036348>
1452694957.167236 read(8, "\4\0\0k\n\3\0\0", 8184) = 8 <0.000071>
1452694957.167419 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {59, 996528}) <0.003572>
1452694957.171122 read(8, "\4\0\0k\v\3\0\0", 8184) = 8 <0.000112>
1452694957.171340 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {44, 964372}) <15.035715>
1452694972.207210 read(8, "\4\0\0k\f\3\0\0", 8184) = 8 <0.000026>
1452694972.207303 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {44, 960236}) <15.039908>
1452694987.247375 read(8, "\4\0\0k\r\3\0\0", 8184) = 8 <0.000111>
1452694987.247616 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {44, 960455}) <15.039628>
1452695002.287486 read(8, "\4\0\0k\16\3\0\0", 8184) = 8 <0.000100>
1452695002.287665 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {59, 996177}) <0.004000>
1452695002.291819 read(8, "\4\0\0k\17\3\0\0", 8184) = 8 <0.000089>
1452695002.292014 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {44, 964982}) <15.035132>
1452695017.327303 read(8, "\4\0\0k\20\3\0\0", 8184) = 8 <0.000082>
1452695017.327491 select(9, [8], [], NULL, {60, 0}) = 1 (in [8], left {59, 995793}) <0.004300>
1452695017.331931 read(8, "\4\0\0k\21\3\0\0", 8184) = 8 <0.000052>

Я не видел, чтобы кто-нибудь еще спрашивал об этой проблеме. Я один?

Правка:

Параметры монтирования:

nfs:/storage on /space type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=14,retrans=2,sec=sys,clientaddr=10.12.32.4,local_lock=none,addr=10.12.32.31)

Содержание / etc / exports:

/storage 10.0.0.0/8(rw,async,no_root_squash,no_subtree_check,mp=/storage)
2
задан 13 January 2016 в 17:07
1 ответ

Запуск strace на другом дочернем процессе rsync показал, что он завис во время вызова rename (). Это привело меня к выводу, что это ошибка:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=799838

Я работал над этим, установив параметр noatime вариант крепления.

0
ответ дан 3 December 2019 в 14:33

Теги

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