用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
用httpClient的PostMethot频繁发送数据,抛出Too many open files的更多相关文章
- mixare的measureText方法在频繁调用时抛出“referencetable overflow max 1024”的解决方式
这几天在搞基于位置的AR应用,採用了github上两款开源项目: mixare android-argument-reality-framework 这两个项目实现机制大致同样.我选取的是androi ...
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Android - 向服务器发送数据(POST) - HTTPClient.
该篇文章主要说明使用Apache提供的HTTPClient,通过post方式,向服务器发送数据.由于有些东西在 Android - 向服务器发送数据(GET)中提到过,就不再重复. 一,Android ...
- (三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
文章来源:http://www.cnblogs.com/smyhvae/p/4006009.html 一.GET和POST的对比: 在漫长的时间当中,其他的方法逐渐的退出了历史舞台,最常用的只剩下GE ...
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
讲这个之前,我们先来说说get和post两种请求的区别吧!!! 1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.jsp?name=te ...
- HttpClient将手机上的数据发送到服务器
到官网下载jar包,下载GA发布版本即可 在项目中将httpclient-4.5.5.jar.httpcore-4.4.9.jar.httpmime-4.5.5.jar.commons-logging ...
- HttpClient之用CloseableHttpClient发送post请求
使用HttpClient发送请求的一般步骤(1) 创建HttpClient对象.(2)创建请求方法的实例,并指定请求URL.如果需要发送GET请求,创建HttpGet对象:如果需要发送POST请求,创 ...
- 通过HttpClient的方式去Curd数据⭐⭐⭐⭐
在网上看博客的时候,看到这系列的文章,别特帮,强烈推荐 里面有一章节是通过HttpClient的方法去更新数据的,新颖,记录下. ⭐⭐⭐1:创建一个Model数据模型 这个类创建一个数据对象,Http ...
- Android客户端向服务器端发送数据的流程(1)
原理: android客户端通过使用org.apache.http.impl.client.DefaultHttpClient类来发送数据; 方法介绍: HttpClient是android中提供的一 ...
随机推荐
- Ubuntu安装deb软件包错误(依赖关系问题)解决
执行命令 sudo dpkg -i XXX.deb 返回依赖关系错误提示 执行 sudo apt-get -f install 这条命令将自动安装需要的依赖包. 再次执行命令 sudo dpkg -i ...
- unity, StartCoroutine and StopCoroutine
startCoroutine("func",1.0f)可以用stopCoroutine("func")来停. startCoroutine(func(1.0f) ...
- Node.js + Express + Ubuntu
1 . 怎么在ubuntu中,background的方式 启动express. 网站www /home/host/express/web/bin# nohup node www 2. Node.js的 ...
- 04、Quick Start for Windows
创建一个新工程 1.在 VS 上,选择 File > New > Project.. 2.在新工程窗口,选择 Visual C# > Windows Store > Blan ...
- django 使用post方法出现403错误的解决办法
当采用客户端象django的服务器提交post请求时.会得到403,权限异常.因为django针对提交的请教,有校验.所以会如此. 解决办法: 导入模块:from django.views.decor ...
- c#省市联动(sqlHelper的应用)
sqlHelper: using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...
- WP8持续集成之通过命令行跑单元测试
理论基础 对于如何在WP8上创建单元测试工程,在这里首先提供一个MSDN的文档作为参考. http://msdn.microsoft.com/en-us/library/windowsphon ...
- 一款基于jQuery和HTML5全屏焦点图
今天爱编程小编给大家分享一款非常绚丽的jQuery焦点图插件,同时这款焦点图也利用了HTML5和CSS3的相关特性,使图片切换效果更加丰富多彩.另外,这款jQuery焦点图插件的特点是全屏的效果,因此 ...
- VS Code直接调试Angular代码
安装VS Code扩展 安装Debugger for Chrome 安装Debugger for Firefox 配置Launch.json文件 Launch.json文件的创建和生成我们可以利用VS ...
- VMware ESXi 启动时提示引导错误:不是VMware引导槽。找不到管理程序(bank6 not a vmware boot bank no hypervisor found)
VMware ESXi 启动时提示引导错误: bank6 not a vmware boot bank no hypervisor found 大概中文意思是:不是VMware引导槽.找不到管理程序. ...