Как ограничить потребление памяти mysql?

Ваш вопрос задан в stackoverflow https://stackoverflow.com/questions/13756800/how-to-download-all-dependencies-and-packages-to-directory

. Скопируйте ответ здесь с моими обновлениями.

# aptitude clean
# aptitude --download-only install <your_package_here>=<version_here>
# cp /var/cache/apt/archives/*.deb <your_directory_here>

Но комментарий выше комментируется

Это работает только в том случае, если у вас нет пакета или его зависимостей, установленных локально.

Еще один ответ оттуда.

Подход aptitude --download-only ... работает только в том случае, если у вас есть debian-дистрибутив с подключением к Интернету в ваших руках.

Подход aptitude --download-only ... работает только в том случае, если у вас есть debian-дистрибутив с подключением к Интернету в ваших руках.

apt-get --print-uris --yes install <my_package_name> | grep ^\' | cut -d\' -f2 >downloads.list

перемещает файл downloads.list (или не linux), и запустите:

wget --input-file myurilist

переместите файл downloads.list на подключенную Linux-машину (или не linux) и запустите: [!d12 ]

credits: http://www.tuxradar.com/answers/517

кредиты: http://www.tuxradar.com/answers/517 16]

В этом ответе есть два комментария.

Это работает, только если у вас нет установленного локального пакета или его зависимостей.

Добавление [ f5] в строку apt-get удаляет необходимость в grep (и необходимость --assume-yes)

Подход apt-get работает только тогда, когда пакет не установлен - A. [!d22 ]

0
задан 13 March 2018 в 22:10

3 ответа

Я бы использовал контрольные группы, чтобы выполнить то, что вы просите.

Пожалуйста, прочитайте перед выполнением следующих инструкций: я прочитал на сайте документации RedHat, что libcgroups устарели недавно. RedHat предоставляет руководство для создания групп управления с помощью systemd здесь.

Кроме того, в описанных ниже методах * text * обозначает число или имя файла, которые будут определены пользователем.

2] Пожалуйста, прочитайте перед выполнением следующих инструкций:

Вы можете установить libcgroups, который содержит ряд утилит для создания групп, таких как cgcreate и cgclassify, набрав sudo apt install libcgroups. После установки выполните следующие действия:

Создайте группу с названием sqlgroup (или все, что вы хотите назвать) Тип cgcreate -g memory,cpu:sqlgroup Установите ограничение памяти. cgset -r memory.limit_in_bytes=$((*mathExpressionForDesiredLimit*)) sqlgroup Связать новую группу с требуемым процессом управления. Если процесс в настоящее время запущен, используйте cgclassify, набрав cgclassify -g memory,cpu:sqlgroup $(*PID of mysql process*). Если процесс не запущен, вы можете использовать cgexec, набрав cgexec cpu,memory:sqlgroup *processName* *additional arguments*

Метод второй: Ручная настройка

Вы может также выполнить это вручную без установки дополнительных пакетов, используя следующие ( Метод второй: Ручная настройка У вас должен быть systemd 232 или более поздняя версия. systemctl --version | grep systemd содержит текущую информацию о версии):

9] Создайте группу, называемую sqlgroup (или все, что вы хотите назвать) Тип cgcreate -g memory,cpu:sqlgroup Установите ограничение памяти для процесса, создав файл под созданной вами папкой groupname, которая содержит ограничение памяти в байтах. Это можно сделать, используя: echo amount_in_bytes > /sys/fs/cgroup/memory/groupname/memory.limit_in_bytes. Не изменяйте имя memory.limit_in_bytes. Установите ограничение памяти. cgset -r memory.limit_in_bytes=$((*mathExpressionForDesiredLimit*)) sqlgroup

Более сложные параметры конфигурации в отношении групп можно найти здесь здесь .

2
ответ дан 22 May 2018 в 12:35
  • 1
    Спасибо за этот полезный пост. Хотя в следующий раз я предлагаю писать для машины Ubuntu. – NerdOfCode 14 March 2018 в 01:50

Я бы использовал контрольные группы, чтобы выполнить то, что вы просите.

Пожалуйста, прочитайте перед выполнением следующих инструкций: я прочитал на сайте документации RedHat, что libcgroups устарели недавно. RedHat предоставляет руководство для создания групп управления с помощью systemd здесь.

