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

来源:互联网 发布:剑桥美国经济史知乎 编辑:程序博客网 时间:2024/05/20 13:04

操作系统因素

CentOS

参数优化

Linux性能优化大师

内核相关参数

/etc/sysctl.confnet.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=1net.ipv4.tcp_tw_recycle=1#tcp接受和发送缓冲区大小的默认值和最大值net.core.wmem_default=87380net.core.wmem_max=16777216net.core.rmem_default=87380net.core.rmem_max=16777216net.ipv4.tcp_keepalive_time=120net.ipv4.tcp_keepalive_intvl=30net.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/schedulerecho 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 | journalnoatiome,nodiratime/dev/sda1/ext4 noatime,nodiratime,data=writeback 11
0 0
原创粉丝点击