注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秋风扫落叶

 
 
 

日志

 
 
 
 

当使用ab进行压力测试遇到apr_socket_recv: Connection reset by peer  

2012-06-28 05:54:27|  分类: 原创linux经验 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
我使用的是nginx作为前端服务器,当使用ab进行压力测试的时候遇到
apr_socket_recv: Connection reset by peer
错误,仔细网络上搜索了下,
发现在/var/log/kern.log
中有错误

Jun 27 21:26:46 localhost kernel: TCP: TCP: Possible SYN flooding on port 80. Sending cookies.  Check SNMP counters.
于是
编辑

cd /proc/sys/net/ipv4
echo "0" > tcp_syncookies

解决错误

但是实际上在使用过程中又发现了新的错误提示

TCP: drop open request from 202.153.162.100/62751

分析如下:

  问题可能出在TCP/IP连结上,根据日志资讯查找资料介绍如下:

  IP_conntrack表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip-sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满。

解决方案:

(1) 加大 ip_conntrack_max 值:

  查出原本的 ip_conntrack_max 值,指令: cat /proc/sys/net/ipv4/ip_conntrack_max
  写入理想的数值 (每一个 ip_conntrack buffer 会占用 292 Bytes)
  指令: echo "数值" > /proc/sys/net/ipv4/ip_conntrack_max
  例如: echo "163840" >/proc/sys/net/ipv4/ip_conntrack_max

  这个效果是暂时的, 如果要每次开机都使用新的数值, 需将上述指令写入 /etc/rc.d/rc.local
  或是在 /etc/sysctl.conf 加入: net.ipv4.ip_conntrack_max = 数值
  或使用指令: sysctl -w net.ipv4.ip_conntrack_max=数值

(2): 降低 ip_conntrack timeout 时间

  重设:ip_conntrack_tcp_timeout_established (原值: 432000, 单位: 秒)
  指令:echo "数值" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
  例如:echo "180" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

  开机自动设置的作法同方法(1).  

附其他相关命令:

  查看目前 ip_conntrack buffer 使用状况
  指令: grep conn /proc/slabinfo

  结果实例: ip_conntrack 3024 4090 384 409 409 1 (各值说明如下)
  ip_conntrack         the cache name
  3024         the number of currently active objects
  4090         the total number of available objects
  384         the size of each object in bytes
  409         the number of pages with at least one active object
  409         the total number of allocated pages
  1         the number of pages per slab are given

  man slabinfo 可查询详细说明.

  查出目前 ip_conntrack 记录最多的前五名 IP
  指令: cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 5

  结果实例:
  2816         192.168.1.100
  14         163.30.85.129
  6         220.132.142.175
  6         127.0.0.1
  4         218.187.5.223

  由此可知, 192.168.1.100 占用了绝大多数的 buffer, 推断这个 IP 的 User 可能使用了 P2P 软件.
  评论这张
 
阅读(11412)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017