Должны ли мы отключить чрезмерную загрузку Linux в производственной среде
Я читал некоторые блоги о ярлыке чрезмерного коммитирования в Linux, например, http://www.etalabs.net/overcommit.html. Но Linux по умолчанию использует эвристический алгоритм. Поэтому мне интересно, если мы должны отключить его в производственной среде.
Если мы отключаем overcommit и имеем много процессов, которые требуют больше памяти. Найдем ли мы проблему выделения памяти немедленно или просто столкнемся с другим проводным результатом?
1 ответ
Вообще нет
Многие программы зависят от выделения огромного количества памяти, которая на самом деле не используется. Например, Java не очень хорошо работает при отключенном overcommit.
В некоторых случаях, например, с выделенным сервером PostgreSQL, лучше, чтобы ядро своевременно отказывалось от распределений, а не OOM позже убивало сервер и останавливало службу. Используйте строгий режим overcommit с PostgreSQL:
sysctl -w vm.overcommit_memory=2