标签:
如果设定过小,在高并发的情况下,会在日志中有 work_connection is not enough while accepting new connection on
同时也要修改操作系统的进程最大可处理的文件句柄值
echo 131070 > /proc/sys/fs/file-max; sysctl –p
否则有可能会出现worker_connection are more than open file resource limit
keepalive_timeout 60 50;
客户端在60秒内无活动的话,服务器关闭连接
????向客户端发送keepaliave_timeout时间是50秒
设定如果客户端10s内没响应,nginx服务器则关闭连接
设定nginx服务器可缓冲客户端http头部的大小,一般设定为和内存分页(getconf PAGESIZE)的大小一样。默认为1k,如果设置过小,客户端的cookie的值设定的也比较大的话,可能会出现400的错误
timewait的数量,默认是180000,因此如果想把timewait降下了就要把tcp_max_tw_buckets值减小
允许系统打开的端口范围,这样可以在高并发的情况,依然有随机端口可用
启用timewait快速回收。
开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。
web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。
每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。
记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。
时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种"异常"的数据包。这里需要将其关掉。
为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。
在内核放弃建立连接之前发送SYN包的数量
如果套接字由本端要求关闭,这个参数 决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2的危险性比FIN-WAIT-1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。
当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。
其实也可说是降低IO负载
在高并发的情况下,且不考虑访问的日志access.log可以直接关闭;
error_log logs/error.log crit;????????????????提升错误日志级别
可以说是压缩数据,减少网络压力,但会消耗一定的CPU,不过CPU一般不会出现瓶颈
也可这样添加在首部add_head Vary Accept-Encoding gzip;
标签:
原文地址:http://www.cnblogs.com/wxl-dede/p/5137772.html