Linux 服務器常常一段時間就會出現這樣的問題,一個月半個月的樣子。每次都重啓服務器臨時性解決,昨晚仔細看了看報的錯誤。mysql
先看應用的日誌提示連不上 MySQL 服務器。sql
"Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)"
再看看 MySQL 的日誌,發現原來超過限制了。數據庫
190314 11:18:08 mysqld_safe mysqld restarted 2019-03-14 11:18:09 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-03-14 11:18:09 0 [Note] /usr/sbin/mysqld (mysqld 5.6.34) starting as process 16180 ... 2019-03-14 11:18:09 16180 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000) 2019-03-14 11:18:09 16180 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)
既然看到問題,先網上搜搜別人怎麼解決的。服務器
都在說修改系統的文件數限制,ulimit -a 一看,65535,對的呀。socket
怪事,MySQL 也有限制,看一下優化
show variables like '%files%';
果真是 1024 spa
更新,問題不對。是系統內存不足了。.net
數據庫優化rest
一、ip 地址反向解析。關閉日誌
skip-name-resolve
提示數據庫反應時間。
二、數據庫故障問題:內存不足,獲取不到更多內存。
2019-03-14 11:18:09 16180 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
下午已升了配置。
參考連接:http://blog.itpub.net/20893244/viewspace-2152685