用户响应时间 = 服务器响应时间 + 网路时间
服务器响应时间:从服务器接收到请求到该请求的响应处理完毕,并把对应的数据全部发往客户端。
客户端的响应时间就是服务端的响应时间加上网路损耗时间。
系统性能分析思路:
我们不能只关注部署在系统上的应用可不可用,访问慢等问题,更应该系统的分析我们的应用在什么样的负载条件下,系统上运行了多少应用,系统的资源分配是否合理,系统是否超负荷运行,能否优化系统的资源来让系统和应用程序耦合度更高。
我们会从以下几块分析:
整体系统的CPU 利用率
我们首先要了解系统处理器的情况,如型号,主频,cache大小,是否支持超线程技术等信息,只有这样,才能更好的进行系统的性能分析。
CPU 的使用率是我们需要关注的很重要的指标,一般会期望不低于20%。会结合一些命令如 top,free来分析系统CPU的情况。
CPU 利用率 > 50% 需要注意
> 70% 密切关注
> 90% 严重
内存利用率
内存利用率 > 50% 需要注意
> 70% 密切关注
> 80% 严重
磁盘I/O的利用率和延迟
内存利用率 > 40% 需要注意
> 60% 密切关注
> 80% 严重
网路利用率
在测试过程中我们为减少网路影响,一般都是在局域网中进行测试的。
这些因素都是彼此相互依赖的,任何一个处于高负载状态,都可能导致其他的资源受到影响。
系统负载监控分析实践
uptime 用户获取主机运行时间和查询Linux系统负载等信息
一般系统建议每个CPU内核的当前活动进程数最好不大于0.8,证明系统是空闲的,大于1且小于3时,系统的其他资源正常,那么系统的性能也是可以接受的。如果任务数大于4的话,那就证明系统有性能问题了。
例子奉上
ps: w 命令会更好的显示当前登录用户数w
load average:0.04,0.03,0.05 分别代表过去1分钟,5分钟 和 15分钟的平均负载(指在特定时间间隔内运行队列中的平均进程数)。
top 对于所有正在运行的进程和系统载荷提供不断更新的概览信息。包括系统负载,CPU利用分布情况,内存使用,每个进程的内存使用情况等信息。
命令详解:
top - 23:33:48 up 230 days, 5:47, 2 users, load average: 0.04, 0.04, 0.05 ---类似于uptime命令
Tasks: 116 total, 2 running, 114 sleeping, 0 stopped, 0 zombie ---进程状态信息
CPU 信息:
%Cpu(s): 0.5 us, 0.3 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
0.3sy:内核空间占CUP百分比
0.0ni :用户进程空间内改变过程优先级的进程占CPU 百分比
99.2id:空闲CPU 百分比
0.0wa:等待输入输出的CPU时间百分比
0.0hi:硬中断占用CPU 百分比
0.0si:软中断占用CPU 百分比
内存信息:
KiB Mem : 3882304 total, 258248 free, 3222080 used, 401976 buff/cache(用作内核缓存的内存量,作用是缩短I/0系统调用的时间比如读写)
KiB Swap: 4095996 total, 2531520 free, 1564476 used. 429996 avail Mem
进程信息:
14329 cloud 20 0 3733552 413676 0 S 0.7 10.7 64:40.59 java
PR:优先级
NI:nice值,负值表示优先级高,正值则相反
VIRT:进程使用的虚拟内存总量,单位KB
RES:进程使用的未被换出的物理内存大小
SHR:共享内存大小
PS:小技巧
top ----> d 间隔刷新配置
top ----> f 列配置页面