针对Mysql的CentOS系统参数主要调优

内核相关参数(/etc/sysctl.conf) 

# 以下参数可以直接放到sysctl.conf文件的末尾
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# 加快TCP连接的回收:
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

# TCP连接接收和发送缓冲区大小的默认值和最大值:
net.core.wmem_default = 87380
net.core.wmem_max = 16777216
net.core.rmem_default = 87380
net.core.rmem_max = 16777216

# 减少失效连接所占用的TCP资源的数量,加快资源回收的效率
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3

# Linux内核参数中最重要的参数之一,用于定义单个共享内存段的最大值。
kernel.shmmax = 4294967295
注意:
  1. 这个参数应该设置的足够大,以便能在一个共享内存段下容纳整个的Innodb缓冲池的大小
  2. 这个值的大小对于64位linux系统,可取的最大值为物理内存值-1byte,建议值为大于物理内存的一半,一般取值大于Innodb缓冲池的大小即可,可以取物理内存-1byte

# 这个参数当内存不足时会对性能产生比较明显的影响。
vm.swappiness = 0
Linux系统内存交换区(在Linux系统安装时都会有一个特殊的磁盘分区,称之为系统交换分区):  
    使用free-m命令可以看到swap就是内存交换区.
    作用:当操作系统因为没有足够的内存时就会将一些虚拟内存写到磁盘的交换区中,这样就会发生内存交换。在MySQL服务器上是否要使用交换分区有一些争议:
  在MySQL服务所在的Linux系统上完全禁用交换分区。
      带来的风险:1. 降低操作系统的性能 2. 容易造成内存溢出,崩溃,或都被操作系统kill掉
  结论:在MySQL服务器上保留交换区还是很必要的,但是要控制何时使用交换分区。Vm.swappiness = 0就是告诉Linux内核除非虚拟内存完全满了,否则不要使用交换区。

增加资源限制(/etc/security/limit.conf) 这个文件实际上是Linux PAM也就是插入式认证模块的配置文件。

# 打开文件数的限制:
soft nofile 65535
hard nofile 65535
# * 表示对所有用户有效,soft 指的是当前系统生效的设置,hard 表明系统中所能设定的最大值,nofile 表示所限制的资源是打开文件的最大数目,65535 限制的数量,soft不能大于hard;直接加到limit.conf文件的末尾就可以了。
# 结论:把可打开的文件数量增加到65535个以保证可以打开足够多的文件句柄。
# 注意:这个文件的修改需要重启系统才能生效。

磁盘调度策略(/sys/block/devname/queue/scheduler)

# 查看调度策略命令
cat /sys/block/devname/queue/scheduler

# 修改调度策略,例如:echo deadline /sys/block/devname/queue/scheduler
echo <schedulername> > /sys/block/devname/queue/scheduler
  
# 调度策略请自行上网了解: noop anticipatory deadline [cfg]

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页