Вызовы F_WRLCK занимают много времени в NFS

Я разделил NFS на 30 узлов кластера. Узлами являются Debian 5 и 6. Сервер NFS - OpenSolaris 2009. У нас хорошее оборудование и сеть Infiniband 20 Гбит.

На узлах кластера операции fs выполняются быстро, но не в том, что касается:

  • остолоп
  • Sqlite3
  • R lib. Например Rscript <(echo "library(GOstats)")

Все они застряли на несколько минут после следующих системных вызовов:

  • fcntl(3, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=1073741824, len=1} или же
  • fcntl(3, F_SETLK, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, len=1}

Что может быть причиной? Как диагностировать и исправить?

Будет ли исправление переключения сервера NFS на OpenIndiana oi_148?

3 ответа

Решение

Обновлен до последней версии OpenIndiana. Проблема исчезла.

Посмотрите, работает ли служба блокировки NFS на сервере.

Эти системные вызовы получают блокировку файла. Возможно, другой процесс в настоящее время имеет блокировку, и ваши застрявшие процессы ожидают снятия этой блокировки. Есть несколько советов по устранению неполадок (для более старой версии Solaris, но они все еще могут быть полезны) в главе 11 О'Рейли Управление NFS и NIS, 2-е издание.

Другие вопросы по тегам