Изменение лимита открытых файлов в MySQL 5.5


9

У меня проблема с mysql 5.5, работающим на Ubuntu 12.04 с параметром open-files-limit.

Недавно я заметил некоторые проблемы из-за ограничения в 1024, и фактически ограничение основной системы было установлено в 1024, поэтому я изменил /etc/security/limits.conf следующим образом:

* soft nofile 32000
* hard nofile 32000
root soft nofile 32000
root hard nofile 32000

После этого я проверяю значение ulimit для root и даже для пользователя mysql, оба возвращают новое значение: 32000, поэтому я предполагаю, что изменение уже сделано.

Я также изменил значение в файле my.cnf, установив для open-files-limit значение 24000, например так:

open-files-limit    = 24000

Теперь начинается странная часть: когда я перезапускаю службу mysql и проверяю переменную open_files_limit, она возвращает, что она по-прежнему установлена ​​на 1024, поэтому у меня возникают те же проблемы, что и раньше (очевидно), я пытался использовать open-files-limit вместо open_files_limit в файле конфигурации my.cnf, тот же результат, НО, если я переопределю команду службы для запуска службы и запускаю только с использованием mysqld (без дополнительных параметров), служба запускается, и когда я проверяю параметр, она возвращает 32000 ... Я не знаю, откуда оно берет это значение, поскольку оно не установлено в my.cnf и не передается через командную строку, по крайней мере, не для меня.

Любые идеи о том, почему это не работает изменение и как решить его обычным способом (запуск через службу ...)?

Ответы:


9

Я наконец-то обнаружил проблему, кажется, что upstart не использует параметры, определенные в /etc/security/limits.conf, поэтому, когда я запускаю mysql через команду service (и так, под upstart), он переопределяет эти определенные ограничения и использует по умолчанию 1024.

Решение состоит в том, чтобы изменить файл mysql.conf, который определяет службу upstart, он расположен в /etc/init/mysql.conf и добавить следующие строки перед блоком pre-start:

# NB: Upstart scripts do not respect
# /etc/security/limits.conf, so the open-file limits
# settings need to be applied here.
limit nofile 32000 32000
limit nproc 32000 32000

Первое значение определяет мягкий предел, другое - жесткий предел, после добавления этих строк служба работает как положено, применяя значения, определенные в файле my.conf.

Это ограничение должно применяться к каждой службе upstart, определенной в / etc / init, поэтому, если у какой-либо службы есть такая же проблема с лимитом открытых файлов, это решение также должно работать.


1
Хорошая работа там!
Пхамре

Это сделало трюк ... Человек, который был боль
Чад Scira
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.