1 | ab(选项)(参数) 地址 |
-A:指定连接服务器的基本的认证凭据;
-c:指定一次向服务器发出请求数;
-C:添加cookie;
-g:将测试结果输出为“gnuolot”文件;
-h:显示帮助信息;
-H:为请求追加一个额外的头;
-i:使用“head”请求方式;
-k:激活HTTP中的“keepAlive”特性;
-n:指定测试会话使用的请求数;
-p:指定包含数据的文件;
-q:不显示进度百分比;
-T:使用POST数据时,设置内容类型头;
-v:设置详细模式等级;
-w:以HTML表格方式打印结果;
-x:以表格方式输出时,设置表格的属性;
-X:使用指定的代理服务器发送请求;
-y:以表格方式输出时,设置表格属性。
1 | ab -c 200 -n 200 http://127.0.0.1:3000/ |
运行结果
1 | This is ApacheBench, Version 2.3 <$Revision: 1748469 $> |
Requests per second: 1041.68 [#/sec] (mean)
(吞吐率,简称QPS)每秒服务器承载请求量是多少,以上测试数据表示每秒可以处理1041.68
并发量,也就是说有 1100个用户去访问这个服务器,这个服务器是可以抗的住Time per request: 191.998 [ms] (mean)
每次请求花费多少毫秒Time per request: 0.960 [ms] (mean, across all concurrent requests)
并发情况下,0.960毫秒得到结果Transfer rate: 149.54 [Kbytes/sec] received
(吞吐量) 每秒这个服务器吞/吐的数据量是多少
1 | node --prof index.js |
1 | pecl install xdebug |
1 | http://pecl.php.net/package/xhprof |
客户端服务端也需要开启监控,检测具体问题所在
1 | [root@VM_0_4_centos ~]# top |
第一行:概况
- 当前时间
01:19:19
;- 从本次开机到现在经过的时间
up 6 days,9 min
;- 当前有几个用户登录到该机器。
1 user
;- 系统1分钟、5分钟、15分钟内的平均负载值
load average: 0.00, 0.01, 0.05
第二行:进程计数(Tasks)
- 进程总数
122 total
;- 正在运行的进程数
1 running
;- 睡眠的进程数
121 sleeping
;- 停止的进程数
0 stopped
;- 僵尸进程数
0 zombie
第三行:CPU使用率(%Cpu(s))
- 进程在用户空间(user)消耗的CPU时间占比,不包含调整过优先级的进程。
%Cpu(s): 0.2 us
- 进程在内核空间(system)消耗的CPU时间占比。
0.2 sy
- 调整过用户态优先级的(niced)进程的CPU时间占比。
0.0 ni
- 空闲的(idle)CPU时间占比。
99.7 id
- 等待(wait)I/O完成的CPU时间占比。
0.0 wa
- 处理硬中断(hardware interrupt)的CPU时间占比。
0.0 hi
- 处理软中断(software interrupt)的CPU时间占比。
0.0 si
- 当Linux系统是在虚拟机中运行时,等待CPU资源的时间(steal time)占比。
0.0 st
第四、五行:物理内存和交换空间(Mem/Swap)
- 内存总量。
3880224 total
- 空闲内存量。
235108 free
- 使用中的内存量。
973224 used
- 缓存和page cache占用的内存量。
2671892 buff/cache
接下来就是进程详细信息
PID
进程IDUSER
进程所有者的用户名。PR
从系统内核角度看的进程调度优先级。NI
进程的nice值,即从用户空间角度看的进程优先级。值越低,优先级越高。VIRT
进程申请使用的虚拟内存量。RES
进程使用的驻留内存(即未被swap out的内存)量。SHR
进程使用的共享内存量。S
进程状态。R=running,S=interruptible sleeping,D=uninterruptible sleeping,T=stopped,Z=zombie。%CPU
进程在一个更新周期内占用的CPU时间比例。%MEM
进程占用的物理内存比例。TIME+
进程创建后至今占用的CPU时间长度。COMMAND
运行进程使用的命令。
1 | [root@VM_0_4_centos ~]# yum install -y sysstat |
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
tps:该设备每秒的传输次数
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read: 读取的总数据量;
kB_wrtn:写入的总数量数据量;
注意:
如果%iowait的值过高,表示硬盘存在I/O瓶颈
如果%idle值高,表示CPU较空闲
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
常见命令
1 | # 每隔2秒刷新显示,且显示3次 |