優化table_cache
table_cache指定表快取記憶體的大小。每當mysql訪問乙個表時,如果在表緩衝區中還有空間,該錶就被開啟並放入其中,這樣可以更快地訪問表內容。通過檢查峰值時間的狀態值open_tables和opened_tables,可以決定是否需要增加table_cache的值。如果你發現open_tables等於table_cache,並且opened_tables在不斷增長,那麼你就需要增加table_cache的值了(上述狀態值可以使用show status like 『open%tables』獲得)。注意,不能盲目地把table_cache設定成很大的值。如果設定得太高,可能會造成檔案描述符不足,從而造成效能不穩定或者連線失敗。
對於有1g記憶體的機器,推薦值是128-256。
案例1:該案例來自乙個不是特別繁忙的伺服器
table_cache – 512
open_tables – 103
opened_tables – 1273
uptime – 4021421 (measured in seconds)
該案例中table_cache似乎設定得太高了。在峰值時間,開啟表的數目比table_cache要少得多。
案例2:該案例來自一台開發伺服器。
table_cache – 64
open_tables – 64
opened-tables – 431
uptime – 1662790 (measured in seconds)
雖然open_tables已經等於table_cache,但是相對於伺服器執行時間來說,opened_tables的值也非常低。因此,增加table_cache的值應該用處不大。
案例3:該案例來自乙個upderperforming的伺服器
table_cache – 64
open_tables – 64
opened_tables – 22423
uptime – 19538
該案例中table_cache設定得太低了。雖然執行時間不到6小時,open_tables達到了最大值,opened_tables的值也非常高。這樣就需要增加table_cache的值。
優化key_buffer_size
key_buffer_size指定索引緩衝區的大小,它決定索引處理的速度,尤其是索引讀的速度。通過檢查狀態值key_read_requests和key_reads,可以知道key_buffer_size設定是否合理。比例key_reads / key_read_requests應該盡可能的低,至少是1:100,1:1000更好(上述狀態值可以使用show status like 『key_read%』獲得)。
key_buffer_size只對myisam表起作用。即使你不使用myisam表,但是內部的臨時磁碟表是myisam表,也要使用該值。可以使用檢查狀態值created_tmp_disk_tables得知詳情。
對於1g記憶體的機器,如果不使用myisam表,推薦值是16m(8-64m)。
案例1:健康狀況
key_buffer_size – 402649088 (384m)
key_read_requests – 597579931
key_reads - 56188
案例2:警報狀態
key_buffer_size – 16777216 (16m)
key_read_requests – 597579931
key_reads - 53832731
案例1中比例低於1:10000,是健康的情況;案例2中比例達到1:11,警報已經拉響。
HttpHandler開發的兩個重點問題
大家在用httphandler的時候,一般都會有兩個大的疑問 當然,前提是你有鑽研精神的話,呵呵 老實說,這個屬性很多人都感興趣,但搞懂的人確實不多。msdn中的介紹也是不知所以然。獲取乙個值,該值指示其他請求是否可以使用ihttphandler例項。該屬性預設為false 我來這麼說吧,首先我們為...
HttpHandler開發的兩個重點問題
大家在用httphandler的時候,一般都會有兩個大的疑問 當然,前提是你有鑽研精神的話,呵呵 1.isreusable到底什麼意思?老實說,這個屬性很多人都感興趣,但搞懂的人確實不多。msdn中的介紹也是不知所以然。獲取乙個值,該值指示其他請求是否可以使用 ihttphandler 例項。該屬性...
virtual function的兩個優化
這倆真是歡啊。humus這篇說d3d的api都是virtual function call,這效能損失很心疼。所以就弄個callback函式,然後到d3ddevice的virtual table把api的函式位址找出來,然後指過去,於是api呼叫就不用經過virtual table的查詢了。dela...