MySQL 5.6 innodb儲存引擎參數接受

來源:互聯網
上載者:User

標籤:mysql innodb 參數

innodb_read_io_threads=8
innodb_write_io_threads=8


此參數可以在linux平台上可以根據CPU核心數進一步更改來提高效能,讀操作比較多可以提高read_io_threads數量。可以通過show engine innodb status\G 在FILE I/O段查看到,如下:

FILE I/O
--------
I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
I/O thread 1 state: waiting for completed aio requests (log thread)
I/O thread 2 state: waiting for completed aio requests (read thread)
I/O thread 3 state: waiting for completed aio requests (read thread)
I/O thread 4 state: waiting for completed aio requests (read thread)
I/O thread 5 state: waiting for completed aio requests (read thread)
I/O thread 6 state: waiting for completed aio requests (read thread)
I/O thread 7 state: waiting for completed aio requests (read thread)
I/O thread 8 state: waiting for completed aio requests (read thread)
I/O thread 9 state: waiting for completed aio requests (read thread)
I/O thread 10 state: waiting for completed aio requests (write thread)
I/O thread 11 state: waiting for completed aio requests (write thread)
I/O thread 12 state: waiting for completed aio requests (write thread)
I/O thread 13 state: waiting for completed aio requests (write thread)
I/O thread 14 state: waiting for completed aio requests (write thread)
I/O thread 15 state: waiting for completed aio requests (write thread)
I/O thread 16 state: waiting for completed aio requests (write thread)
I/O thread 17 state: waiting for completed aio requests (write thread)


提高IO處理能力:

innodb_io_capacity=200

該參數表示一次過將多少個髒資料寫進硬碟,普通單個SATA可以設定200,對於SSD可以設定3000,而擁有5個磁碟組成的RAID5可以設定成2000.

增加自適應重新整理髒頁功能:

innodb_adaptive_flushing

由於該參數預設為開啟狀態,所以不需要在my.cnf裡面設定。

mysql在以下三種情況下將髒頁刷磁碟:

  1. 當超過innodb_max_dirty_pages_pct設定值

  2. 重做日誌ib_logfile檔案寫滿

  3. 機器空閑時

關於innodb_max_dirty_pages_pct該參數建議在75-80之間即可,因為如果設定過大記憶體也很大或者伺服器壓力很大(資料庫崩潰時候恢復增加,可以提高效能),那麼效率很降低,如果設定的值過小,那麼硬碟的壓力會增加(崩潰恢復減少,不過效能降低)。


可以通過show engine innodb status\G  查看

Buffer pool size        65532
Buffer pool size, bytes 1073676288


Buffer pool size × 16 ×1024 等於Buffer pool size, bytes,(簡稱buffersize)然後將Modified db pages 的數乘16再乘1024(簡稱modiffiedsize), 將modiffiedsize / buffersize * 100 ,查出此數是否大於20%,然後通過減少該參數值來降低Modified db pages(這個是髒頁數量),動態設定:

set globalinnodb_max_dirty_pages_pct=5;

(不過個人認為會受到innodb_adaptive_flushing參數的影響)


innodb_buffer_pool_instance 參數可以增加buffer pool的數量,不過應該在innodb_buffer_pool_size大於1G時候才使用。在percona裡面innodb_buffer_pool_instances預設應該是8這個與社區裡的mysql有點不同。(建議根據CPU核心數2倍來調整)

innodb 的自適應hash索引,可以通過skip_innodb_adaptive_hash_index來進行關閉,不過如果單表大小小於記憶體大小的時候不建議關閉


利用TCMalloc提升記憶體配置效能

下載google-perftools 1.9編譯並安裝:

./configure --enable-frame-pointers

 make && make install

修改/usr/local/mysql/bin/mysqld_safe檔案,在第13行增加下面一行:

export LD_PRELOAD=/usr/local/lib/libtcmalloc.so

重啟mysql

innodb_purge_threads 預設為1 ,獨立的清除線程


innodb_change_buffering用預設all即可


innodb_stats_on_metadata

Innodb更新中繼資料統計功能,建議關閉,其實不關閉也不會有太大影響。

innodb_stats_on_metadata=off

percona預設關閉。


innodb_strict_mode 嚴格檢查模式,此參數只是可以防止問題發生而已,不對效能有任何影響。


本文出自 “技術部落格” 部落格,請務必保留此出處http://raytech.blog.51cto.com/7602157/1701814

MySQL 5.6 innodb儲存引擎參數接受

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.