针对MySQL的Linux性能调优技巧

针对MySQL的Linux性能调优技巧

文件系统(Filesystem)面试

1)使用ext4或者xfs文件系统,mount选项使用noatime选项。
系统默认记录文件建立、修改和上一次访问等信息,记录上last access time须要必定的开销。使用noatime选项,不记录last access time,能够提高系统的性能。算法

2)IO调度算法选择NOOP或则Deadline。网络

echo deadline > /sys/block/sda/queue/scheduler
add "elevator=deadline" to grub.conf

内存优化(Memory&Swap)架构

优先使用内存app

尽量使用内存,而少使用swap。只有当内存不够用的时候,系统才会使用swap。运维

echo 0 > /proc/sys/vm/swappiness
add "vm.swappiness = 0" to /etc/sysctl.conf

屏蔽NUMA特性分布式

设置numactl的interleave参数值为all,便是容许全部的处理器能够交叉访问全部的内存,一致性内存访问(UMA, Uniform Memory Access)方式。oop

numactl --interleave=all

Node Interleaving: Enable or Disable?详细讲述了交叉访问模式的做用。性能

The MySQL “swap insanity” problem and the effects of the NUMA architecture深度分析MySQL对于swap的使用和NUMA架构对MySQL的性能影响。大数据

NUMA(Non-Uniform Memory Access)非一致性内存访问架构,是一种多核处理器的内存设计方案。针对每一个处理器,NUMA会把全局的存储器分为本地内存(local memory)和非本地内存(no-local memory)。处理器访问本地内存速度比非本地内存的速度快不少。

CPU优化

检查CPU是否开启了节能选项,ondemand表示处于节能状态。[Centos 5.x]

cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
ondemand

ps ax | grep kndemand

2778 ? S< 0:00 [kondemand/0]

2779 ? S< 0:00 [kondemand/1]

2780 ? S< 0:00 [kondemand/2]

2781 ? S< 0:00 [kondemand/3]

2782 ? S< 0:00 [kondemand/4]

2783 ? S< 0:00 [kondemand/5]

2784 ? S< 0:00 [kondemand/6]

2785 ? S< 0:00 [kondemand/7]

上面的的进程状态显示8个cores均开启了节能模式。

另外,经过/proc/cpuinfo中cpu的当前的时钟频率与“model name”中数字是否一致能够得知cpu是否处于节能状态。以下,“model name”显示的2.13GHz,而“cpu Mhz”显示的1867.000MHz,cpu没有达到最大的时钟频率,处于节能状态。

cat /proc/cpuinfo

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 26

model name : Intel(R) Xeon(R) CPU E5506 @ 2.13GHz

stepping : 5

cpu MHz : 1867.000

cache size : 4096 KB

Centos6.x 编译内核的时候没有加上cpufreq performance模块,所以不能使用”cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor”检查cpu是否处于节能工做状态。

watch grep \"cpu MHz\" /proc/cpuinfo

检查cpu的工做频率。

※部分文章来源于网络,若有侵权请联系删除;更多文章和资料|点击后方文字直达 ↓↓↓
100GPython自学资料包
阿里云K8s实战手册
[阿里云CDN排坑指南] CDN
ECS运维指南
DevOps实践手册
Hadoop大数据实战手册
Knative云原生应用开发指南
OSS 运维实战手册
云原生架构白皮书
Zabbix企业级分布式监控系统源码文档
10G大厂面试题戳领