TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #671 6.03K
Заметил, что последнее время дефолтные параметры Mariadb совсем не годятся для повседневной эксплуатации. Раньше при дефолтной настройке Zabbix для небольшого мониторинга не нужно было ничего тюнить. Просто ставишь из реп mariadb и запускаешь. Если нет какой-то особой нагрузки, все было в порядке.

Последнее время это не так. Все чаще вижу чрезмерное потребление сервером бд памяти, из-за чего его грохает OOM Killer. Приходится идти и тюнить mariadb по потреблению памяти, что не совсем очевидно, если ты не специализируешься на базах данных. Я стараюсь действовать максимально просто и эффективно. Беру скрипт mysqltuner и прогоняю его. Он выдает максимально возможное потребление памяти сервером бд в значениях:

Total buffers: 192.0M global + 11.4M per thread (50 max threads)

Я долго пытался понять, из чего точно складываются эти цифры, пока мне это не надоело. В итоге залез в сам скрипт и подсмотрел. Рассказываю.

Global:
innodb_buffer_pool_size
innodb_log_file_size
key_buffer_size
innodb_log_buffer_size
query_cache_size
aria_pagecache_buffer_size

Эти значения просто суммируются.

Thread:
max_connections # значения ниже суммируются и умножаются на max_connections
sort_buffer_size
join_buffer_size
read_buffer_size
read_rnd_buffer_size
max_allowed_packet
thread_stack

Вчера для небольшого сервера с 1Gb оперативной памяти нарисовал вот такой конфиг, который позволяет серверу mysql забрать не более 70% оперативной памяти:

########### global memory
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
key_buffer_size = 16M
innodb_log_buffer_size = 16M
query_cache_size = 0
aria_pagecache_buffer_size = 16M
########### thread memory
max_connections = 50
sort_buffer_size = 1M
join_buffer_size = 1M
read_buffer_size = 128KB
read_rnd_buffer_size = 1M
max_allowed_packet = 8M
##########

Специалистом по оптимизации БД не являюсь. Если что-то напутал или у кого-то есть советы по базовой оптимизации mysql, прошу поделиться информацией.

p.s. Сохрани в закладки, наверняка понадобится, когда будешь разбираться с этой темой.

#mysql
GitHub GitHub - major/MySQLTuner-perl: MySQLTuner is a script written in Perl that will assist you with your MySQL configuration and make… MySQLTuner is a script written in Perl that will assist you with your MySQL configuration and make recommendations for increased performance and stability. - major/MySQLTuner-perl
  • 👍 4
More from @srv_admin
  1. Oct 5, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  2. Oct 5, 2026В комментариях к недавней заметке про рабочее место один читатель в комментариях упомянул…
  3. Oct 2, 2026Мне Селектел прислали прикольный светильник, которым я сейчас стал постоянно пользоваться.…
  4. Oct 2, 202620 октября в 12:00 (мск) пройдёт бесплатный вебинар «Мониторинг событий безопасности в MWS…
  5. Oct 2, 2026На днях задачка небольшая была по сохранению команд пользователя в консоли. В ней ничего о…
  6. Oct 1, 2026Делал на днях некоторые покупки компьютерных комплектующих и периферии. От новых цен натур…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →