2011-07-01 63 views
0

我現在有問題與MySQL重載,然後當它是非常繁忙的服務器將停止響應完全。我知道我的一個數據庫有一個交通掠奪,但我怎麼能處理this.do我需要一個更好的服務器,或者我需要一個不同的數據庫engion。目前我正在使用MyISAM。一些我處理的表有大約42萬條記錄(82.7兆),還有大量插入和選擇的任何幫助將是速度是非常重要的多MYSQL超載

我得到當我看到在狀態上的這條消息whm

/usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/server.sy2.com.pid --skip-external-locking 

大多數情況下,服務器負載爲180%-220%。

我輸入該服務器

netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n 

    1 established) 
    1 Foreign 
    17 SYN_RECV 
    28 FIN_WAIT1 
    30 LISTEN 
154 ESTABLISHED 
188 FIN_WAIT2 
1206 TIME_WAIT 

阿帕奇狀態

Current Time: Saturday, 25-Jun-2011 19:00:34 BST 
Restart Time: Friday, 24-Jun-2011 20:41:36 BST 
Parent Server Generation: 11 
Server uptime: 22 hours 18 minutes 58 seconds 
Total accesses: 1866618 - Total Traffic: 12.2 GB 
CPU Usage: u25.92 s20.03 cu1142.19 cs0 - 1.48% CPU load 
23.2 requests/sec - 159.5 kB/second - 6.9 kB/request 
206 requests currently being processed, 12 idle workers 


this is the server spec 
Linux - Dual Quad Core Intel Xeon E5620 
Hard Disk: 4x300GB SAS 15k RPM 
RAM: 12 GB DDR3 RAM 
RAID Options: RAID 10 (needs 4 identical Drives) 
Operating System: CentOS 5.x 
Control Panel: cPanel/WHM 
Bandwidth: 5000 GB 
+4

你看着mysql命令「SHOW PROCESSLIST」,以確定活動的連接/查詢你有多少?這可能是一個簡單的情況,即未鎖定和阻止的慢索引,或者它可能與客戶端不釋放連接有關。 – Nthalk

回答

2

上沒有簡單的回答這個問題。只是關於如何解決您的問題的一些指導。您實際上可能會遇到服務器可以處理的峯值負載,並且可能無法進行優化。

show processlist開頭這會給你一個想法,有多少連接是開放的,哪些可能因鎖定問題而被卡住。

啓用慢查詢日誌,尋找緩慢響應的查詢並使用explain查看執行計劃。您可能會缺少索引或導致查詢運行緩慢的結構性問題。

您可以調整數據庫服務器設置,以允許將更多數據緩存到內存中。有一些像mysqltuner這樣的工具可以引導你進行設置,你應該看看。

你也可能想看看這個指南:http://www.fromdual.com/mysql-performance-tuning-key