一般来说,压力测试用的都是apache软件自带的ab命令,这个命令可以自己手动规定模拟多少个人同时访问目标网址同时这些人访问多少次。ab的格式如下:

#ab -c 1000 -n 50000 http://192.168.1.202/index.html

这句话的意思是模拟3000个用户同时访问192.168.1.202的主页,访问50000次。注意url一定要写全,不可以就写一个192.168.1.202。

但是ab有一点缺憾,那就是只能访问静态网页,如果是动态网页比如是聊天室那种网页就访问不了,这种情况需要搭配shell脚本来搞定。

ab的结果如下:

这份报告里面显示了 目标服务器软件是1.2.7的nginx,并发1000,请求了50000次,其中50000次请求有3700多个失败了(不算优秀)。总共花了13秒多,一共交换了多少个字节,其中80%的请求反应只花费了100ms,18%的请求响应花费了1秒以上,剩余2%的响应用了3秒。

当我们需要提升并发值的时候,可能服务器在默认的配置下就会显示大量的连接错误。这些主要是因为四点,1)socket需要高的内存,服务器本身硬件能力是否够用;2)能否一口气建立多个socket;3)建立了多个socket之后能否同时打开多个文件,同时文件能按socket返回,4)网卡给力,是万兆以太网卡。

提升高并发性能以及优化nginx的招数如下:

1)#ulimit -n 20000:默认值是1024,这个值代表一个进程最多能开启几个文件;

2)/proc/sys/net/ipv4/tcp_tw_recycle 这个文件默认为0,改成1的话表示系统会快速回收tcp连接;

3)/proc/sys/net/ipv4/tcp_tw_reuse 这个文件默认为0,改成1的话表示系统快速利用tcp;

4)/proc/sys/net/ipv4/tcp_syncookies 这个文件默认是1,改成0的话表示系统不会进行“洪水防御”;

5)nginx.conf里的keep_timeout=0,即请求结果之后不保留tcp链接,因为在高并发之下,keepalive会占用大量的socket链接时间,当这个值改成0之后,通过/status看,waiting值会大幅度减少,http的响应头里没有keep_alive而是connection:close;(keep_alive这个是在http的响应头看到的,这个东西指的是用户在访问forum.php的时候就会保持连接,然后只要是在规定时间内再访问css,js等东西的时候,就可以继续使用这个链接,这个对于大用户的网站来说,弊端是有的,让人赶快把坑让出来。)

6)nginx.conf里的 event{}中的work_connections,默认是1024,可以臭不要脸的改成10240;

7)/proc/sys/net/core/somaxcon,监听队列的长度,默认值是128,可以改成50000左右。

8)nginx.conf的全局设定里添加一句话:worker_rlimit_nofile 10000;,指的是一个工作进程可以打开10000个文件。

压力测试最好是多台机器一起ab,二三台就够了,而不是一台机器自己孤独的压,毕竟客户端也是有瓶颈的。客户端更改瓶颈的主要方式就是#ulimit -n和扩大somanconn的值。

转载于:https://blog.51cto.com/chenx1242/1773210

