之前介紹了相關mysql的性能調優,針對innodb存儲引擎的使用進行性能調優的方法,Jason也留下點Memory。
首先當然要提到的是innodb的關鍵特性:插入緩沖,兩次寫。
我們可以使用show engine innodb status來查看相關信息,我們可以看到Insert,merged recs,merges,我們關注總量及非聚集索引頁的IO請求比。
不過性能方面插入緩沖會占用過多的緩沖池,這樣我們得密切關注緩沖池的大小。默認的情況下最大可以占用一般的緩沖池內存。不過在加入patch的 innodb引擎我們可以修改IBUF_POOL_SIZE_PER_MAX_SIZE來修改占用緩沖池的比例(N代表1/N)。
兩次寫的話在分布式服務器集群來說是性能的一個小瓶頸,如果您有完備的存儲架構,容災、恢復都非常好的話,可以考略關閉兩次寫,單一服務器用戶一定需要開啟這樣有效的提高了服務器的數據可靠性。
在多核服務器中我們可以開啟innodb_read_io_threads及innodb_write_io_threads來增加讀寫IO的線程。調優的范圍取決于CPU的處理能力。
另一方面緩沖池命中率是我們關注的重點:使用show global status like ‘innodb%read%’\G
innodb_buffer_pool_reads
innodb_buffer_pool_read_ahead
innodb_buffer_pool_read_ahead_evicted
innodb_buffer_pool_read_requests
innodb_data_read
innodb_data_reads
緩沖池命中率
innodb_buffer_pool_read_requests/
(innodb_buffer_pool_read_requests+innodb_buffer_pool_read_ahead+innodb_buffer_pool_reads)
平均讀取字節數=innodb_data_read/innodb_data_reads
主要是監控方面的,留下點memory,為以后的工作服務原文轉自:http://www.anti-gravitydesign.com