最近在对文件上传接口性能测试时,设置150线程数并发时,总会出现以下错误:connection reset by peer: socket write error

在网上搜索了一下,得到的原因有这些:

服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
客户关掉了浏览器,而服务器还在给客户端发送数据;
浏览器端按了Stop;

和开发一起讨论了半天,谁都说不出个所以然来。开发说后台Tomcat没报错,不是代码的问题,会不会是工具的问题,于是乎找到网上一篇文章:

Jmeter遇到线程链接被重置(Connection reset by peer: socket write error)的解决方法

根据文章对jmeter进行了相应配置也没用。

后来还是一位开发大神找到了错误原因,原来,当jmeter报错时,后台Tomcat没报错,但是后台Nginx报错了!!!由于服务器只开通了80端口,开发人员使用Nginx将应用的端口进行了反向代理,反向后的端口为80,从而使测试机可以访问应用。

测试是否确实是Nginx的问题:将应用端口直接改为80,关闭Nginx后测试,结果显示不再报错,这证明这个错误确实是Nginx引起的。测试后将端口改回来。

在D:\nginx-1.15.0\logs\error.log中报错信息如下:

malloc(31457280) failed (8:Not enough storage is available to process this command)

网上很多人说是Nginx内存不足了,但是也没有人具体说怎么解决。尝试修改了Nginx的一些配置也没有用(可能是没改到点子上)。

后来将Nginx负载均衡改为Apache负载均衡,发现错误更多性能更差了。

最后还是大神将Nginx 32位改为了Nginx 64位(在官网没找到64位的,还是在某个网站上下载的)后,发现性能大大提升。

测试发现,并发300线程数时,jmeter都没报错!!!

当然长时间并发时,偶尔还是会有connection reset by peer: socket write error这个错误发生,但是总的来说接口性能已经大大提升了。

虽然还是没有完全搞清楚这个错误的发生原因以及解决办法,但总归是有点进步,在此记录,也给各位遇到此问题的朋友一点思路。

jmeter测试文件上传接口报错:connection reset by peer: socket write error的更多相关文章

  1. spring+ibatis问题1—— 程序报错:java.sql.SQLException: Io 异常: Connection reset by peer, socket write error; ”或“java.sql.SQLException 关闭的连接”异常

    转自:http://blog.sina.com.cn/s/blog_1549fb0710102whz2.html spring+ibatis程序测试时报错:java.sql.SQLException: ...

  2. postman测试文件上传接口教程

    postman是一个很好的接口测试软件,有时候接口是Get请求方式的,肯定在浏览器都可以测了,不过对于比较规范的RestFul接口,限定了只能post请求的,那你只能通过工具来测了,浏览器只能支持ge ...

  3. jmeter测试文件上传功能

    最近为了完成自动化KPI开始慢慢接触jmeter,其中遇到了不少问题,今天就遇到了文件上传的问题,在这里记录下加深记忆,也可供jmeter初级使用者作为一个参考.另外论坛上已有同事发过关于jmeter ...

  4. jmeter随笔(2)--上传接口报错

    黑夜小怪(2016-8-24  23:45) 微信订阅号: 问题:今天同事遇到问题,一个图片上传接口,单独跑是ok的,但是放在和其他接口一起就跑不通,如图 分析:查看该接口fiddler的抓包,发现请 ...

  5. 文件上传相关报错: The current request is not a multipart request或is a MultipartResolver configured?

    1:from中涉及到图片上传的就要用post提交方式.否则就会报这个错误. 2:第一中:在jsp页面的<head></head>标签里面加上<meta http-equi ...

  6. Jmeter遇到线程链接被重置(Connection reset by peer: socket write error)的解决方法

    做性能测试的时候遇到一个很奇怪的问题,多线程的计划,有一个线程第一次能跑过,第二次确跑不过,单独跑这个线程跑多少次都没有问题,把思考时间改短也没有问题,唯独出现在特定的状态下,特定状态是啥,也不得而知 ...

  7. 转 Jmeter测试实践:文件上传接口

    Jmeter测试实践:文件上传接口   1.打开jmeter4.0,新建测试计划,添加线程组.根据实际情况配置线程属性. 2.添加HTTP请求. Basic部分修改如下: Advanced部分我做任何 ...

  8. soapUI 之 测试文件上传 [6]

    在接口测试中会遇到需要上传文件的操作,比如头像修改等.那么soapui是怎么实现这部分测试的呢.以下以文件上传接口为例. 一.获取文件上传接口 可以通过开发直接提供的接口文档,或者自己抓包获取接口信息 ...

  9. Ceph RGW服务 使用s3 java sdk 分片文件上传API 报‘SignatureDoesNotMatch’ 异常的定位及规避方案

    import java.io.File;   import com.amazonaws.AmazonClientException; import com.amazonaws.auth.profile ...

随机推荐

  1. MTK 隐藏底部状态栏

    步骤: 源码/frameworks/base/policy/src/com/android/internal/policy/impl目录下修改PhoneWindowManager.java文件. 修改 ...

  2. 使用 ssh -R 穿透局域网访问内部服务器主机,反向代理 无人值守化

    一.搭建SSH方向代理 准备: 局域网主机(虚拟主机): 192.168.6.233   CentOS 6.7 阿里云服务器:120.25.68.60   CentOS 6.7 1. 阿里云服务器12 ...

  3. linux log

    adb shell logcat GOODIX:v *:s cat /proc/kmsg | grep "<<" ./cbootimg.sh adb shell get ...

  4. fiddler配置手机抓包

    参考:https://blog.csdn.net/gld824125233/article/details/52588275 注:我内部用,没有https,不用配置https证书.

  5. 报错libtest: error while loading shared libraries: libuv.so.1: cannot open shared object file: No such file or directory

    使用g++编译.运行libuv的demo错误解决 我们通过例子来讲述监视器的使用. 例子中空转监视器回调函数被不断地重复调用,  通过例子我们也可以了解到: 由于设置了监视器, 所以调用 uv_run ...

  6. scp出现Permission denied,please try again的解决办法

    当scp的时候我们发现错误,被拒绝,是因为ssh的权限问题,需要修改权限,进入到/etc/ssh文件夹下,用root用户修改文件sshd_config 将PermitRootLogin no / wi ...

  7. Nginx高级配置,同1台机器部署多个tomcat、配置多个域名,每个域名指向某一个tomcat下的项目,共用Nginx80端口访问;

    需求说明: 只有一台服务器和一个公网IP,多个项目部署在这台机器上面,且每个项目使用一个单独的域名访问,域名访问时都通过Nginx的80端口访问.(如下图所示) 配置过程: 一.tomcat的serv ...

  8. 如何将MP3录音转文字

    相信很多人都有电话录音的习惯,因为这样可以记录下很多重要的信息.那么当我们通过录音将一些重要的信息记录下来后,我们应该怎样将这些录音文件转换成文字进行记录呢?下面我们就一起来看一下吧. 操作步骤: 步 ...

  9. Windows的文件类型关联

    在用脚本语言开发时尤其是在windows环境下发现想自动在命令行环境下运行脚本必须要带着相应的解释器的路径才行,不然就会提示无法找到对应的命令,于是乎在<学习Ruby>这本书中对于文件类型 ...

  10. [No0000151]菜鸟理解.NET Framework中的CLI,CLS,CTS,CLR,FCL,BCL

    最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framewor ...