优化nginx服务器内核TCP参数

| 收藏本文 下载本文 作者:jiani

下面是小编给大家带来的优化nginx服务器内核TCP参数(共含3篇),以供大家参考,我们一起来看看吧!同时,但愿您也能像本文投稿人“jiani”一样,积极向本站投稿分享好文章。

优化nginx服务器内核TCP参数

篇1:优化nginx服务器内核TCP参数

vi /etc/sysctl.conf

在最后添加如下内容:

net.ipv4.tcp_max_tw_buckets = 6000

net.ipv4.ip_local_port_range = 2048 65000

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_syncookies = 1

net.core.somaxconn = 262144

net.core.netdev_max_backlog = 262144

net.ipv4.tcp_max_orphans = 252144

net.ipv4.tcp_max_syn_backlog = 252144

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_fin_timeout = 1

net.ipv4.tcp_keepalive_time = 30

保存并输入sysctl -p使设置生效

解释:

net.ipv4.tcp_max_tw_buckets

设置timewait的值

net.ipv4.ip_local_poet_range

设置允许系统打开的端口范围

net.ipv4.tcp_tw_recycle

设置是否启用timewait快速回收

net.ipv4.tcp_tw_reuse

设置是否开启重新使用,即允许将TIME-WAIT sockets 重新用于新的TCP链接

net.ipv4.tcp_syncookies

是否开启SYN cookies,如果启用该功能,当出现SYN等待队列溢出时,使用cookies来处理

net.core.somaxconn

web应用中listen函数的backlog默认会将内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认是511,所以必须调整

net.core.netdev_max_backlog

该参数用于设置被传送到队列数据包的最大数目

net.ipv4.tcp_max_orphans

该参数用于设置linux能够处理不属于任何进程的套接字数量的大小

net.ipv4.tcp_max_syn_backlog

该参数用于记录尚未被客户端确认信息的链接请求的最大值

net.ipv4.tcp_timestamps

该参数用于设置使用时间戳作为序列号,在高并发环境下,开启该功能会出现异常,因此要关闭

net.ipv4.tcp_synack_retries

该参数用于设置SYN重试次数

net.ipv4.tcp_syn_retries

该参数用于设置在内核放起建立链接之前发送SYN包的数量

net.ipv4.tcp_fin_timeout

表示如果套接字有本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间

net.ipv4.tcp_keepalive_time

当启用keepalive的时候,该参数用于设置TCP发送keepalive消息的频度

篇2:Nginx做web服务器linux内核参数优化WEB服务器

Nginx做web服务器linux内核参数优化

Nginx提供web服务时Linux内核参数调整是必不可少的,其中在优化方面就需要我们格外的注意,在下面就是对Linux内核参数优化的详细介绍,希望大家有所收获。

关于Linux内核参数的优化:

net.ipv4.tcp_max_tw_buckets = 6000

timewait的数量,默认是180000。

net.ipv4.ip_local_port_range = 1024 65000

允许系统打开的端口范围。

net.ipv4.tcp_tw_recycle = 1

启用timewait快速回收。

net.ipv4.tcp_tw_reuse = 1

开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。

net.ipv4.tcp_syncookies = 1

开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理。

net.core.somaxconn = 262144

web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而Nginx内核参数定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。

net.core.netdev_max_backlog = 262144

每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.ipv4.tcp_max_orphans = 262144

系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上,

如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。

net.ipv4.tcp_max_syn_backlog = 262144

记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。

net.ipv4.tcp_timestamps = 0

时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

net.ipv4.tcp_synack_retries = 1

为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。

net.ipv4.tcp_syn_retries = 1

在内核放弃建立连接之前发送SYN包的数量。

net.ipv4.tcp_fin_timeout = 1

如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2的危险性比FIN-WAIT-1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。

net.ipv4.tcp_keepalive_time = 30

当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。

篇3:Linux 服务器网络有关的内核参数

