【Mysql】針對跑mysql的linux機器的最佳化經驗

小亮520cl發表於2016-03-24
因為很多MySQL的生產環境都在Linux下,我決定指出一些Linux下跑MySQL的很重要的最佳化點。這些是大家都知道的,也沒什麼新東西,但我想在這一個blog裡收集整理一下Linux相關的配置最佳化經驗。

檔案系統

  1. ext4(or xfs) mount時使用notime選項
  2. 檔案系統排程策略: 使用deadline or noop
  3. 你的系統中磁碟很可能不是 sda
  4. # echo deadline >/sys/block/sda/queue/scheduler

    如果想永久生效,需要更改 /etc/grup.conf,新增 elevator,示例如下:

    kernel /vmlinuz-x.x.xx-xxx.el6.x86_64 ro root=UUID=e01d6bb4-bd74-404f-855a-0f700fad4de0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun1
    6 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM elevator=noop rhgb quiet




記憶體:

Swappiness and NUMA
譯者注: 最好禁掉swappiness 或是在系統標識不使用他。
  1. # echo 0 >/proc/sys/vm/swappiness ----0並不是真正的禁用,而是提醒儘量不使用swap分割槽,可以根據情況設定swap的百分比
    add "vm.swapiness=0" to /etc/sysctl.conf
  2. 使用numa的interleave all 模式
    numactl –interleave=all 啟動mysqld
    如果使用Percona-server 在mysql_safe裡有關於使用numa_interleave的選項。更多關於資訊可以檢視Percona Server對numa的支援

    (並且別忘了使用innodb_flush_method=O_DIRECT)rformance/innodb_numa_s

    譯者注: 記憶體最佳化這塊可以考慮使用jemalloc( tokudb,percona都有使用這個方式,官方版本需要自已載入)



CPU:

請確認關閉節能模式
檢查:
  1. 例如: “ondemand” 在伺服器上執行:
  2. $ps ax|grep kondmand|wc -l
    65
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    ondemand


  3. 另外檢視CPU的標註頻率是否和實際頻率相符:
  4. /proc/cpuinfo:
    model name : Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz
    ..
    cpu MHz : 1200.000
    如果不符請禁用ondemand(需要更改bois裡的配置)

詳細21條最佳化建議可以檢視:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2063266/,如需轉載,請註明出處,否則將追究法律責任。

相關文章