内核相关参数
1.socket连接请求最大值:
对于tcp协议来说,客户端和服务器之间需要进行三次握手来建立连接,当连接建立完成之后,他们之间可以通过发送数据来完成通信,每建立一个tcp连接就会消耗一定的系统资源,那么我们肯定希望这个值不能太小,somaxconn代表了每一个端口监听队列的长度,去目录查看somaxconn发现默认值只有128,对于一个mysql服务器来说,显然是不够的,这个时候我们可以修改默认参数,以适合当前的需求:
husky@ubuntu:/home$ cat /proc/sys/net/core/somaxconn
128
husky@ubuntu:/home$ sudo sysctl -w net.core.somaxconn=2048
[sudo] password for husky:
net.core.somaxconn = 2048
husky@ubuntu:/home$ cat /proc/sys/net/core/somaxconn
2048
在net目录下,还有类似的几个参数,比如
1.netdev_max_backlog(/proc/sys/net/core)表示在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目,在数据包入队列之前会检测此参数,如果大于了则会发生丢包的现象。
2.tcp_max_syn_backlog(/proc/sys/net/ipv4)表示对于还未获得对方确认的连接请求,可保存在队列中的最大数目。一般指的是SYN同步包允许客户端的最大数量,即半连接状态。
这两个参数也和上面一样,可以修改成适合当前服务器的值