几乎所有的内核模块,包括内核核心模块和驱动程序,都在/proc/sys 文件系统下提供了某些配置文件以提供用户调整模块的属性和行为,通常一个配置文件对应一个内核参数,文件名就是参数的名字,文件的内容是参数的值。 我们可以通过命令sysctl -a 查看所有这些内核参数。下面说明与网络编程关系较为紧密的部分内核参数。

一、 / proc/sys/fs 目录下的部分文件

/proc/sys/fs 目录下的内核参数都与文件系统有关。对于服务器程序来说,其中最重要的是如下的两个参数:

/proc/sys/fs/fs/file-max,系统级文件描述符数限制。 直接修改这个参数和《linux 最大文件描述符》中修改方法有相同的效果(不过这些都是临时修改)。一般修改/proc/sys/fs/file-max 后,应用程序需要把/proc/sys/fs/inode-max 设置为/proc/sys/fs/fs/file-max 值的3-4倍,否则可能导致i 节点数不够用。

查看一下系统对fs.file-max的说明:

/proc/sys/fs/file-max

This file defines a system-wide limit on the number of open files for all processes. (See also setrlimit(2), which can be used by a process to set the per-process limit,

RLIMIT_NOFILE, on the number of files it may open.) If you get lots of error messages about running out of file handles, try increasing this value:

echo 100000 > /proc/sys/fs/file-max

The kernel constant NR_OPEN imposes an upper limit on the value that may be placed in file-max.

If you increase /proc/sys/fs/file-max, be sure to increase /proc/sys/fs/inode-max to 3-4 times the new value of /proc/sys/fs/file-max, or you will run out of inodes.

/proc/sys/fs/epoll/max_user_watches,一个用户能够往epoll 内核事件表注册的事件总量,

它是指该用户打开的所有epoll实例总共能监听的事件数目,而不是单个epoll实例能监听的事件数目。往epoll内核事件表中注册一个事件,在32位系统上大概消耗90字节的内核空间,在64位系统上则消耗160字节的内核空间。所以,这个内核参数限制了epoll使用的内核内存总量。

二、 /proc/sys/net 目录下的部分文件

内核中网络模块的相关参数都位于/proc/sys/net 目录下,其中和TCP/IP 协议相关的参数主要位于如下三个目录中:core 、ipv4 、ipv6 .

/proc/sys/net/core/somaxconn,指定listen监听队列里,能够建立完整连接从而进入ESTABLISHED 状态的socket 的最大数目。

/proc/sys/net/ipv4/tcp_max_syn_backlog,指定listen监听队列里,能够转移至ESTABLISHED或者SYN_RCVD状态的socket的最大数目。

/proc/sys/net/ipv4/tcp_wmem,它包含了3个值,分别指定一个socket的TCP写缓存区的最小值、默认值和最大值。

/proc/sys/net/ipv4/tcp_rmem,它包含了3个值,分别指定一个socket的TCP读缓存区的最小值、默认值和最大值。

/proc/sys/net/ipv4/tcp_syncookies,指定是否打开TCP同步标签。同步标签通过启动cookie 来防止一个监听socket因不停的重复接收来自同一个地址的连接请求(同步报文段),而导致listen监听队列溢出(所谓的SYN 风暴)。

除了通过直接修改文件的方式来修改这些系统参数外,我们也可以使用sysctl 命令来修改它们。这两种修改方式都是临时的。永久的修改方式是在/etc/sysctl.conf 文件中加入相应网络参数及其数值,并执行sysctl -p使之生效,就像修改系统最大允许打开的文件描述符数那样。

固体火箭发动机参数调整的优化方法

第四代战斗机推进系统循环参数优化研究

卫星总体参数多学科优化与建模探讨

Go语言服务器开发之简易TCP客户端与服务端实现方法

水平螺旋钻进钻杆动力与结构参数优化设计

激光诱导击穿光谱实验装置的参数优化研究

计算机术语 服务器

服务器维护方案

服务器租赁合同

服务器租用合同

优化nginx服务器内核TCP参数(精选3篇)

欢迎下载DOC格式的优化nginx服务器内核TCP参数,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档