Причиной этой проблемы оказалась ошибка (LU-5726) в одном из модулей ядра Luster, работающих в системе. Это приводило к утечке памяти ядром каждый раз, когда файл удалялся из файловой системы Luster, которую размещал компьютер. Обновление до Luster 2.5.4 (в котором исправление было объединено) решило проблему.
Цитата из сообщения об ошибке (которая была не моей, а моей):
Описание:
При удалении большого количества файлов использование памяти на сервере MDS значительно возрастает. Попытки восстановить память путем удаления кэшей приводят только к освобождению части памяти. Использование буфера продолжает расти до тех пор, пока сервер MDS не начнет OOMing.
Скорость, с которой увеличивается использование буфера, кажется различной, но похоже, что она может быть основана на количестве клиентов, которые удаляют файлы, и скорости, с которой файлы удаляются.
В ответ на патч сообщалось, что:
Мы только что применили исправление сегодня к нашей производственной файловой системе (Luster 2.4.3) и сейчас выполняем некоторые серьезные чистки. Я собрал некоторую информацию об использовании памяти. До патча казалось, что в росте памяти преобладает «Неактивно (файл)» в /proc /meminfo.
Я удалил кеш на сервере MDS (echo 3> /proc /sys /vm /drop_caches) и собирал неактивное (файловое) использование каждую минуту:
неактивен (файл): 1146656 кБ ..... Число сначала быстро увеличивалось, но затем немного выровнялось. Просто чтобы перепроверить, я снова сбросил кеш:
Неактивно (файл): 401152 КБ ....
У нас такое же поведение, и что более важно, мы, кажется, возвращаем память из Inactive (файл). Я также проверил MemFree и Buffers до / после удаления кэшей:
(До) MemTotal: 66053640 кБ MemFree: 51291028 кБ Буферы: 10685976 кБ
(После) MemTotal: 66053640 кБ MemFree: 63239432 кБ Буферы: 198148 кБ
Использование буфера упало ниже 200 МБ. Учитывая скорость, с которой мы очищаемся, этого никогда бы не произошло до применения патча.
Я уверен, что этот патч решил проблему на 90%. Если мы сможем продолжить чистку с такой скоростью в течение пары дней без увеличения использования памяти, то, я думаю, я буду уверен на 100%.
Дополнительно
Я снова проверил использование памяти MDS этим утром:
MemTotal: 66053640 кБ MemFree: 5568288 кБ Буферы:
55504980 КБ Активен: 22374284 КБ Неактивен: 33260116 КБ
После того как я уронил кеши:
MemTotal: 66053640 кБ MemFree: 63146420 кБ Буферы:
59788 кБ Активен: 57960 кБ Неактивен: 93452 КБ
Похоже, патч успешен.
https://jira.hpdd.intel.com/browse/LU-5726