前几天做服务器压力测试,本地10个线程不停的去向服务器建立连接,然后请求数据,然后连接再关闭,程序每运行几万次之后就会发现客户端程序没办法connect服务器,connect超时。

  一开始怀疑是自己服务器的处理有问题,导致socket数过多没办法创建新的连接,现将系统中用户可以打开的最大文件数调成10w,继续进行压力测试,发现问题依然存在。

  经过一些时间的检查之后,确定应该不是自己服务本身的问题,这时候想将iptables关闭试试,iptables里面是没有配置连接数限制的。

  在关闭iptables时之后,发现问题确实没有了,不过还是不知道是什么原因导致的。不过已经可以确定是和iptables相关的了。

  这时候看来一下iptables的日志(/var/log/message)中有很多:

  Sep 3 14:34:07 xxx kernel: nf_conntrack: table full, dropping packet.
  Sep 3 14:34:08 xxx kernel: nf_conntrack: table full, dropping packet.
  Sep 3 14:34:15 xxx kernel: nf_conntrack: table full, dropping packet.
  这种类似的日志,网上搜索到的解释是内核处理的连接数达到上限

  [root@dns1 /]# echo 65535000 > /proc/sys/net/netfilter/nf_conntrack_max 
  [root@dns1 /]# echo 10800 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
 
  修改上限之后,重启iptables,然后再次压力测试,发现可以正常工作了
  有资深的运维人士认为这种方法存在缺陷,会导致系统消耗增加,治标不治本,建议直接关掉iptables,链接:http://jaseywang.me/2012/08/16/%E8%A7%A3%E5%86%B3-nf_conntrack-table-full-dropping-packet-%E7%9A%84%E5%87%A0%E7%A7%8D%E6%80%9D%E8%B7%AF/

最新文章

  1. oracle常用语句总结
  2. Android——关于Activity跳转的返回(无返回值和有返回值)——有返回值
  3. 浅析JNI函数的注册过程
  4. 我爱我家:我为什么选择AppCan?
  5. 决策树之 CART
  6. Cookie 的运行机制以及常用规则
  7. Tomcat下server.xml中context介绍
  8. HDU 1078 FatMouse and Cheese 记忆化搜索DP
  9. Netty版本升级血泪史之线程篇
  10. NOPI导出Excel 自定义列名
  11. 在ASP.NET MVC中使用JQ插件datatable
  12. [UWP]实用的Shape指南
  13. Dubbo源码分析系列---扩展点加载
  14. .22-浅析webpack源码之事件流compilation总览
  15. PAT1058:A+B in Hogwarts
  16. highcharts折线图的简单使用
  17. Python 入门基础13 --模块与包
  18. struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor
  19. Ico初步理解
  20. 站内SEO规范

热门文章

  1. gawk
  2. K2工作流的使用
  3. synchronized和static synchronized的比较
  4. BZOJ4000 [TJOI2015]棋盘
  5. 源代码解读Cas实现单点登出(single sign out)功能实现原理
  6. sql2008 附加数据库出错解决方法
  7. event.srcElement在火狐(FireFox)下的兼容问题。搜索框获得焦点时默认文字变化
  8. NimBus一个好的开发框架
  9. Ubuntu 查看/修改文件编码
  10. Right-BICEP 测试四则运算二程序