Потребление верхней памяти Mysql
Недавно я мигрировал с Сервера Debian на сервер Ubuntu, и я заметил это mysqld
потребление памяти на Сервере Ubuntu смехотворно высоко для мало к тому, чтобы быть бесполезному...
Решения?
Я задавался вопросом, существуют ли какие-либо способы, которыми я могу, возможно, ограничить это потребление памяти, поскольку оно действительно помещает мой сервер в опасно безразличное положение?
Я использовал бы контрольные группы для выполнения то, что Вы спрашиваете.
Читайте прежде, чем следовать этим инструкциям: Я читал на сайте документации Redhat, что libcgroups был недавно удержан от использования. Redhat предоставляет руководство для создания контрольных групп с systemd здесь.
Кроме того, в методах, описанных ниже *, текст* обозначает число или имя файла, которое будет определено пользователем.
Метод 1: libcgroups (по-видимому, удержанный от использования)
Можно установить libcgroups, который содержит серию утилит для создания cgroups, таких как cgcreate и cgclassify путем ввода sudo apt install libcgroups
. После того, как установленный, выполните следующее:
cgcreate -g memory,cpu:sqlgroup
cgset -r memory.limit_in_bytes=$((*mathExpressionForDesiredLimit*)) sqlgroup
cgclassify -g memory,cpu:sqlgroup $(*PID of mysql process*)
cgexec cpu,memory:sqlgroup *processName* *additional arguments*
Метод два: ручная конфигурация
Можно также выполнить это вручную, не устанавливая дополнительные пакеты с помощью следующего (Примечание: у Вас должен быть systemd 232 или позже. systemctl --version | grep systemd
дает информацию о текущей версии):
mkdir /sys/fs/cgroup/memory/groupname
. Это создает папку под [...]/cgroup/memory, который указывает, что cgroup будет управлять памятью.Примечание: измените groupname на что-то, что соответствует процессу, который Вы хотите ограничить. Можно назвать его чем-либо. В предыдущем методе я описал groupname, был sqlgroup.echo amount_in_bytes > /sys/fs/cgroup/memory/groupname/memory.limit_in_bytes
. Не изменяйте название памяти limit_in_bytes.echo *PID_Number* > /sys/fs/cgroup/memory/groupname/cgroup.procs
.Примечание: Если несколько процессов с другим PIDs должны быть ограничены, необходимо будет ввести каждый PID в cpgroup.procs файл вручную.Более усовершенствованные параметры конфигурации относительно cgroups могут быть найдены здесь.