MySQL open files limit

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

Общо взето е това!