Кроме того, в описанных ниже методах * text * обозначает число или имя файла, которые будут определены пользователем.

Пожалуйста, прочитайте перед выполнением следующих инструкций:

Вы можете установить libcgroups, который содержит ряд утилит для создания групп, таких как cgcreate и cgclassify, набрав sudo apt install libcgroups. После установки выполните следующие действия:

Создайте группу с названием sqlgroup (или все, что вы хотите назвать) Тип cgcreate -g memory,cpu:sqlgroup Установите ограничение памяти. cgset -r memory.limit_in_bytes=$((*mathExpressionForDesiredLimit*)) sqlgroup Связать новую группу с требуемым процессом управления. Если процесс в настоящее время запущен, используйте cgclassify, набрав cgclassify -g memory,cpu:sqlgroup $(*PID of mysql process*). Если процесс не запущен, вы можете использовать cgexec, набрав cgexec cpu,memory:sqlgroup *processName* *additional arguments*

Метод второй: Ручная настройка

Вы может также выполнить это вручную без установки дополнительных пакетов, используя следующие ( Метод второй: Ручная настройка У вас должен быть systemd 232 или более поздняя версия. systemctl --version | grep systemd содержит текущую информацию о версии):

Создайте группу, называемую sqlgroup (или все, что вы хотите назвать) Тип cgcreate -g memory,cpu:sqlgroup Установите ограничение памяти для процесса, создав файл под созданной вами папкой groupname, которая содержит ограничение памяти в байтах. Это можно сделать, используя: echo amount_in_bytes > /sys/fs/cgroup/memory/groupname/memory.limit_in_bytes. Не изменяйте имя memory.limit_in_bytes. Установите ограничение памяти. cgset -r memory.limit_in_bytes=$((*mathExpressionForDesiredLimit*)) sqlgroup

Более сложные параметры конфигурации в отношении групп можно найти здесь здесь .

2
ответ дан 17 July 2018 в 18:54

Я бы использовал контрольные группы, чтобы выполнить то, что вы просите.

Пожалуйста, прочитайте перед выполнением следующих инструкций: я прочитал на сайте документации RedHat, что libcgroups устарели недавно. RedHat предоставляет руководство для создания групп управления с помощью systemd здесь.

Кроме того, в описанных ниже методах * text * обозначает число или имя файла, которые будут определены пользователем.

Пожалуйста, прочитайте перед выполнением следующих инструкций:

Вы можете установить libcgroups, который содержит ряд утилит для создания групп, таких как cgcreate и cgclassify, набрав sudo apt install libcgroups. После установки выполните следующие действия:

Создайте группу с названием sqlgroup (или все, что вы хотите назвать) Тип cgcreate -g memory,cpu:sqlgroup Установите ограничение памяти. cgset -r memory.limit_in_bytes=$((*mathExpressionForDesiredLimit*)) sqlgroup Связать новую группу с требуемым процессом управления. Если процесс в настоящее время запущен, используйте cgclassify, набрав cgclassify -g memory,cpu:sqlgroup $(*PID of mysql process*). Если процесс не запущен, вы можете использовать cgexec, набрав cgexec cpu,memory:sqlgroup *processName* *additional arguments*

Метод второй: Ручная настройка

Вы может также выполнить это вручную без установки дополнительных пакетов, используя следующие ( Метод второй: Ручная настройка У вас должен быть systemd 232 или более поздняя версия. systemctl --version | grep systemd содержит текущую информацию о версии):

Создайте группу, называемую sqlgroup (или все, что вы хотите назвать) Тип cgcreate -g memory,cpu:sqlgroup Установите ограничение памяти для процесса, создав файл под созданной вами папкой groupname, которая содержит ограничение памяти в байтах. Это можно сделать, используя: echo amount_in_bytes > /sys/fs/cgroup/memory/groupname/memory.limit_in_bytes. Не изменяйте имя memory.limit_in_bytes. Установите ограничение памяти. cgset -r memory.limit_in_bytes=$((*mathExpressionForDesiredLimit*)) sqlgroup

Более сложные параметры конфигурации в отношении групп можно найти здесь здесь .

2
ответ дан 23 July 2018 в 19:42

Другие вопросы по тегам:

Похожие вопросы: