最近在对文件上传接口性能测试时,设置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. ActiveMQ JMS 项目 基于 Maven 搭建 部署

    JAVA版本: IntellJ IDEA 版本: IntelliJ IDEA 2017.2Build #IU-172.3317.76, built on July 15, 2017Licensed t ...

  2. VS2017 配置freeglut3.0.0

    配置freeglut: 1. 先下载cmake和freeglut3.0.0文件,并使用cmake编译freeglut,再使用vs2017生成解决方案,详细步骤见https://blog.csdn.ne ...

  3. 【!Important】Zookeeper用来做什么的,有几种类型的节点

    zookeeper=文件系统+通知机制 一.Zookeeper提供了什么 1.文件系统 Zookeeper维护一个类似文件系统的数据结构 每个子目录项如NameService都被称为znoed,和文件 ...

  4. kettle spoon中“表输入”到“表输出”的乱码问题

    数据库中的数据在不同的数据库中转换来装换去,由于不同库可能使用了不同的字符集,所以可能导致结果数据乱码问题.此次是在一个作业中跑数据,跑完数据前台数据显示出现乱码,检查了作业中的多有中间过程表,包括表 ...

  5. 适用于CentOS6.4的Win7双系统安装方式

    (文章在2013-11-16 15:56:31修改,此次修改幅度较大,之前的安装方式有问题,已经不推荐使用.笔者在此对各位读者表示深深的歉意!) 在之前的文章中我们实现了Win7+CentOS6.3双 ...

  6. 书写 sql 中关于 update 多表联合更新的方法

    SQL Update多表联合更新的方法(1) sqlite 多表更新方法//----------------------------------update t1 set col1=t2.col1fr ...

  7. 命名空间与Autoload

    命名空间是为了防止函数名冲突 当php编译器找到未定义类时,就会自动去调用__autoload($class)这个函数,$class就代表这个未定义的类名相对于当前项目根目录所在路径   php5.3 ...

  8. 使用 systemctl 创建 ss 开机

    有自启动脚本.可以设置开机自启. 下载python 安装 ss就不说了.使用 systemctl 创建ss开机自启服务. 创建配置文件 vim /usr/lib/systemd/system/shad ...

  9. vmware 中安装Ghost XP 版本心得

    安装是肯定是选择 ISO映像文件,第一次进入真能进入Ghost选择界面, 无论你第一次 进入的是pe 或 一键分区还是 ghost到C盘最后你再重启就总是让你按任意键或Ctrl+Alt+Del 自然想 ...

  10. Python:time模块、calendar模块

    time模块 import time 获取时间戳 >>>time.time() #1532418950.7246091 获取时间元组 >>> time.localt ...