1。修改Linux默认IO调度算法。

Linux默认的IO调度算法CFQ,需要修改截止日期。如果是SSD或PCIe SSD设备,需要修改为空。可以使用以下两个修改。

1、在线动态修改、重启失败。

复制代码代码如下所示:

回声截止时间



提示:这里的SDA代表你需要修改的硬盘,这取决于你的实际情况。

2。修改 / /等grub.conf和永久生效。

修改 / /等grub.conf在内核配置文件中添加一个配置线,例如:

复制代码代码如下所示:

核/ vmlinuz-2.6.32-279.el6.x86_64 RO根= = e01d6bb4-bd74-404f-855a-0f700fad4de0 UUID rd_no_luks rd_no_lvm郎= en_us.utf-8 rd_no_md sysfont = latarcyrheb-sun1

6 crashkernel =自动键盘类型= =我们rd_no_dm PC当电梯=期限rhgb安静



关注电梯参数,如果您设置了内核,您需要重新启动系统才能生效。

最后,它可以通过猫/系统/队列/调度程序来观察,修改前后的差异。

两。展开文件描述符

这是一个经常修改的参数,程序的高并发性将被修改。

1。动态修改、重新启动失败,只使用root,当前会话是有效的。

复制代码代码如下所示:

ulimit -n 51200



2,修改配置文件,永久效果。

添加一行 / / / limits.conf等安全配置文件

复制代码代码如下所示:

*硬nofile 51200



扩大开放过程流程数/等/安全/ limits.conf

添加一行 / / / limits.conf等安全配置文件

复制代码代码如下所示:

*硬nproc 51200



最后,修改文件添加

复制代码代码如下所示:

会议要求 / / / pam_limits.so lib64安全



重新启动系统并使用ulimit -a命令来查看它是否是有效的。

三。禁用NUMA特性

新一代的NUMA架构不适合运行数据库,这是为了提高内存利用率,但实际效果并不好,这可能会导致一个CPU的内存还有剩余,而另一个是不够的,交换的问题,所以建议关闭或修改NUMA调度机制。

1、修改 / /等grub.conf关闭NUMA,生效后重启。

复制代码代码如下所示:

核/ vmlinuz-2.6.32-279.el6.x86_64 RO根= = e01d6bb4-bd74-404f-855a-0f700fad4de0 UUID rd_no_luks rd_no_lvm郎= en_us.utf-8 rd_no_md sysfont = latarcyrheb-sun1

6 crashkernel =自动键盘类型= =我们rd_no_dm PC当电梯= = rhgb安静了期限NUMA



2、修改 / /初始化等。D / MySQL或mysqld_safe脚本启动mysqld进程设置NUMA调度机制,例如。

在以下的mysqld_safe脚本的新版本,所以你不需要添加的,你可以看看你的mysqld_safe脚本有以下内容。

复制代码代码如下所示:

如果真的numa_interleave -情商测试1美元

然后

#定位numactl,确保它的存在。

如果!my_which numactl > / dev /空2 > 1

然后

log_error numactl命令没有找到,所需的 u2013 NUMA交织

1号出口

#试图运行一个命令,确保作品。

Elif!numactl u2013交织=真

然后

log_error numactl失败,检查是否正确安装了numactl

网络启动mysqld和numactl。#

CMD CMD =美元numactl交错=所有

elif测试numa_interleave -情商1美元

然后

log_error numa交织在这个平台上不支持

1号出口

FI



四。修改swappiness设置

swappiness是Linux内核参数,用于物理内存交换策略控制。它允许一个百分比的最小值为0,最大值是100,默认值是60,可以通过下面的命令来观察。

复制代码代码如下所示:

sysctl - grep swappiness | #

vm.swappiness = 60



这个设定值的影响是什么

vm.swappiness设置为0,最大限度地减少互换使用,100说不活跃的内存页交换到交换或缓存(Cache释放类似预读文件)。

无效的内存是指程序映射,但记忆,长时间不使用,我们可以使用vmstat系统中看到多少消极的记忆。

复制代码代码如下所示:

# vmstat - 1

特效————-记忆-交换 u2013 - IO——————————————CPU

R B swpd自由全段活性硅Bi Bo CS

0016930764192752 367332028601732001 3100109900

1016930764192752 367332028601732000 11362710010000

0016930764192748 367332028601732000 561167325109900

0016930764192740 367332028601732000 4010391640010000



在centos7,这个推荐值设置为0,但在新版本的内核,这样的设置可能会导致OOM(内存溢出),内核将杀死,用最记忆mysqld进程。

现在,值建议设置为1,设置方法如下所示:

添加一行在 / / sysctl.conf文件等。

复制代码代码如下所示:

vm.swappiness = 1

sysctl - P / / #运行这个命令,立即进行配置。



五、优化文件系统挂载参数。

首先,关于文件系统的使用,很多在线测试,令人眼花缭乱。一般结论如下。

XFS > ext3:xfs性能优于ext3

ext4 > ext3:EXT4性能优于ext3

ext4的XFS:XFS和ext4的谁是好的我不这么说。

然后它是用来挂载文件系统的参数:

复制代码代码如下所示:

违约,noatime,nodiratime,屏障= 0(使用nobarrier XFS)



文件系统挂载参数是 / / fstab文件等并重新启动时生效修改。

noatime表明访问时间没有记录,和nodiratime不记录目录的访问时间。

障碍= 0,这意味着关闭屏障功能的主要目的。屏障是保证磁盘写入数据的安全,但会降低性能。如果有一个备用电池电源如BBU确保控制卡不关机的一瞬间,该功能可以安全地关上下来。

您可以看到配置是否由命令生效。

复制代码代码如下所示:

#猫/ proc /坐骑

rootfs / rootfs RW 00

程序或子程序的RW,nosuid将,则nodev,noexec,relatime 00

sysfs /系统sysfs RW,seclabel,nosuid将,则nodev,noexec,relatime 00

Devtmpfs /dev devtmpfs RW, seclabel, nosuid, relatime, size=8188388k, nr_inodes=2047097, mode=755 00

devpts / dev /分devpts RW,seclabel,relatime,GID = 5,模式= 620,00 = 000 ptmxmode

tmpfs / dev / SHM tmpfs RW,seclabel,nosuid将,则nodev,relatime 00

/ / / dev sda3 EXT4 RW,seclabel,relatime,noatime,nodiratime,屏障= 0,00 =有序数据

没有/ SELinux selinuxfs RW,relatime 00

devtmpfs / dev devtmpfs RW,seclabel,nosuid将relatime,大小=,8188388k,nr_inodes = 2047097,00 = 755模式

/ proc /公共汽车/ USB / proc /公共汽车/ USB USB系统RW,relatime 00

没有/程序/系统/ FS / binfmt_misc binfmt_misc RW,relatime 00

/ / / dev安装引导ext4 RW,seclabel,noatime,nodiratime,屏障= 0,00 =有序数据