One server is running both mysql and apache together,but the mysql get down every four hours.From PHP,it’s said ‘Error establshing a database connection’.From mysql error log,i got the some records like below:
’121029 2:47:38 [ERROR] Error in accept: Too many open files’
i know that mysql server has a config directive of
open_files_limit
which limit the number of file descripteors mysqld can use.so i need to check what the value in use for the current running mysqld server,from mysql client console,
You can also check the config with following command:
# netstat -atnp|grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5596/mysqld # cat /proc/5596/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 10485760 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 200704 200704 processes Max open files 1185 1185 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 200704 200704 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0
so now we need to adjust mysql server configuration to make it feel comfortalbe.You decide the open_files_limit value by considering following factor:the databases amount, the max_connections and the table_cache value. You can also increase the number to a little higher you think is appropriate,then tune it by mysql server running status.
# vim /etc/my.cnf
[mysqld]
open_files_limit = 3000
save to quit and then restart msyql server
#/etc/init.d/mysqld restart
No comments:
Post a Comment