系统性能分析
Posted 木子小世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统性能分析相关的知识,希望对你有一定的参考价值。
计算机系统由四个模块组成分别是CPU、网络、磁盘、内存。在linux系统中有很多高效的工具,可以帮助分析定位问题。图为性能分析工具
vmstat
是一款全面的系统性能分析工具,通过给定时间间隔来展示服务器状态,包括cpu使用率,内存使用率,虚拟内存交换情况,I/O读写情况。一般通过两个参数来完成,第一个是采样时间间隔数s,第二个是采样的次数。
[root@192 ~]# vmstat 2 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 214528 236304 36 616496 1 14 326 159 704 622 39 12 48 0 0
2 0 214528 220236 36 616572 0 0 0 0 686 577 46 15 40 0 0
命令参数详解
r | 等待运行的进程数,多少个进程分到了CPU |
b | 在等待资源分配的进程数,阻塞状态 |
swpd | 虚拟内存已使用的大小(KB),如果大于0,表示机器的物理内存不足 |
free | 空闲的物理内存的大小(KB) |
buff | 用作缓存的内存数,缓存的是文件目录基本内容,在磁盘中的位置权限等 |
cache | 用作文件缓存的内存数,对打开的文件进行缓存 |
si | 从磁盘交换到内存的交换页数量,即每秒使用的虚拟内存数量(KB/s) |
so | 从内存交换到磁盘的交换页数量( KB/s) |
bi | 发送到块设备( 一般为磁盘)的块数(块/s) |
bo | 从块设备接收到的块数(块1s) |
in | 每秒中断次数,包括时钟中断 |
cs | 每秒上下文切换的次数 |
us | 用户CPU使用时间 |
sy | 系统CPU使用时间,如进行IO操作等 |
id | 空闲时间 |
wt | 等待I/O的CPU时间,一般为0 |
sar系统活动取样命令
可以从多方面对系统活动进行报告,包括文件读写情况,系统调用的使用情况,磁盘CPU效率等,可以连续对系统取样,取样结果可存入文件,而且所需的负载很小。
格式:
sar [option] [-A] [-o file] t [n]
option为命令选项,-o表示将命令结果以二进制格式存放在文件中,t为采样间隔,n为采样次数,默认值是1
命令参数
-A | 所有报告的总和 |
-u | 输出CPU使用情况的统计信息 |
-f | 输出内存和交换空间的统计信息 |
-b | 显示I/O和传达速率的统计信息 |
-a | 文件读写情况 |
-c | 输出进程统计信息,每秒创建的进程数 |
-R | 输出内存页面的统计信息 |
-r | 输出没有使用的内存页面和硬盘块 |
iostat 性能分析命令
用于报告cpu和整个系统的输入输出统计信息默认显示了与vmstat相同的cpu使用信息
命令参数详解
-C | 显示CPU使用情况 |
-d | 显示磁盘使用情况 |
-m -k | 以K M为单位显示 |
-n | 显示网络文件系统使用情况 |
-p | 显示磁盘和分区的情况 |
-x -V | 显示详细信息和版本信息 |
# 使用命令参数显示磁盘的详细信息脚本
[root@192 ~]# iostat -d -x -k 1 10
Linux 3.10.0-957.el7.x86_64 (anonymous) 2022年05月20日 _x86_64_ (1 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.15 2.29 3.14 1.00 215.99 106.22 155.59 0.01 3.01 2.18 5.66 1.19 0.49
scd0 0.00 0.00 0.00 0.00 0.04 0.00 72.41 0.00 2.59 2.59 0.00 2.17 0.00
dm-0 0.00 0.00 3.04 1.00 214.80 96.98 154.37 0.01 3.01 2.22 5.43 1.18 0.48
dm-1 0.00 0.00 0.17 2.29 0.77 9.16 8.07 0.02 9.22 2.98 9.69 0.11 0.03
top性能监控命令
top命令参数
d | 指定每两次屏幕信息刷新之间的时间间隔 |
p | 通过指定监控进程id来仅仅监控某个进程状态 |
q | 该选项将使top没有任何延迟的刷新 |
S | 指定累计模式 |
s | 使top命令在安全模式下运行 避免交互 |
i | 不显示任何闲置或僵尸进程 |
c | 显示整个命令而不是只显示命令名 |
top内部命令参数快捷键
o | 改变列的显示顺序 |
f | 选择显示的内容,显示选定的列 |
S s | 改变画面的更新频率 更新周期 |
P | 以CPU占用率大小的顺序排列进程列表 |
n | 设置在进程列表所显示进程的数量 |
q | 退出 |
ps 监控系统命令
top是对进程实时监控的命令,ps命令显示进程的状态,但不是连续的,是一个超强大的进程查看命令。
ps常用命令参数
-a | 显示终端下的所有程序 |
-A -e | 显示所有进程 |
-au | 显示较详细的信息 |
-aux | 显示所有包含其他使用者的进程 |
-f | 全部列出 |
-x | 显示没有控制终端的进程,同时显示各个命令的具体路径 |
-N | 反向选择 |
-u | 指定用户的所有进程 |
-l | 以长格式显示进程信息 |
netstat监控网络状态
netstat是控制台命令,监控TCP/IP的网络的工具,它可以显示路由表,实际的网络连接以及每个网络接口的网络连接情况。
常用命令参数
-a | 显示所有套接字 |
-c | 每隔1秒重现显示一次,直至手动中断 |
-i | 显示所有网络接口的信息 |
-r | 显示核心路由表,同 route -e |
-t | 显示TCP的连接情况 |
-u | 显示UDP的连接情况 |
-l | 只显示指定的监听端口 -lt合用 |
-p | 建立连接的程序名和pid |
-s | 显示每个协议的统计 |
-x | 显示networkdirect连接,侦听器和共享端点 |
ifconfig查看地址
ifconfig命令用来查看和配置当前网络配置,当网络环境发生改变时可通过此命令对网络进行相应的配置,配置一般需要高权。
还有一些其他的具体展示系统中一个类型的命令,因为在实际生产中使用的命令大多很固定,暂未整理,待开发。
ss显示连接状态命令
free显示内存命令
df 查看磁盘占用命令
dstat动态显示系统系统负载命令
iotop查看I/O命令
iftop实时监控命令
以上是关于系统性能分析的主要内容,如果未能解决你的问题,请参考以下文章