1. 程式人生 > >用httpclient做壓力測試時Too many open files的解決辦法

用httpclient做壓力測試時Too many open files的解決辦法

轉載自:http://keben1983.blog.163.com/blog/static/14363808120111252021798/

在工作過程中,用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 );