一、top 命令详解
当前时间 20:27:12
当前系统运行时间 3:18秒
1个用户
系统负载平均长度为 0.00,0.00,0.00(分别为1分钟、5分钟、15分钟前到现在的平均值)
第二行为进程状态的汇总 R 运行态、S 睡眠态、T 被跟踪或已停止、Z 僵尸态
解析:
0.0%us | 用户空间占用CPU百分比 |
0.0%sy | 内核空间占用CPU百分比 |
0.0%ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
100.0%id | 系统目前空闲CPU百分比 |
0.0%wa | 等待输入输出I/O的CPU时间百分比 |
0.0%hi | 硬中断占用CPU百分比 |
0.0%si | 软中断占用CPU百分比 |
当 id 持续过低时,表示系统迫切需要解决 cpu 资源问题
cpu 的使用率=1-%id
解析:
Men:1906556k total | 物理内存总量 |
Men:695372k used | 使用的物理内存总量 |
Men:1211184k free | 空闲内存总量 |
Men:86244k buffers | 用作内核换成的内存量 |
Swap:2097144k total | 交换区总量 |
Swap:0k used | 使用的交换区总量 |
Swap:2097144k free | 空闲交换区总量 |
Swap:175672 cached | 缓冲的交换区总量 |
buffer 和 cache 的作用是缩短 I/O 系统调用的时间(缓存,会占物理内存),如果 cache 的值很大,说明 cache 里面的文件很多,如果频繁的访问文件都能命中的话,很明显这样会比读取磁盘调用快,磁盘的 I/O 必定会减小。 但是如果系统内存不足时,buffer/cache 所占用的内存可以通过 drop cache 进行释放出来
物理内存总数 Mem_total = Men_used + Mem_free
实际使用的物理内存数 - buffers/cache = used - buffers - cache
实际可用的物理内存数 + buffers/cache = free + buffers + cache
交换分区对应的内存总数 Swap_total = swap_used + swap_free
解析:
%CPU | 进程所占用的CPU的百分比 |
%MEM | 进程使用的物理内存百分比 |
二、性能分析过程
检查 RT(响应时间) | 完成一笔业务的时间 2/5/8原则 |
检查 TPS(吞吐量) | TPS 大时 RT 小,说明性能好 |
检查 web 服务器资源损耗 | 1.检查 cpu 使用率,确认用户 cpu 和系统 cpu 占用情况 2.检查内存使用情况 3.检查磁盘使用情况 4.检查占用的带宽 5.分析 web 页面确认是什么请求影响了性能 6.是否存在前端图片过多加载时间过长问题 |
是否有 DB 性能问题 | 1.数据库最大连接数 |
是否是 SQL 问题 | 1.不合理的查询 SQL 2.索引是否正常使用 3.是否有做临时表缓存 |
三、性能指标参考值
1.cpu
注意 >= 50%
告警 >= 70%
严重 >= 90%
2.内存
注意 >= 50%
告警 >= 70%
严重 >= 80%
3.系统 IO 利用率(I/O(input/output)字面理解就是输入/输出,输入指的是对磁盘写入数据,输出指的是从磁盘读出数据。)
注意 >= 40%
告警 >= 60%
严重 >= 80%
上一篇: 封装发送接口请求的工具类
下一篇: 软件测试之手工测试人员如何转测试开发?