Назад | Перейти на главную страницу

Одиночный процесс блокирует монтирование NFS на всем узле

У нас есть монтирование NFS и кластер PBS, в котором все узлы монтируют эту точку монтирования NFS.

Мы заметили, что один процесс на одном из узлов кластера PBS может полностью перегрузить и заблокировать монтирование NFS на этом узле. Это огромная проблема, поскольку PBS обычно планирует несколько заданий на одном узле, задания только определяют ограничения ЦП и памяти, но PBS, похоже, не заботится об ограничениях ввода-вывода. Это означает, что одно задание с привязкой к вводу-выводу, которое может не требовать много ЦП и памяти, может сделать весь узел непригодным для использования, по крайней мере, в отношении монтирования NFS.

Я могу воспроизвести эту проблему, просто выполнив следующую команду на узле:

cat /nfsmount/verylargefile.txt > /dev/null

Это существенно предотвратит доступ к монтированию NFS для любого другого процесса на этом узле. Даже выполнение простого "ls / nfsmount" займет вечность. Обратите внимание, что производительность одной и той же точки монтирования NFS не влияет на другие узлы, поэтому, похоже, это проблема на стороне клиента.

Есть ли у кого-нибудь опыт такого поведения? Есть ли какие-то подводные камни, которые мне следует искать? Я бы подумал, что должна быть какая-то логика, которая попытается распределить «полосу пропускания» монтирования NFS, если есть несколько процессов, обращающихся к нему, чтобы предотвратить этот тип перегрузки ресурсов одним процессом.

В нашем кластере PBS работает RedHat 6.5, но я воспроизвел его и на своей рабочей станции Ubuntu 14.04.