Машина: Dell r815, CentOS 5.4, 256 ГБ оперативной памяти, 4 х 12 ядер.
У нас есть приложение, которое имеет файл 275 ГБ. Он выполняет сортировку на месте по 20 ГБ данных за раз, то есть обменивает биты и заменяет их в одном и том же файле. Это все отлично работает.
Существует последний проход, который затем считывает весь файл и выполняет сортировку слиянием на разных порциях по 20 ГБ и выводит их в новый файл.
Этот процесс, кажется, работает некоторое время нормально, и в итоге он сбрасывает около 50 ГБ на диск. Спустя какое-то время ВСЯ машина начинает беситься.
Простые команды, такие как ps -ef
, ls -al
зависают в течение долгого времени и обнаруживают, что они занимают 100% ЦП (что составляет всего одно ядро).
Глядя на статистику памяти top
, я вижу, что она использует около 120 ГБ ОЗУ (так что 128 ГБ свободно) и имеет 120 ГБ в разделе «кэширование».
Кто-нибудь видел такое поведение раньше? Тот же процесс прекрасно работает на машине с 64 ГБ памяти - так или иначе, я думаю, что это связано с подключением оперативной памяти, установленной в машине.
(как мы говорим, я запускаю тест на этой машине со всеми, кроме 64 ГБ - чтобы исключить аппаратную проблему).
Возможно, я пропускаю некоторые параметры VM /etc/sysctrl.conf
?
Благодарность!