【Mysql】针对跑mysql的linux机器的优化经验

因为很多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条优化建议可以查看:
http://wubx.net/21ways-optimize-mysql/
请使用浏览器的分享功能分享到微信等