Час від часу "мій" сервер зупиняється, оскільки у нього не вистачає пам'яті та місця для обміну. (він продовжує реагувати на ping, але нічого іншого, навіть ssh).
Мені кажуть, що linux робить перезавантаження пам'яті, яке, наскільки я розумію, те саме, що банки роблять з грошима: воно надає процесам більше пам’яті, ніж реально доступне, припускаючи, що більшість процесів насправді не використовуватиме всю пам'ять, про яку вони запитують, на принаймні, не всі одночасно.
Будь ласка, припустіть, що це насправді причина, чому моя система періодично зависає, давайте не будемо обговорювати тут, чи це так (див. Що може призвести до того, що ВСІ сервіси на сервері знижуються, але все ще реагують на ping? І як розібратися ) .
Так,
як відключити або різко зменшити перевиконання пам'яті в CentOS? Я читав, що є два параметри, що називаються vm.overcommit_memory (значення 0, 1 або 2) і vm.overcommit_ratiom, але я не маю уявлення, де мені їх потрібно знайти та змінити (деякий файл конфігурації, сподіваюся), які значення слід спробувати , і чи потрібно мені перезавантажувати сервер, щоб зміни були ефективними.
і чи безпечно це? Яких побічних ефектів я міг очікувати? Під час googling для overcommit_memory я знаходжу страшні речі, такі як люди, які говорять, що їхній сервер більше не може завантажуватися ....
Оскільки те, що викликає раптове збільшення використання пам'яті - mysql через запити, які виконуються php, які, в свою чергу, називаються під час подання http-запитів, я очікую, що лише якийсь скрипт php не вдасться виконати, а отже, час від часу відповідь 500 разів сервер занадто зайнятий, що є ризиком, який я можу взяти на себе (звичайно краще, що весь сервер стане недоступним і доведеться важко перезавантажувати його).
Або це дійсно може призвести до того, що мій сервер не зможе перезавантажитися, якщо я вибрав неправильні налаштування?