zoukankan      html  css  js  c++  java
  • 用httpClient的PostMethot频繁发送数据,抛出Too many open files

    在工作过程中,用httpclient去压测一个web api,发现压一小段时间就出现了Too many open files。
    实际上,HttpClient建立Socket时 ,post.releaseConnection()并没有真正关闭连接,而是将该连接提交给 MultiThreadedHttpConnectionManager,等待复用。
    而http的连接是等待timeout才会自动断开的,所以,当用完系统的句柄后,自然会报Too many open files。
    解决办法:
    设置post方法的header,增加

    post.addRequestHeader( "Connection", "close");
    client.getParams().setBooleanParameter( "http.protocol.expect-continue" , false );
    

    或者增加linux句柄数

    用ulimit -a (Linux服务器)查看open files项为多少,若为默认的1024, 则编辑/etc/security/limits.conf,
    在limits.conf加上
    *            soft        nproc           10240
    *            hard        nproc           10240
    *            soft        nofile          10240
    *            hard        nofile          10240
    保存退出;
    
    用ulimit -n 10240修改root的open files为10240  
    

      

     

  • 相关阅读:
    《ASP.NET MVC 5 高级编程(第5版)》
    《JavaScript基础教程》
    Linux命令行
    jQuery UI
    第一章-算法概述
    树的基本概念及算法
    3个列表标签 uloldl
    body 部分的标签
    head 里主要的标签:meta和link 标签
    html+server+页面访问
  • 原文地址:https://www.cnblogs.com/JAYIT/p/7562169.html
Copyright © 2011-2022 走看看