一、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

nginx压力测试和并发预估的更多相关文章

  1. 使用AB对Nginx压测和并发预估

    简介 ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的. # 1.ab每次只能测试一个URL,适合做重复压力测试 # 2.参数很多,可以支持添加c ...

  2. Nginx压力测试工具之WebBench

    Nginx压力测试工具之WebBench   在Apache中有自带的ab命令可以测试服务的压力,而nginx没有自带的命令,必须要采用第三方软件来测试,今天就简单介绍一下webbench对nginx ...

  3. Nginx压测和并发预估

    一.Nginx并发预估 预估算法:{(?G)*1024-system}/请求大小 (?G):表示内存大小1024:表示内存容量标准进制system:表示系统和服务占用的额外内存和需要预留的内存请求大小 ...

  4. CentOS 6.7平台nginx压力测试(ab/webbench)

    压力测试工具一:webbench 1.安装 wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz tar zxvf w ...

  5. NGINX压力测试

    目录 1    硬件配置    3 1.1    型号    3 1.2    CPU    3 1.3    内存    3 2    软件环境    3 2.1    操作系统    3 2.2  ...

  6. Jmeter实现压力测试(多并发测试)

    一.http://jmeter.apache.org/ 二.点击Download Releases选择版本下载 三.下载解压: 将解压后的文档存盘-下载logkit-2.0.jar(汉化包)放到jme ...

  7. nginx压力测试webbench

    下载压力测试工具webbench wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz 安装依赖包 yum -y in ...

  8. Jmeter对HTTP请求压力测试、并发测试的简单使用方法

    对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...

  9. 转:JMeter压力测试及并发量计算

    最近的一个项目刚刚开发完,因为不是专业测试人员,所以记录下测试过程以备时间长忘记了. 一.JMeter的安装(Linux)1. 下载JMeter:这个就不细说了,直接去(http://jmeter.a ...

随机推荐

  1. React Native 开发豆瓣评分(三)集成 Redux

    什么是 redux redux 是一个用于管理 js 应用状态(state)的容器.比如组件 A 发生了变化,组件 B 要同时做出响应.常见的应用场景就是用户的登录退出操作:未登录状态,个人中心显示登 ...

  2. 七分钟理解 Java 的反射 API

    像java一样,一种具有反射功能的语言.允许开发人员在运行时检查类型.方法.字段.注解等,并在程序运行时决定是否使用. 为此,Java的反射API提供类,类,字段,构造函数,方法,注释和其他. 使用它 ...

  3. Python——数据类型公用功能

    1.索引 表示从哪里开始取值. 支持类型 str 列表 dict 不支持类型 int bool a= '1234567' print(a[1:])#指从哪开始读取,1为从1号元素开始.默认为0 pri ...

  4. cal of easter egg

    在Linux中用cal命令查看1752年9月,发现3到13日全都消失了……

  5. Spring boot集成Websocket,前端监听心跳实现

    第一:引入jar 由于项目是springboot的项目所以我这边简单的应用了springboot自带的socket jar <dependency> <groupId>org. ...

  6. 重装windows10系统的教程

    1.首先从官网上下载一个win10的系统, 2.准备一个8GB的移动U盘,下载好的镜像文件烧录在这个U盘, 3.按照不同型号的机型,使用不同的按键进入BOIS模式,然后选中U盘作为启动项,读取出来这个 ...

  7. 《3+1团队》【Beta】Scrum meeting 2

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 3+1团队 团队博客地址 https://home.cnblogs.com/u/3-1group ...

  8. 接口测试工具soapUI

    一.下载 官网:https://www.soapui.org/ 链接:https://pan.baidu.com/s/15LITTKIvfIoAq5IBpID8gA 提取码:l7p6 二.SoapUI ...

  9. workerman——消息推送(web-msg-send)

    前言 说下场景,当后台将号码池的号码分配给指定客服的时候,需要给指定的客户推送一条消息告诉该客户,通讯录有新增数据. 步骤 下载 https://www.workerman.net/web-sende ...

  10. redis 缓存问题,转载:https://www.cnblogs.com/liangsonghua/p/www_liangsonghua_me_22.html

    缓存穿透: 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且处于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义 ...