在centOS中mysql系统参数优化

内核相关

这些参数中可以在/etc/sysctl.conf中修改
1、网络相关(LINUX中)
net.core.somaxconn = 65535
这个参数代表每个端口最大监听长度,一般修改成2048或者更大的值
以下两个参数类似:
net.core.net_max_backlog = 65535 指定所能接受SYN同步包的最大客户端数量,即半连接上限,默认值是128,即SYN_REVD状态的连接数。
net.ipv4_max_syn_backlog = 65535 决定了未获得连接的请求可保存在队列中的最大数目,超过大小的连接会抛弃
net.ipv4.tcp_fin_timeout = 10 控制tcp连接处理等待状态的时间
以下两个类似
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tw.recycle = 1
以上三个主要作用加快tcp连接回收
net.core.vmem_default = 87380
net.core.wmem_max = 16777216
net.core.rmem_default = 87380
net.core…remem_max = 16777216
以上四个参数决定tcp连接接收和发送缓存区大小的默认值和最大值,这几个值调整的应该大一些
net.ipv4.tcp_keepalive_time = 120 TCP发送keepalive的时间间隔,单位为秒,确认TCP连接是否有效
net.ipv4.tcp_keepalive_intvl = 30 用于控制探测消息未获得响应时,重发消息的时间间隔,单位为秒
net.ipv4.tcp_keepalive_probes = 3 认定TCP连接失效之前,最多发送多少keepalive消息
上面三个参数用于减少失效连接占用TCP系统资源的数量,加快资源回收的效率,默认值都有些大
以上只是列举了比较重要的部分,了解更多可以参看系统手册等
2、内核相关
kernel.shmmax = 4294967295
Linux内核中重要的参数之一,用于 定义单个共享内存段的最大值。
注意:1、这个参与应该设置的足够大,以便能在一个共享内存段下容纳下整个段Innodb缓冲池段大小。如果过低,可能导致需要设置多个共享内存段,导致系统性能下降,主要原因就是系统启动的时候,多个小的共享内存段,导致当时轻微的系统性能下降。 2、这个值大小对于64为Linux系统,可取的最大值为物力内存中-1byte,建议值为大于物理内存值的一半,一般取值大于Innodb缓着冲池的大小即可,可以取物理内存-1byte。
vm.swappiness = 0
这个参数当内存不足时会对性能产生比较明显的影响。
在MySQL服务器上是否使用交换分区有一些争议:
在MySQL服务所在的Linux系统上完全禁用交换分区。
风险:降低操作系统的性能,容易造成内存溢出,崩溃,或都被操作系统Kill掉。
在MySQL服务器上保留交换区上很有必要的,但是要控制何时使用交换分区。
Vm.swappiness = 0就是对何时使用交换分区做控制。设为0 就是告诉Linux内核除非虚拟内存完全占满了,否则不实用交换区。

增加资源限制

主要修改文件上 /etc/security/limit.conf,这个文件上Linux PAM(即插入式认证模块)的配置文件。
打开文件数限制

  • soft nofile 65535
  • hard nofile 65535
    上述两个加入limit.conf文件末尾就可以了。
  • 表示对所有用户有效
  • soft表示当前系统生效对设置
  • hard表示系统中所能设定对最大值
  • 表示限制的资源上打开文件的最大数目
  • 65535就是限制的数量
    注意:文件的修改需要重启操作系统

磁盘调度策略

主要修改文件为:/sys/block/devname/queue/scheduler
cat /sys/block/devname/queue/scheduler
noop anticipatory deadline [cfq]

NOOP(电梯上调度策略)

NOOP实现了一个FIFO队列,它像电梯的工作方法一样对I/O请求组织,当有一个新对请求到来时,它将请求合并到最近对请求之后,以此来保证请求同一介质。NOOP倾向于饿死读而利于写,因此NOOP对于闪存设备、RAM及嵌入式系统是最好对选择。

deadline(💍时间调度策略)

Deadline确保了在一个截止时间内服务请求,这个截止时间是可调整对,而默认读期限短于写期限。这样防止了写操作因为不能被读取而饿死对现象,Deadline对数据库类应用是最好对选择。

anticipatory(预料I/O策略)

本质上与Deadline一样,在最后以此读操作后,要等待6ms,才能急需进行对其他I/O请求进行调度。它会在每个6ms中插入新对I/O操作,而会将一些小写入流合并成一个大写入流,用写入延时换取最大对写入吞吐量。AS适合于写入较多对环境,比如文件服务器,AS对数据库环境表现很差。

我们可以用以下方法改变磁盘调度策略
echo > /sys/block/devname/queue/scheduler
比如:echo deadline > /sys/block/devname/queue/scheduler

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值