як звільнити пам'ять за допомогою crontab


1

Моя система Centos 5.5 з 2G пам'яттю, я не маю дозволу встановлювати своп. Я встановив перезапуск mysqld, httpdо 3:00 кожного дня crontab, і я також хочу звільнити пам'ять щогодини.

Тож як звільнити пам’ять за допомогою crontab? Я пишу якийсь код нижче стидінгу з Інтернету, але він, здається, не працює ...

кронтаб -е

6 * * * * sync;echo 3 > /proc/sys/vm/drop_caches

EDIT тут є my.cnf, однак мені fulltextіноді потрібен пошук oderby date.

key_buffer_size = 256M
max_allowed_packet = 8M
max_connections=1024
wait_timeout=5
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 256M
thread_cache_size = 8
query_cache_limit=2M
query_cache_size= 128M
thread_concurrency = 8
read_rnd_buffer_size=2M
tmp_table_size=128M
ft_min_word_len=2
ft_max_word_len=42

3
Чому, на вашу думку, потрібно це робити? Яку вигоду ви вважаєте, що отримуєте? Напевно, здається, вони роблять вашу систему гіршою.
Зоредаче

@Zoredache, вчора я знаходжу свою систему з пам'яті, дивіться serverfault.com/questions/365029/centos-out-of-memory , система повільно і важко щось робити, навіть перезавантажувати mysqld, httpd, остаточно перезавантажую сервер . Тому я намагаюся знайти якийсь спосіб, щоб звільнити пам'ять автоматично. Дякую.
yuli chika

2
Перезапуск послуг або сервера - неправильне рішення. Відрегулюйте конфігурацію mysql, щоб вона не переходила певні межі. Ви також можете налаштувати щось на зразок monit, щоб воно діяло лише тоді, коли насправді є проблеми.
Зоредаче

@Zoredache, у мене є оновлення my.cnf, чи встановлено це розумно? Дякую.
yuli chika

Відповіді:


2

Згаданий вами код призведе до того, що ядро ​​видалить усі кешовані дані, які в ньому є ... що саме та пам'ять, яку вона б відкинула, як тільки все-таки захотілося б використовувати більше пам'яті. Це не матиме практичного впливу на вашу систему.

Зрештою, окрім запуску менше програмного забезпечення або перезавантаження процесів, ви нічого не можете зробити, щоб повернути зайву пам'ять. Linux не має механізму подавати тиск на пам'ять до програми, перш ніж вбивати його як "поза пам'яттю".


вчора я знаходжу свою систему out of memory, сервер стає повільно, важко отримати доступ до SSH через шпаклівку, тому що завжди таймаут, тому я намагаюся знайти якийсь спосіб уникнути out of memory.
yuli chika

Вище вказаний підхід абсолютно, без сумніву, не вирішить вашу проблему. Єдиний спосіб вирішити вашу проблему - це запустити менше програмного забезпечення або зробити так, щоб програмне забезпечення, яке ви працюєте, споживало менше пам’яті. Для цього потрібна конкретна конфігурація відповідного програмного забезпечення, і це неможливо зробити загальним чином на цій платформі.
Даніель Піттман

сама проблема, можливо, mysql, у мене є my.cnfналаштування оновлення . Дякую.
yuli chika

2

Кращий спосіб звільнити пам'ять - це спочатку знати, що їсть ваша EXTRA пам'ять. Щоб дізнатися це, ви можете скористатися командою 'htop', яка підкаже вам, який процес з’їдає, скільки пам’яті.

і перевірити пам'ять за допомогою "free -m".

Тоді вам доведеться ТОЛЬКО перезапустити цей процес або оцінити, чому він займає велику кількість пам'яті.


Я вважаю, що mysqld займав 740 Мб, інші, багато php-скриптів, кожен коштував 5-18 Мб ... і якщо користувач в Інтернеті зростає, система втратить пам'ять, а сервер стане повільним ...
yuli chika

Тоді я рекомендую вам ретельно оцінити потреби в пам’яті програми, можливо, це займає значно більше пам’яті. В іншому випадку Ви повинні додати більше пам’яті (І так само поміняти), інакше сервер також може вийти з ладу, якщо це може втратити пам'ять.
Фархан

2

Якщо у вас на сервері досить високий показник звернень, чому б не розглянути можливість додавання більше оперативної пам’яті? Це має вирішити проблему після настройки параметрів mysql / httpd, щоб переконатися, що вона знову не з'їла вашу пам'ять.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.