压力测试与提升服务器能力的几个方法相关推荐

  1. 传奇网页服务器测试服,测试传奇游戏服务器网速的一些方法

    测试传奇游戏服务器网速的一些方法 本文出处:网游动力作者:本站发布时间:2018-08-20阅读次数: 前几天站长跟一些开传奇sf朋友们聊到服务器,说了配置.防护还有是速度等方面的内容,如果查看服务器 ...

  2. 压力测试及缓存服务器

    第一篇 WEB压力测试 一.常用工具 常用压力测试工具:ab,httpd_load,webbench,seige. 仅仅作为测试使用,与实际能力区别也挺大的. 比较好的测试工具:惠普公司的loadru ...

  3. Linux下nvidia压力测试,一种服务器linux系统下GPU压力测试的监控方法与流程

    本发明属于服务器测试技术领域,具体涉及一种服务器linux系统下GPU压力测试的监控方法. 背景技术: 随着社会的快速发展,人们对高网络性能.快速存储.大量内存.超高计算能力的GPU的需求越来越大,产 ...

  4. 压力测试工具ab 及 centos下单独安装方法

    为什么80%的码农都做不了架构师?>>>    压力测试工具Ab简介 Apache安装包中自带的压力测试工具 Apache Benchmark(简称ab) 简单易用,这里就采用 ab ...

  5. 服务器压力测试文档,服务器压力测试报告样例.doc

    服务器压力测试报告样例.doc <xxxx> WeTest服务器性能专项测试报告 HYPERLINK "http://wetest"http://wetest. qq. ...

  6. 服务器 风扇测试软件,图解服务器风扇安装的正确方法

    一般不是太垃圾的机箱总有两个地方可以装风扇,前面的一般在硬盘托架处,后面的一般在电源下面,键盘口上方.有的机箱出厂就已经装好1-2个风扇了. 图中越红的区域温度相对越高. 应该什么样的风道合理呢? 1 ...

  7. 高防服务器ddos压力测试的工具推荐

    目前DDoS攻击的成本越来越低,在商业竞争.黑客行动主义以及网络敲诈等领域,DDoS攻击网站事件正在呈上升趋势.最基本的DDoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服 ...

  8. 服务器ddos压力测试注意事项及常用工具

    据有关数据显示,在刚刚过去的2019年里,针对多媒介社交网站中的DDOS攻击占比从第一季度的46%增长到第四季度的65%,且DDoS攻击网站事件正在呈上升趋势.想要有效地防范ddos,可以使用香港高防 ...

  9. 游戏上线前服务器压力测试应该怎么做

    伴随手游上线推广,玩家爆发式增长非常常见,不少开发者都遇到过玩家冲爆服务器的情况.因此降低服务器崩溃的风险就显得非常重要.游戏上线前如果做了服务器压力测试帮助会很大.今天就来说说压力测试. 编写脚本机 ...

最新文章

  1. linux不识别ntfs分区,WinUbuntu下linux无法挂载NTFS格式分区问题的解决
  2. 仍然报错_详解oracle经典报错:ORA-04030排错思路和解决方法
  3. python获取天气信息写入原有的excel文档
  4. Zabbix4.0 for PostgreSQL (上篇):基础环境的搭建部署
  5. PHP配置vhost
  6. Lisp尺寸标注增加前后缀_汽车雨刷器也是有尺寸的,那具体的尺寸该如何分辨呢?...
  7. Android进阶篇之引导页系列之ViewPager实现Animation动画引导页
  8. python3 类实例化流程
  9. php5.6 pdo.dll 没有,php5.6没有pdo怎么办
  10. python文件地址拼接
  11. 某猪微店状元分销V2.0钻石版-全开源纯净安装版
  12. Jmeter 5.1实现图片上传接口测试
  13. LeetCode632 最小区间
  14. 智能一代云平台(八):代码依赖分析系统
  15. MyCat全局序列之数据库方式
  16. 阿里副总裁、达摩院自动驾驶负责人王刚离职!
  17. C++ 查看openCV版本
  18. 3.Android学习之常用UI组件(一)
  19. Kal系统学习:记录一次wifi破解过程
  20. 能够证明“3=0”吗?

热门文章

  1. Java 程序死锁问题原理及解决方案
  2. oralce 数据库监听日志状态及目录:查看监听(使用grid用户登陆):
  3. python002 一 eg: Python 入门技巧__环境搭建__git使用、git本地操作、 自建gitlab服务器
  4. Android开发中,eclipse找不到已存在的layout资源文件
  5. nodejs安装及环境配置_nodeJS安装和环境变量的配置
  6. 蓝牙耳机和蓝牙鼠标相互干扰_蓝牙耳机推荐:编辑亲测后中肯评价五大爆款蓝牙耳机...
  7. 使用docker搭建gitlab服务器
  8. linux标准c和c编译器6,linux内核中GNU C和标准C的区别
  9. python输入ip地址_python批量生成本地ip地址的方法
  10. BZOJ.4888.[TJOI2017]异或和(树状数组)