Jmeter压测报错,解决方法

org.apache.http.NoHttpResponseException: test.zjbke.cn:443 failed to respond
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:141)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)

前言

  网上太多,太多此问题发布,但是都没有从根本解决次问题。

 然后根据我的查询相关文档,以及文章,发现可能 Linux 环境下的服务器 配置文件 net.ipv4.tcp_syncookies = 1 搞的鬼

这个是什么意思呢 ?

tcp_syncookies :BOOLEAN
默认值是0 
只有在内核编译时选择了CONFIG_SYNCOOKIES时才会发生作用。当出现syn等候队列出现溢出时象对方发送syncookies。目的是为了防止syn flood攻击。
注意:该选项千万不能用于那些没有收到攻击的高负载服务器,如果在日志中出现synflood消息,但是调查发现没有收到synflood攻击,而是合法用户的连接负载过高的原因,你应该调整其它参数来提高服务器性能。参考:
tcp_max_syn_backlog
tcp_synack_retries
tcp_abort_on_overflow
syncookie严重的违背TCP协议,不允许使用TCP扩展,可能对某些服务导致严重的性能影响(如SMTP转发)。(注意,该实现与BSD上面使用的tcp proxy一样,是违反了RFC中关于tcp连接的三次握手实现的,但是对于防御syn-flood的确很有用.)
 

解决方法:

    1  当前网咯问题。尝试切换网咯去压测。

    2 .在 Linux 下 vim /etc/sysctl.conf  做配置调整

net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_max_syn_backlog = 650
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_fin_timeout = 30

可参考 文献 http://t.zoukankan.com/jdonson-p-4746094.html

快去试试,是否能够解决吧。