【Mysql调优】9、MySQL服务器操作系统的 “选择”、“参数调优”、“服务器硬件选择”

1、Centos7系统参数详解

注意:以下调优只针对服务器作为数据库服务器时进行的。

1)配置文件

文件存储在etc目录下,名为sysctl ,我们可以到etc目录下执行命令sysctl -p查看文件中的配置信息。
在这里插入图片描述

2)配置详解

##################################### 连接相关 #####################################
(1) 系统允许同时发起链接的TCP连接数
(许多主流操作系统中默认都是128,如果连接数超过这个值的连接会被直接拒绝连接,最大值65535)
net.core.somaxconn=65535

(2) 每个port接收数据包的速度比内核处理数据包的速度 快的时候,队列中允许接收的最大数据包数量
(同上超出设置值,被直接拒绝接收,该配置没有最大值限制,但是不建议设置太大,否则可能导致请求长时间收不到应答)
net.core.netdev_max_backlog=65536

(3) 系统允许的半连接(SYN)同步包的上限
(以银行柜台办业务举例子,例如一个网点上有5个业务窗口,但是 网点内 最多能容纳50人同时进行办业务或者等待办理业务。这里边
somaxconn就是正在办理业务的窗口数,tcp_max_syn_backlog就是最多容纳的人数,所以说tcp_max_syn_backlog >= somaxconn,
如果人来的比tcp_max_syn_backlog多,那么可能要在网点外等候;
如果等候人比窗口数量多,多出来的人只能在网点内或者网点外等待。)
net.ipv4.tcp_max_syn_backlog=65536

扩展1:什么是半连接?
> 未完成三次握手的叫做半连接,完成三次握手的叫做完全连接。

扩展2:什么是三次握手?
> 1、第一次握手:客户端向服务器发送syn包(syn=j),并进入SYN_SEND状态,等待服务器确认;
> 2、第二次握手:客户端收到服务器收到并确认客户端的SYN(ack=j+1)包后返回的SYN包(syn=k),即SYN+ACK包,此时服务器进入
	SYN_RECV状态(也就是客户端收到了服务器所发送的确认包,确认的就是客户端发送给服务器的syn包);
> 3、第三次握手:客户端收到了服务器的SYN+ACK包,向服务器也发送ACK(ack+1),此包发送完毕,客户端和服务器都进入ESTABLISHED
	状态,完成三次握手。
##################################### 网络相关 #####################################

(4) TCP在FIN_WAIT_2状态的时间
(tcp的4次挥手,正常的处理流程就是在FIN_WAIT_2状态下可收到FIN进入到TIME_WAIT的状态,tcp_fin_timeout参数对处于
TIME_WAIT状态的时间没有任何影响。单数如果这个参数设置的比较小,会缩短tcp从FIN_WAIT_2状态进入到TIME_WAIT的状态的时间;
状态进入的早,等待相同的时间,结束的就越早,客观上加速了TIME_WAIT状态套接字的清理速度;
该值的单位:秒,一般设置在10-30之间)
net.ipv4.tcp_fin_timeout=10

(5) TIME_WAIT套接字是否允许用户新的Tcp连接了
(0:关闭,1:开启。不了解网络协议的建议关闭,该项配置影响很多配置)
net.ipv4.tcp_tw_reuse=0

(6) 表示开启TCP链接中TIME_WAIT sockets的快速回收
(0:关闭,1:开启。不了解网络协议的建议关闭,该项配置影响很多配置)
net.ipv4.tcp_tw_recyle=0
##################################### 数据包缓存 #####################################
发送和接收数据的缓存值,通过这些参数可以帮助我们提高网络传输数据包的速度

(7) 发送数据包默认缓存值:256kb
net.core.wmem_default=262144

(8) 发送数据包默认缓存值:512kb
net.core.wmem_max=524288

(9) 接收数据包默认缓存值:256kb
net.core.rmem_default=262144

(10) 接收数据包默认缓存值:512kb
net.core.rmem_max=524288

##################################### 长连接心跳包机制 #####################################
扩展1:什么是短链接?
连接->传输数据->关闭连接
比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
因为连接后接收了数据就断开了,所以每次数据接受处理不会有联系。 这也是HTTP协议无状态的原因之一。
使用场景:
例如WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端
的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大
,但每个用户无需频繁操作情况下需用短连好。

扩展2:什么是长链接?
连接->传输数据->保持连接 -> 传输数据-> ...........->直到一方关闭连接,多是客户端关闭连接。
长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。
使用场景:
长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,
再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接
用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

扩展3:什么是心跳包机制?
心跳是用来检测一个系统是否存活或者网络链路是否通畅的一种方式,做法是定时向被检测系统发送心跳包,被检测系统收到心跳包进行回复,
收到回复说明对方存活。

(10) 心跳检查间隔时长(单位:秒,心跳包发送后的检查时间间隔)
net.ipv4.tcp_keepalive_time=1800

(11) 心跳包发送间隔时长(单位:秒)
net.ipv4.tcp_keepalive_intvl=10

(12) 放弃连接时,心跳包未被应答次数
net.ipv4.tcp_keepalive_probes=3
##################################### 系统共享内存 #####################################
(13) Linux进程可分配的单独共享内存的最大值
大于INNODB_POOL_SIZE 与 QUERY_CACHE 以及其他MySQL占用内存的总和,建议设置为总内存的60%
kernel.shmmax=2147483648

(14) 使用物理内存进行分区的积极性
该值越大,表示使用swap分区的积极性更高,越小表示使用物理内存的积极性越高,默认值为60,物理内存效率高
vm.swappiness=0

2、服务器操作系统的选择

基本上开发服务器就是Windows和Linux两个版本,在使用中尽量使用64位操作系统。

1)操作系统对比

WindowsLinux
开源不开源,内部细节未知,不可控完全开源,内部细节可知,可控
稳定性不稳定,常见蓝屏白屏等系统崩溃问题内核强悍,系统稳定
安全用户权限容易获取权限严格,不容易获取
硬件版本越高,硬件要求越高各版本硬件要求低
灵活性不同用户配置繁琐可以使用各种终端进行管理,shell脚本编写后可处处运行,利于服务器管理
购买和运维成本收费高大部分免费,发行版也比win便宜的多得多
易于变更系统不同内核可能不同,变更麻烦系统不同,多是根据原内核扩展,变更容易
社区活跃度微软官方答复,沟通成本高用户社区活跃,沟通成本低

2)Linux系统选择

通过上边的对比,可以发现Linux的还是比较合适当作服务器的。

系统名称系统介绍
redhat研发公司收益大,研发投入大,系统稳定,企业发行版收费
ubuntu云计算领域使用较多,具备图形化界面,国内外使用均多,免费
centosredhat旗下的Linux社区版本,完全开源,免费
suse Linux Enterpise ServerLinux官方的企业级版本,早期运营失败,现在基本上没人用了
debian非营利性组织开发,曾使用度超过centos,ubuntu等linux新版本系统基于该系统开发,国内使用较少,国际评测作为新版linux系统开发的标准,免费

3、MySQL服务器硬件选择

1)CPU如何选择?

在这里插入图片描述
在这里插入图片描述

2)内存如何选择?

在这里插入图片描述

3)硬盘如何选择?

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值