- 論壇徽章:
- 0
|
一臺機奔III,512M內(nèi)存的機器,運行redhat linux 9 ,上裝有php4.2.2+ apache1.3.27+mysql4.0.12. mysql定義了配置文件my.cnf ,其中關鍵的幾項參數(shù)如下:
[mysqld]
port = 3306
socket = /tmp/mysql.sock
user = mysql
skip-locking
skip-name-resolve
set-variable = key_buffer=128M
set-variable = max_allowed_packet=1M
set-variable = max_connections=1000
set-variable = back_log=500
set-variable = max_connect_errors=10000
set-variable = table_cache=512
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=100
set-variable = wait_timeout=60
這樣的參數(shù)在之前運行的mysql3.23.49上運行的很好,沒有出現(xiàn)問題.
但自升級至mysql4后,出現(xiàn)了 too many connections 的錯誤.而我的服務并沒跟以前很大不同,也沒有提高什么流量,似乎也不是有人在搗亂攻擊(來自相同的ip的請求或連接都不多).因此我估計是mysql保持了連接,沒有timeout,有一點我覺得奇怪的是我show global variables 時看到的wait_timeout值是正確的60, 而show variables 看到的wait_timeout值是28800(缺省) ,不知是否有問題?
我的數(shù)據(jù)庫連接都是使用unix domain socket的,在不出現(xiàn)too many connections錯誤的情況下也可以從netstat -na 命令中看到有大量的(大概375個)已經(jīng)建立的連接如下:
unix 2 [ ACC ] STREAM LISTENING 388860503 /tmp/mysql.sock
unix 2 [ ] STREAM CONNECTED 271154000
unix 2 [ ] STREAM CONNECTED 271153999
unix 2 [ ] STREAM CONNECTED 271153997
unix 2 [ ] STREAM CONNECTED 271153991
unix 2 [ ] STREAM CONNECTED 271153923
unix 2 [ ] STREAM CONNECTED 271153894
unix 2 [ ] STREAM CONNECTED 271153825
unix 2 [ ] STREAM CONNECTED 271153813
unix 2 [ ] STREAM CONNECTED 271153392
這應該是不正常的,而且我觀察到這些連接一直保持,并不會超時退出.之前的mysql版本不會出現(xiàn)這個問題. 請各位大俠指點迷津,感激不盡! |
|