操作系统参数调优
对于不同的操作系统,通过在操作系统层面调整一些参数配置,可以有效提升服务器性能。
调优方法
通过设置如表1所示的系统参数进行调优。
参数类型 |
参数名称 |
参数含义 |
建议 |
---|---|---|---|
网络参数 |
net.core.somaxconn |
Socket侦听队列的最大长度,频繁建立连接需要调大该值。 |
默认为128,建议配置为2048。 |
net.core.netdev_max_backlog |
协议栈处理的缓冲队列长度,设置的过小有可能造成丢包。 |
建议配置为10000。 |
|
net.core.rmem_default |
接收缓冲区队列的默认长度。 |
建议配置为16777216。 |
|
net.core.wmem_default |
发送缓冲区队列的默认长度。 |
建议配置为16777216。 |
|
net.core.rmem_max |
接收缓冲区队列的最大长度。 |
建议配置为16777216。 |
|
net.core.wmem_max |
发送缓冲区队列的最大长度。 |
建议配置为16777216。 |
|
net.ipv4.ip_local_port_range |
本地TCP/UDP的端口范围,本地使用该范围内的端口与远端发起连接。 |
建议的端口范围为3500~65535。 |
|
net.ipv4.tcp_rmem |
Socket接收缓冲区的大小,分别为最小值、默认值、最大值。 |
建议最小值、默认值、最大值分别配置为4096、87380、16777216。 |
|
net.ipv4.tcp_wmem |
Socket发送缓冲区的大小,分别为最小值、默认值、最大值。 |
建议最小值、默认值、最大值分别配置为4096、65536、16777216。 |
|
net.ipv4.tcp_max_syn_backlog |
处于SYN_RECVD状态的连接数。 |
建议配置为16384。 |
|
net.ipv4.tcp_fin_timeout |
Socket主动断开之后FIN-WAIT-2状态的持续时间。 |
建议配置为15。 |
|
net.ipv4.tcp_tw_reuse |
允许重用处于TIMEWAIT状态的Socket。 |
建议配置为1。 |
|
net.ipv4.tcp_slow_start_after_idle |
禁止TCP连接从Idle状态的慢启动,降低某些情况的网络延迟。 |
建议配置为0。 |
|
虚拟内存配置 |
vm.swappiness |
优先使用物理内存。 |
建议配置为0。 |
vm.max_map_count |
进程可以拥有的虚拟内存区域数量。 |
建议配置为655360。 |
|
AIO配置 |
fs.aio-max-nr |
异步IO的请求数目。 |
建议配置为1048576。 |
查看及修改操作系统相关参数

请修改操作系统内核参数,因为这些参数对系统性能和稳定性具有重要影响。建议您在经验丰富的系统管理员的指导下进行此操作。
表1所示的系统参数均可以通过如下两种方式查看和修改。
- 以下命令只会临时修改参数值,重启操作系统后参数将会恢复到默认值。
如果需要修改net.core.somaxconn的值,可以通过如下命令设置:
sysctl -w net.core.somaxconn=NEW_VALUE
- 如果想要永久修改net.core.somaxconn的值,需要修改“/etc/sysctl.conf”配置文件并使配置文件生效,操作步骤如下:
- 打开“/etc/sysctl.conf”文件。
vi /etc/sysctl.conf
- 按“i”进入编辑模式,在“/etc/sysctl.conf”配置文件中添加以下语句:
net.core.somaxconn=NEW_VALUE
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 使用以下命令使修改的参数值生效。
sysctl -p
- 打开“/etc/sysctl.conf”文件。