当前位置: 首页 > news >正文

Nginx压测和并发预估

一.Nginx并发预估

预估算法:{(?G)*1024-system}/请求大小

(?G):表示内存大小
1024:表示内存容量标准进制
system:表示系统和服务占用的额外内存和需要预留的内存
请求大小:表示静态(一般为KB)或动态(一般为MB)的请求大小

16核32G服务器,可以抗住4万多用于负载均衡的并发,最多可以抗住5-6万,跑满文件描述符。

二.压测工具AB

1.安装压力测试工具ab

[root@nginx-lua ~]# yum install httpd-tools -y

2.了解压测工具使用方式

[root@nginx-lua ~]# ab -n 200 -c 2 http://127.0.0.1/ //-n总的请求次数 //-c并发请求数 //-k是否开启长连接

3.参数详解

[root@Nginx-lua conf.d]# ab -n2000 -c2  http://127.0.0.1/index.html
...
Server Software:        nginx/1.12.2 Server Hostname: 127.0.0.1 Server Port: 80 Document Path: /index.html Document Length: 19 bytes Concurrency Level: 200 # 总花费总时长 Time taken for tests: 1.013 seconds # 总请求数 Complete requests: 2000 # 请求失败数 Failed requests: 0 Write errors: 0 Total transferred: 510000 bytes HTML transferred: 38000 bytes # 每秒多少请求/s(总请求出/总共完成的时间) Requests per second: 9333.23 [#/sec] (mean) # 客户端访问服务端, 单个请求所需花费的时间 Time per request: 101.315 [ms] (mean) # 服务端处理请求的时间 Time per request: 0.507 [ms] (mean, across all concurrent requests) # 判断网络传输速率, 观察网络是否存在瓶颈 Transfer rate: 491.58 [Kbytes/sec] received

三.查看并发连接数和连接状态

1、查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'

返回结果一般如下

LAST_ACK 5 (正在等待处理的请求数)
SYN_RECV 30 ESTABLISHED 1597 (正常数据传输状态) FIN_WAIT1 51 FIN_WAIT2 504 TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)

其他参数说明

CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

2、查看Nginx或apache的运行进程数

ps -ef | grep nginx | wc -l
ps -ef | grep httpd | wc -l

3、查看Web服务器进程连接数

netstat -antp | grep 80 | grep ESTABLISHED -c

转载于:https://www.cnblogs.com/guarderming/p/10404653.html

相关文章:

  • 未发先侃?对比华为,高通第二代5G调制解调器如何?
  • 安卓P底部有空白,需要手动全屏
  • vue.js框架原理浅析
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • SpringBoot 实战 (九) | 整合 Mybatis
  • ThinkSNSPlus 2.0 产品体验报告
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 资源 | 上千份简历模板统统给你!都拿去!
  • idou老师教你学Istio :5分钟简析Istio异常检测
  • CSS 专业技巧
  • 交互设计原则
  • Btrace使用入门
  • GraphQL学习过程应该是这样的
  • SpiderData 2019年2月23日 DApp数据排行榜
  • 剑指offer——面试题25:合并两个 排序的链表
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • Docker容器管理
  • iOS | NSProxy
  • k8s如何管理Pod
  • ng6--错误信息小结(持续更新)
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • python 装饰器(一)
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Vue全家桶实现一个Web App
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 百度小程序遇到的问题
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 面试总结JavaScript篇
  • 前嗅ForeSpider中数据浏览界面介绍
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 云大使推广中的常见热门问题
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​Spring Boot 分片上传文件
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (03)光刻——半导体电路的绘制
  • (2020)Java后端开发----(面试题和笔试题)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (八)Spring源码解析:Spring MVC
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十一)图像的罗伯特梯度锐化
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)用.Net的File控件上传文件的解决方案
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .gitignore文件---让git自动忽略指定文件
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net mvc部分视图
  • .net refrector