MySQL open files limit
Привет,
В компанията в която работя често се налага да правя нови MySQL сървъри и да ги включвам в работещия ни cluster. Поради факта, че базите които имаме са изключително големи и натоварването към тях също, може да се стигне до проблема с open_files_limit, който при MySQL по подразбиране не 1024.
mysql> show global variables like 'open%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 1024 | +------------------+-------+
Пробвал съм много начини за решаване на този проблем. Добавяне на лимити в /etc/security/limits.conf , добавяне на лимити в /etc/mysql/my.cnf , но никои от тях не ми свърши работа. За това и пиша този пост, с моят начин за решаване на този проблем.
MySQL open files limit – fix
За да избегнем съобщението за грешка : mysql> too many open files, е нужен лек тунинг на самият mysql.service.
Линукса на който живеят MySQL сървърите е debian 8, а при него е известно, че системният мениджър е сменен, и е вече systemd. Заради това е нужно да се направи промяна в /lib/systemd/system/mysql.service както следва:
echo "LimitNOFILE=65535" >> /lib/systemd/system/mysql.service echo "LimitNPROC=65535" >> /lib/systemd/system/mysql.service
Следва презареждане на systemd демона :
systemctl daemon-reload
и рестартиране на MySQL процеса :
systemctl restart mysql.service
И резултата е на лице:
MySQL-Cluster-1:˜# mysql Welcome to the MySQL monitor. Commands end with ; or \g. ................ Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show global variables like 'open%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 65535 | +------------------+-------+ 1 row in set (0.01 sec) mysql> ^DBye
Общо взето е това!