Global Memory 與 Thread Memory
MySQL 再配置記憶體時分成兩各階段,一是當 Server 啟動時配置給整個系統使用,二是當 Client 連線進來的時候配置給單一連線使用。
前者被稱為 Global 後者被稱為 Thread , Memory 的總用量簡單的說就是 Global + (Thread 數 * Thread Memory ) 這個公式所算出來的記憶體消耗應該要小於子系統的總記憶體,但是實務上測試時,系統記憶體不足就會回應 Too many connection 而暫停回應。
但是,源源不絕的 REQUEST 很容易讓系統死當。通常 USED CONNECTION 會大量增加,是因為 TABLE LOCK ,導致新的 QUERY 被暫存,減低 TABLE LOCK 的時間與次數,才是解決問題之道。
但是 TABLE LOCK 一般是因為 SQL 查詢寫的不好,調整 SQL 語法費日曠時,救急的辦法可以縮短 wait_timeout 的時間。但是這會增加 CPU LOADING ,要不斷 TEST 以求取平衡。
- Keywords : Thread, Memory, TABLE, Global, 配置, 稱為, 連線進來, 這會增加, 調整, 語法費, 記憶體消耗, 解決問題, 要不斷, 而暫停回應, 總記憶體, 總用量簡單, 系統使用, 源源不絕, 減低, 查詢寫
0 0
2009-05-20T13:26:28+0000