Linux内存CPU性能监视分析
Linux内存CPU性能监视分析
top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,可以看作一个任务管理器。
前五行是总信息:
行数 | 信息 |
---|---|
1 | 系统时间、已运行时间、当前用户数量、系统负载 |
2 | 总进程信息。包括总进程数量、以及各个状态的进程数量 |
3 | 总CPU信息。包括用户进程占用cpu比例、系统进程占用cpu比例、cpu空闲时间占比等信息 |
4 | 总内存信息。包括总内存、空闲内存、已用内存、缓存 |
5 | 总交换区信息。包括总交换区、空闲交换区、已用交换区 |
之后是针对于每个进程的信息:(默认情况)
PID | USER | PR | NI | VIRT | RES | SHR | S | CPU | MEM | TIME+ | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|---|
进程号 | 用户 | 优先级 | nice值 | 进程使用的虚拟内存总量 | 进程使用的物理内存大小 | 共享内存 | 状态 | CPU占用时间 | 物理内存占用 | 使用CPU时间 | 命令行 |
更改默认显示:
运行top时 通过 f 键可以选择显示的内容,可选内容很多。 按 o 键可以改变列的显示顺序。
常用分析:
可以和wins下的任务管理器等同,如果看到一个进程的CPU占比非常高,那么就可能有死循环之类的,如果wa太高说明可能存在IO瓶颈
vmstat命令
vmstat是一个很全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的 IO、中断、上下问切换、CPU使用等
名称 | 信息 |
---|---|
procs | r:运行的和等待(CPU时间片)运行的进程数 b:block的进程 |
memory | swpd:切换到交换内存上的内存 free:空闲内存 buff:缓存 cache:作为page cache的内存, 文件系统的cache |
swap | si: 交换内存使用,由磁盘调入内存 so: 交换内存使用,由内存调入磁盘 |
io | bi: 从块设备读入的数据总量(读磁盘) bo: 写入到块设备的数据总理(写磁盘) |
system | in: 每秒产生的中断次数 cs: 每秒产生的上下文切换次数 |
cpu | us: 用户进程消耗的CPU时间百分比 sy: 内核进程消耗的CPU时间百分比 wa: IO等待消耗的CPU时间百分比 id: CPU处在空闲状态时间百分比 |
一些分析:
Procs r: 运行的进程比较多则说明系统很繁忙
Io bo: 磁盘写的数据量大,如果cpu wa比较高,说明很可能有IO瓶颈
要结合具体的场景去分析,例如在高峰期的部分数值比较高就很正常
iostat命令
动态监视系统的磁盘操作活动
分析:
-
如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU
-
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。
atop命令
需要安装 yum install atop
监控Linux系统资源与进程的工具,以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,如果服务器出现问题后,我们可获取相应的atop日志文件进行分析
默认保存路径: / var / log / atop目录下
可以通过 atop -r filename进行读取
本文地址:https://blog.csdn.net/dingdingdodo/article/details/107338359