mysql数据库生产环境性能优化总结,纯干货!!!(二)
从网络和操作方面优化mysql
1.关闭数据库的DNS解析功能
在上产环境中,mysql的DNS解析功能是非常消耗资源的,这是我们运维不愿意看到的,为此需要关闭mysql数据库的DNS解析功能。只需要在配置文件中的mysqld下面添加skip-name-resolve就可以关闭DNS解析了。但是,关闭了解析我们在用户创建等方面就不能使用,用户名@主机名;而是用,用户名@IP地址;的方式。
2.避免跨数据中的实时操作。
在一些大公司或者全球化的公司中,经常会部署跨网络的数据库。比如说在上海部署master服务器,在天津部署slaves服务器。这样就会导致由于延时等关系,数据无法实时同步进而造成数据库存在差异。所以一般的中小型公司建议不要跨网络部署数据库。
3.检查系统的随机端口号
当mysql作为客户端,来连接web的时候,系统会生成随机端口用于处理相应的连接。所以当mysql需要连接web的时候为了防止端口不够用或冲突需要增加随机端口号,用于连接。
首先需要查看当前系统的随机端口号:** cat /proc/sys/net/ipv4/ip_local_port_range**。
这里已经是修改过的端口号。修改方法有两种:
1.临时修改,echo "2000 65535" > /proc/sys/net/ipv4/ip_local_port_range
2.永久修改
vim /etc/sysctl.conf
net.ipv4.ip.local.port.range=2000 65535
sysctl -p
4.扩大TCP缓冲队列,增大连接数
在网络方面,可以通过增加TCP缓冲队列,这里用到了TCP的3次握手的知识。通过改动net.ipv4.tcp_max_syn_backlog使之增大能够接受很多其它的网络连接。进而在网络上层面增加mysql数据库的连接数。
5.修改TCP连接的等待时间
TCP四次挥手存在超时时间,只有超过了时间才会断开连接。在mysql数据库中没有超时的进程连接会占用一部分资源,为了节省资源,我们可以减小超时时间,改为10秒。
修改方法与之前类似,这不在描述。
6.修改磁盘的调度策略
磁盘的调度策略影响着数据库数据的写入的效率。
当前用中括号括起来的策略就是系统正在使用的磁盘调度策略。一般企业里会将deadline和noop设置为默认的策略,不建议使用cfq。
修改调度策略的方法为:echo deadline > /sys/block/sda/queue/scheduler。