扛得住双11的Mysql---操作系统

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/alive2012/article/details/51720864

操作系统因素

CentOS

参数优化

Linux性能优化大师

内核相关参数

/etc/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 处理tcp连接的等待时间
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


net.ipv4.tcp_keepalive_time=120
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_keepalive_probes=3

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

kernel.shmmax=4294967295


#内存不足时会对性能产生比较明显的影响
#Linux系统内存交换区
#free -m 中的swap就是交换分区
#mysql使用交换分区的争议:
#Mysql完全禁用交换分区---1.降低操作系统的性能;2.容易造成内存溢出,崩溃,或都被操作系统kill掉
#除非虚拟内存满,否则不要使用交换区

vm.swappiness=0

增加资源限制

/etc/security/limit.conf

#Linux PAM,插入式认证模块的配置文件
#打开文件数的限制

*soft nofile 65535
*hard nofile 65535

# * 表示对所有用户有效
#soft 当前系统生效的设置
#hard 系统中所能设定的最大值
#nofile 所限制的资源是打开文件的最大数目
#保证可以打开足够多的文件句柄
#重启操作系统生效

磁盘性能优化

/sys/block/devname/queue/scheduler

#磁盘调度策略

echo <schedulername> /sys/block/devname/queue/scheduler

echo deadline > /sys/block/sda/queue/scheduler

noop(电梯式调度策略),实现了一个FIFO队列,它像电梯的工作方法一样对IO请求进行组织,当有一个新的请求到来时,它将请求合并到最近请求之后,以此来保证请求同一介质.NOOP倾向于饿死读而有利于写,因此NOOP对于闪存,RAM,嵌入式系统是最好的选择

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

anticipatory(预料IO调度策略),本质于Deadline一样,但在最后一次读操作后,要等待6ms,才能继续进行对其它IO请求进行调度,它会在每6ms中插入一个新的IO操作,而会将一些小写入流合并成一个大写入流,用写入延迟换取最大的写入吞吐量.AS适合于写入较多的环境,比如文件服务器,AS对数据库环境表现较差

文件系统对性能的影响

window:fat,ntfs(*)

linux:ext3,ext4,xfs(*)

ext3/4系统挂载参数

/etc/fstab

#日志策略
data=writeback | ordered | journal

noatiome,nodiratime

/dev/sda1/ext4 noatime,nodiratime,data=writeback 11
展开阅读全文

没有更多推荐了,返回首页