Назад | Перейти на главную страницу

установить open_files_limit

Когда я устанавливаю open_files_limit = 16k в обоих: /etc/security/limits.conf и /etc/mysql/my.cnf

ulimit -n
16344

но в mysql:

show variables like 'open_files_limit';
open_files_limit: 4096 

Итак, как mysql вычисляет open_files_limit. Есть ли еще что-нибудь, что я должен искать?

Вариант 1. Вы можете попробовать запустить lsof на pid MySQL, подключенном к wc -l.

Вариант 2: ll /proc/<mysql-pid>/fs/

Это даст вам список открытых файлов (включая сокеты и т. Д .; в Unix / Linux все является файлом).

Лимит открытых файлов можно проверить на mysql-client с помощью show global varaibles like '%files%' а потом set global variable open_files_limit=<some-larger-number>

Будьте осторожны, так как номер из ulimit -n - это сумма оболочки для всех процессов, и не стоит ставить ее слишком высоко.

Если вы видите, что это число медленно увеличивается, вы, вероятно, захотите проверить свой код: есть висячие ссылки.

Вы указали это как open_files_limit или open-files-limit в my.cnf? В файле конфигурации это должно быть open-files-limit.

проверьте ограничения для пользователя mysql:

limits -e -U mysql

ulimit -a - показать ограничения для вашего пользователя

Если ограничения верны && вы используете Percona MYSQL, тогда необходимо активировать ограничения в стартовом скрипте.

Например, в FreeBSD: /usr/local/etc/rc.d/mysql-server найти строку: ${mysql_limits="NO"} и заменить NO -> YES

PS. 2Янне Пиккарайнен в моем конфиге my.cnf: open_files_limit = 8192