暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

linux优化for MySQL

原创 金同学 2023-05-15
194

环境:Linux:CentOS 7.5

一、硬件配置

1.1 硬盘选型


优先采用SSD或者PCIE。如果使用机械盘,建议阵列级别设置为RAID10

1.2 读写策略


设置回写策略WB(write back)

1.3 节能模式


关闭服务器的节能模式,BIOS设置为performance

1.4 关闭NUMA


关闭numa,因为numa架构的cpu ,容易导致swap使用率增大。
#shell中关闭
numactl --interleave all command

二、系统配置

2.1 IO调度算法

机械盘:deadline    --避免IO请求出现饥饿现象

固态盘:noop         --简单的先进先出处理请求

#查看CentOS7下IO支持的调度
dmesg | grep -i scheduler
 
#临时生效方法
cat /sys/block/sda/queue/scheduler
 noop [deadline] cfq 
 echo noop>/sys/block/sda/queue/scheduler
cat /sys/block/sda/queue/scheduler
 [noop] deadline cfq      #方括号里面表示正在使用的算法
 
#永久修改
grubby --update-kernel=ALL --args="elevator=noop"
reboot
 
cat /sys/block/sda/queue/scheduler
[noop] deadline cfq 

2.2 文件系统

WiredTiger存储引擎下建议使用xfs,ext4内部Journal与WiredTiger存在兼容性问题,IO效率欠佳。

#调整mount选项,增强文件系统性能
vim /etc/fstab
dev/vda   /mongo_data   xfs   defaults,noatime,nodiratime   0 0 

2.3 内存优化


1>swap设置

设置vm.swappiness ,使系统倾向于使用内存,而非swap

sysctl -w vm.swappiness=1 #临时
echo vm.swappiness = 1 >> /etc/sysctl.conf #永久

2>关闭透明大叶

虽然THP的本意是为提升内存的性能,但是数据库更倾向于稀疏而非连续的内存访问模式。

#检查状态
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
 
#关闭方法
[root@localhost ~]# vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
#赋予可执行权限
chmod +x /etc/rc.d/rc.local
 
#重启系统,再检查
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@localhost ~]# cat /sys/kernel/mm/transparent_hugepage/defrag 
always madvise [never]

2.4 调整限制参数

vim /etc/security/limits.conf
mysql  soft  nofile  64000
mysql  hard  nofile  64000
mysql  soft  nproc   64000
mysql  hard  nproc   64000
mysql  soft  stack   1024
mysql  hard  stack   1024
 
vi /etc/pam.d/login						
session required pam_limits.so          #文件末尾追加该行

2.5 禁用SELinux

临时生效:setenforce 0
永久修改:sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论