Зміна відкритих файлів-ліміту в 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, встановивши відкриті файли-ліміт на 24000, наприклад:

open-files-limit    = 24000

Тепер приходить дивна частина, коли я перезапускаю службу mysql і перевіряю змінну open_files_limit, вона повертається, що вона все ще встановлена ​​на 1024, тому у мене виникають ті ж проблеми, що і раніше (очевидно), я намагався використовувати відкриті файли-ліміт замість open_files_limit у конфігураційному файлі my.cnf такий же результат, АЛЕ якщо я перекрию команду служби, щоб запустити службу і почати використовувати лише mysqld (немає додаткових параметрів), сервіс запускається, і коли я перевіряю параметр, він повертає 32000 ... Я не знаю, звідки воно приймає це значення, оскільки воно не встановлено у my.cnf і воно не надається через командний рядок, принаймні, не для себе.

Будь-які ідеї про те, чому це не працює над зміною і як її вирішити нормальним способом (запустивши її через сервіс ...)?

Відповіді:


9

Нарешті я знайшов проблему, здається, що upstart не використовує параметри, визначені в /etc/security/limits.conf, тому коли я запускаю mysql через команду служби (і так, під верхнім запуском), вона переосмислює зазначені обмеження та використовує за замовчуванням 1024.

Рішення полягає в тому, щоб змінити файл mysql.conf, який визначає послугу upstart, він знаходиться за адресою /etc/init/mysql.conf та додати наступні рядки перед блоком перед запуском:

# 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.

Це обмеження повинно застосовуватися для кожної початкової служби, яка визначена в / etc / init, тому, якщо будь-яка служба має ту ж проблему з обмеженням відкритих файлів, це рішення має працювати також.


1
Приємної роботи там!
pkhamre

Це зробило трюк ... людина, яка
боліла,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.