设为首页 加入收藏

TOP

MySQL 优化之 Linux系统层面调优(二)
2015-11-21 01:56:22 来源: 作者: 【 】 浏览:2
Tags:MySQL 优化 Linux 系统 层面
载时启用noatime,nodiratime,可以在 /etc/fstab 中进行修改。
?
具体参见:http://www.2cto.com/database/201510/445114.html
?
3.2 磁盘的调优
?
1)IO调度算法:mysql服务器一定不要使用默认的CFQ调度算法。如果是SSD,那么应该使用NOOP调度算法,如果是磁盘,就应该使用Deadline调度算法。
?
修改方法:
?
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
[root@localhost ~]# echo noop > ?/sys/block/sda/queue/scheduler
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq
?
这是临时修改,重启失效。永久修改,需要修改文件 /boot/grub/menu.lst 中的elevator=deadline 或者noop:
?
# vi /boot/grub/menu.lst
kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ elevator=deadline rhgb quiet
?
2)加大内存,可以使mysql缓存更大的内容,减少IO操作。
?
3)磁盘RAID10 或者 换SSD;
?
4)适当的采用Nosql(redis/mongdb/ssdb)等减轻mysql的负担;也可以架构master-slave减轻master的IO压力。
?
5)使用memcache或者reids在mysql前面加一层缓存,减轻磁盘IO;
?
具体参见:http://www.2cto.com/database/201510/445288.html
?
4. 网络调优
?
网络调优分为硬件层面和TCP/IP软件层面参数的调优。
?
4.1 网络硬件调优:
?
1)换延迟更小,throught更大的网卡;
?
2)双网卡绑定,进行负载均衡和高可用;
?
4.2 TCP/IP参数调优:
?
1)socket buffer 参数调节:
?
1>/proc/sys/net/ipv4/tcp_mem TCP全局缓存,单位为内存页(4k);
?
对应的内核参数:net.ipv4.tcp_mem ,可以在 /etc/sysctl.conf 中进行修改;
?
2>/proc/sys/net/ipv4/tcp_rmem 接收buffer,单位为字节
?
对应的内核参数:net.ipv4.tcp_rmem, 可以在 /etc/sysctl.conf 中进行修改;
?
3>/proc/sys/net/ipv4/tcp_wmem 接收buffer,单位为字节
?
对应的内核参数:net.ipv4.tcp_wmem, 可以在 /etc/sysctl.conf 中进行修改;
?
4>/proc/sys/net/core/rmem_default 接收buffer默认大小,单位字节
?
对应内核参数:net.core.rmem_default, 可以在 /etc/sysctl.conf 中进行修改;
?
5>/proc/sys/net/core/rmem_max 接收buffer最大大小,单位字节
?
对应内核参数:net.core.rmem_max, 可以在 /etc/sysctl.conf 中进行修改;
?
6>/proc/sys/net/core/wmem_default 发送buffer默认大小,单位字节
?
对应内核参数:net.core.rmem_default, 可以在 /etc/sysctl.conf 中进行修改;
?
7>/proc/sys/net/core/wmem_max 发送buffer最大大小,单位字节
?
对应内核参数:net.core.rmem_max, 可以在 /etc/sysctl.conf 中进行修改;
?
2)offload配置:
?
将tso,checksum等功能交给网卡硬件来完成:
?
ethtool -K eth0 rx on|off
?
ethtool -K eth0 tx on|off
?
ethtool -K eth0 tso on|off
?
3)调大网卡的接收队列和发送队列:
?
1>接收队列:/proc/sys/net/core/netdev_max_backlog 对应内核参数:net.core.netdev_max_backlog
?
2>发送队列:
?
查看大小:ifconfig eth0 | grep txqueue
?
修改大小:ifconfig eth0 txqueuelen 20000
?
4)调大 SYN 半连接 tcp_max_syn_backlog 数量:
?
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
?
也可以在/etc/sysctl.conf文件中配置。
?
5)net.core.somaxconn :
?
该参数为完成3次握手,已经建立了连接,等待被accept然后进行处理的数量。默认为128,我们可以调整到 65535,甚至更大。也就是?有容纳更多的等待处理的连接。
?
MTU 大小 调优:
?
如果TCP连接的两端的网卡和网络接口层都支持大的 MTU,那么我们就可以配置网络,使用更大的mtu大小,也不会导致被 切割重新组装发送。
?
配置命令:ifconfig eth0 mtu 9000 up
?
6)TCP连接的 CLOSE_WAIT 和 TIME_WAIT
?
如果TCP连接的 CLOSE_WAIT 和 TIME_WAIT 状态过多时,分别需要调优TCP的keepalive相关的参数和TCP的回收相关的参数。
?
TCP/IP的调优极其复杂,具体参见博文:http://www.cnblogs.com/digdeep/p/4869010.html
?
5. Linux 系统中的各种后台daemon的调优
?
Linux系统中存在各种各样的后台daemon,也就是各种service,对于mysql服务器来说很多没有必要的service就可以痛痛关闭掉。
?
mysql的最小化的后台服务,可以只有:crond,sshd,rsyslog,network,sysstat
?
当然如果有需要可以在增加其他服务。
?
使用 chckconfig --level 35 servicename off; 可以进行关闭。35表示在runlevel的level =3 和 level =5级别进行关闭。
?
6. 总结:
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mysql学习记录(十四)--模式 下一篇MySQL视图学习整理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: