WEB性能测试-并发测试

发表于:2020-3-05 17:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Daichongweb    来源:Daichongweb

    今天根据程序开发的逻辑和习惯来解决几个问题:
  (1)JMeter并发测试的基本使用。
  (2)redis和mysql相比的性能差距如何?
  (3)大量的并发和请求下redis、mysql、nginx各自会出现的问题?
  (4)遇到并发带来各种各样的问题如何解决?
  问题一:JMeter并发测试的基本使用
  (1)设置系统语言:Options->Choose Lanuage 里选择适合你的语言。
  (2)添加线程组:
  (3)设置线程属性:
  线程数:也就是并发数。
  Ramp-Up时间(秒):并发时间,0为同时并发。
  循环次数:重复次数。
  (4)添加HTTP请求:
  协议:http或https。
  服务器名称或IP:请求地址。
  路径:要请求的路由或文件路径。
  参数:添加请求参数。
  (5)添加察看结果树:可查看发送的数据,返回的结果等。
  (6)添加汇总报告:可查看错误率,吞吐量等。
  问题二:大量的并发和请求下redis、mysql、nginx各自会出现的问题?
  在同时并发2000的情况下(因为redis队列为异步,所以这里不考虑redis出列的性能问题):
  mysql:错误率87.9%,成功条数241。
  redis:错误率0.35%,成功条数1993。
  总结:从以上结果可以看出在高并发场景下msyql扛不住压力错误率高。
  结论:redis在处理并发性能优于mysql。
  问题三:大量的并发和请求下redis、mysql、nginx各自会出现的问题?
  3000并发循环请求3次相当于9000的次请求的情况下:
  (1)nginx报错:Too many open files(打开的文件数超过限制nginx默认为1024)。
  (2)redis报错:RDB: 2 MB of memory used by copy-on-write。
  (3)mysql直接写入失败。
  问题四:遇到并发带来各种各样的问题如何解决?
  (1)nginx错误分析:最大打开文件数超过限制
   # 查看系统打开文件值 Max open files
  cat /proc/`ps -ef | grep nginx|grep -v grep|head -1|awk '{print $2}'`/limits
  # 修改
  vi /etc/systemd/ststem.conf
  # 修改两个值
  DefaultLimitNOFILE = 102400
  DefaultLimitNPROC = 102400
  # 随后重启系统
   (2)redis错误分析:保存频繁导致内存不够了。(暂未找到最合适的方案)
  点击查看更详细的错误分析:Redis-redis异常解决以及日常命令
  (3)mysql暂没找到方案。
  总结:
  相同的配置&高并发场景下redis比mysql要可靠很多,伴随着并发越来越高服务器、程序、数据库各方面的问题扑面而来,不要慌,这才是你真正需要学习的东西!生于忧患死于安乐,只有不断的处理问题,才能真正的驾驭程序!祝你早日成功!!!
  本文最高测试并发在3000循环次数为3次,服务器环境为lnmrp,系统配置为2核4G6M,因为redis的问题没有解决不能做更高的并发测试。并且还有一个redis的问题没有解决,待我研究几日说。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号