Как освободить физическую и виртуальную память, используемую сервером MySQL?

Как освободить физическую и виртуальную память, используемую сервером MySQL?

Несколько скриптов php выполняются через crontab на моем CentOS 6.5, каждый скрипт php содержит как минимум один запрос к базе данных. В зависимости от размера и типа объекта php, в некоторых конкретных случаях служба mysqld выделяет слишком много физической памяти.

Иногда из 1,7 ГБ свободной памяти остается всего 15 МБ, память подкачки также выделяется, возможно, на 95% использования. Для освобождения памяти сервера единственным альтернативным решением является перезапуск сервера mysqld, но через пару дней память снова почти заполнена.

Для игнорирования перезапуска mysqld я попытался очистить кэш запросов с помощью RESET QUERY CACHE;и , FLUSH QUERY CACHE;но ничего не изменилось в состоянии памяти. Я также попытался выполнить , sync && echo 3 | sudo tee /proc/sys/vm/drop_cachesно состояние памяти снова то же самое.

Знаете ли вы, как освободить физическую и виртуальную память, например, после каждого выполнения скрипта, не перезапуская сервер MySQL?

решение1

Если это MySQL съедает всю память, то вам нужно уменьшить его значения или увеличить оперативную память сервера. Если вы сказали MySQL, что у него может быть 16 ГБ оперативной памяти, но доступно только 8 ГБ, ну, тогда что-то происходит.

Вы не устраиваете вечеринку на 20 человек в вашем среднестатистическом гостиничном номере, чтобы потом обнаружить, что номер слишком мал, и не пытаетесь сделать это снова на следующий вечер, надеясь, что тогда вы сможете разместить там 20 человек. Вы либо бронируете номер побольше, либо приглашаете меньше людей.

Связанный контент