Высоко на%wa от верхней команды, есть ли способ ограничить это?

Вот моя последняя информация, прежде чем он застрял:

top - 18:26:10 up 238 days,  5:43,  3 users,  load average: 1782.01, 1824.47, 1680.36
Tasks: 1938 total,   1 running, 1937 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.4%us,  3.0%sy,  0.0%ni,  0.0%id, 94.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  65923016k total, 65698400k used,   224616k free,    13828k buffers
Swap: 33030136k total, 17799704k used, 15230432k free,   157316k cached

Как вы можете видеть, так как я запустил около 2000 процессов, выполняющих hadoop get команда, % wa очень высокая. Я ограничиваю память и процессор в cgroupsБудет ли полезно ограничить дисковый ввод-вывод тоже? Если да, может ли кто-нибудь дать мне представление о том, как это сделать в cgroups? Заранее спасибо.

1 ответ

Решение

У вас недостаточно оперативной памяти для запуска этих 2000 процессов.

Здесь мы видим, что вы использовали все 64 ГБ ОЗУ, а также дополнительно 17 ГБ подкачки. Ваш сервер работает, пытается обмениваться данными, доблестно пытается позволить каждому из этих 2000 процессов что-то сделать.

Но, конечно, это не работает.

Здесь есть только два решения:

  1. Запустите меньше процессов, чтобы у вас не хватило оперативной памяти. (Попробуйте 1500.)
  2. Добавьте больше оперативной памяти на сервер, чтобы он мог запускать все процессы.
Другие вопросы по тегам