Увеличиваем количество открытых файлов MySQL в Debian Linux

»»»

Увеличиваем количество открытых файлов MySQL в Debian Linux

В высоко нагруженных системах по мере роста нагрузки на сервер MySQL возможно возникновение ситуации, когда выделенных ресурсов будет не достаточно, хотя аппаратно сервер может быть достаточно мощным.

В частности в логах сервера MySQL при запуске можно наблюдать следующие строки:

[Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 10460)
[Warning] Buffered warning: Changed limits: max_connections: 214 (requested 450)
[Warning] Buffered warning: Changed limits: table_open_cache: 400 (requested 5000)

Эти сообщения говорят о недостаточности выделенных ресурсов серверу. Основной проблемой является ограничение max_open_files которое составляет 1024, а увеличение этого параметра в настройках сервера my.cnf не приводит к желаемому результату.

Эту проблему можно решить так:

Шаг 1: Определим текущие ограничения

количество максимально открытых файлов (1024) для одного процесса (mysql). Для этого из под пользователя root выполняем следующую команду:

# ulimit -a | grep open
open files                      (-n) 1024

для сервера MySQL необходимо залогиниться пользователем root и выполнить:

# mysql -u root -p
mysql> SHOW VARIABLES LIKE 'open%';
  +------------------+-------+
  | Variable_name    | Value |
  +------------------+-------+
  | open_files_limit |1024  |
  +------------------+-------+
  1 row in set (0.00 sec)

Шаг 2: Исправляем

В файл /etc/security/limits.conf добавляем следующие строки:

mysql             soft    nofile           65535
mysql             hard    nofile           65535

В файл /etc/pam.d/common-session, в конец добавляем строку:

session required pam_limits.so

В файл /etc/pam.d/common-session-noninteractive, в конец добавляем строку:

session required pam_limits.so

В файл /etc/my.cnf, в секцию [mysqld], добавляем строку:

open_files_limit = 1024000

Перезапускаем сервер

 

Шаг 3: Проверяем:

# ulimit -a | grep open
open files                      (-n) 102400
 SHOW VARIABLES LIKE 'open%';
Рейтинг

В этом разделе