О себе События Портфолио Статьи Гостевая Фотоальбом На злобу дня Ссылки Учеба Программы
Alex_K (г.Киров) - Алексей Кощеев
Хостинг и регистрация доменов в Кирове

Заметки про администрирование

MySQL и swap

При переходе с FreeBSD 12.4 на 14.0 обнаружилась проблема поедания оперативной памяти процессом mysqld. Наиболее ярко это происходило во время создания регулярных резервных копий баз данных.

Примерно так:

pid 3673 (mysqld), jid 1, uid 88, was killed: failed to reclaim memory

Или так:

swap_pager: out of swap space
swp_pager_getswapspace(32): failed
swp_pager_getswapspace(24): failed
swap_pager: out of swap space
swp_pager_getswapspace(6): failed
swap_pager: out of swap space
swp_pager_getswapspace(3): failed
swp_pager_getswapspace(2): failed
swap_pager: out of swap space
swp_pager_getswapspace(24): failed
swp_pager_getswapspace(3): failed
swp_pager_getswapspace(26): failed
swap_pager: out of swap space
swp_pager_getswapspace(25): failed
pid 3641 (mysqld), jid 1, uid 88, was killed: failed to reclaim memory

Речь идет про хостинговые сервера, где очень много баз данных. Я давно подозревал, что MySQL как-то нехорошо работает с оперативной памятью.

На форуме freebsd попалось решение:

  1. установить пакет google-perftools
    pkg install google-perftools
  2. добавить в /usr/local/etc/mysql/my.cnf строки
    [mysqld_safe]
    malloc-lib=/usr/local/lib/libtcmalloc_minimal.so
  3. перезапустить MySQL
    service mysql-server restart

Это работает. Процесс mysqld теперь почти не свопится, использование оперативной памяти стабильное и с течением дней почти не увеличивается.

Опубликовано: 17 апреля 2024 года.

Перейти к списку заметок
Fanshop.ru

Рейтинг@Mail.ru

Rambler's Top100

© Алексей Кощеев, г.Киров, 2001-2024 хостинг предоставлен компанией Айхэд