Как я могу оптимизировать использование памяти сервера mysql на ubuntu?

#mysql #linux #ubuntu

Вопрос:

У меня есть сервер ubuntu версии 20.04.2 LTS. На нем я установил только mysql версии 8.0.25-0ubuntu0.20.04.1

Это выделенный сервер, поэтому мой файл.cnf настроен следующим образом:

 innodb_dedicated_server = 1
skip_name_resolve       = 1
key_buffer_size         = 16M
myisam-recover-options  = BACKUP
max_binlog_size         = 100M
 

Сервер представляет собой виртуальную машину vmware, оснащенную 10 ГБ оперативной памяти, 8 процессорами (2 ядра, 4 сокета).

Проблема в следующем: время от времени (раз в день или каждые 2 дня) mysql вылетает с сообщением «не хватает памяти». Например, всего минуту назад я проверил свою свободную память с помощью free-m, и она была 130. Я подумал, что, вероятно, это нормально из-за innodb_dedicated_server. Я запустил таблицу alter в таблице с 3,5 миллионами строк, и вот тогда она рухнула. Вероятно, у него не хватило памяти для таблицы изменений.

Как я могу это оптимизировать? Я бы хотел, чтобы он использовал как можно больше памяти, но я не хочу, чтобы он зависал из-за таблицы alter…

Какая-нибудь помощь? Спасибо!

Редактировать:

как уже отмечалось, я перенес обсуждение сюда:

https://serverfault.com/questions/1069556/how-can-i-optimize-the-memory-usage-of-mysql-server-on-ubuntu

Комментарии:

1. Это не вопрос кодирования. Пожалуйста, задавайте такие вопросы по адресу serverfault.com или superuser.com

2. Похоже, что остальная часть виртуальной машины используется другими приложениями. Кроме того, в чем заключается ценность SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; ?

3. ‘innodb_buffer_pool_size’, ‘8589934592’