❤️Linux性能统计分析❤️
Posted xingweikun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了❤️Linux性能统计分析❤️相关的知识,希望对你有一定的参考价值。
安装
yum -y install sysstat
uptime
[root@web1 xwk]# uptime
14:41:00 up 32 min, 2 users, load average: 0.00, 0.04, 0.30
Unix 命令,显示系统已经运行了多长时间,它依次显示下列信息:当前时间、系统已经运行了多长时间、有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
深入理解负载
如果cpu = 1
load average = 1(cpu时刻在用)
如果cpu = 4
load average = 1(cpu只使用25%)
统计有多少用户
[root@web1 xwk]# cat /etc/group |wc -l
81
[root@web1 xwk]#
平均负载
平均负载不大于3,则系统运行表现良好
如果多核cpu,需要累加
4核cpu<12
dmesg|tail
[root@web1 xwk]# dmesg|tail
最新的10个系统信息,注意会导致性能问题的错误信息
[root@web1 xwk]# dmesg|tail -20
最新的20个系统信息
vmstat
vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。
[root@web1 xwk]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 48204 61556 36 353844 1 8 564 20 75 148 1 1 97 2 0
[root@web1 xwk]#
procs:procs 中有 r 和 b 列,它报告进程统计信息。在上面的输出中,在运行队列(r)中有两个进程在等待 CPU 并有零个休眠进程(b)。通常,它不应该超过处理器(或核心)的数量,如果你发现异常,最好使用 top 命令进一步地排除故障。
r:等待运行的进程数。
b:休眠状态下的进程数。
memory: memory 下有报告内存统计的 swpd、free、buff 和 cache 列。你可以用 free -m 命令看到同样的信息。在上面的内存统计中,统计数据以千字节表示,这有点难以理解,最好添加 M 参数来看到以兆字节为单位的统计数据。
swpd:使用的虚拟内存量。
free:空闲内存量。
buff:用作缓冲区的内存量。
cache:用作高速缓存的内存量。
inact:非活动内存的数量。
active:活动内存量。
swap:swap 有 si 和 so 列,用于报告交换内存统计信息。你可以用 free -m 命令看到相同的信息。
si:从磁盘交换的内存量(换入,从 swap 移到实际内存的内存)。
so:交换到磁盘的内存量(换出,从实际内存移动到 swap 的内存)。
I/O:I/O 有 bi 和 bo 列,它以“块读取”和“块写入”的单位来报告每秒磁盘读取和写入的块的统计信息。如果你发现有巨大的 I/O 读写,最好使用 iotop 和 iostat 命令来查看。
bi:从块设备接收的块数。
bo:发送到块设备的块数。
system:system 有 in 和 cs 列,它报告每秒的系统操作。
in:每秒的系统中断数,包括时钟中断。
cs:系统为了处理所以任务而上下文切换的数量。
CPU:CPU 有 us、sy、id 和 wa 列,报告(所用的) CPU 资源占总 CPU 时间的百分比。如果你发现异常,最好使用 top 和 free 命令。
us:处理器在非内核程序消耗的时间。
sy:处理器在内核相关任务上消耗的时间。
id:处理器的空闲时间。
wa:处理器在等待IO操作完成以继续处理任务上的时间。
以 MB 方式输出
默认情况下,vmstat 以千字节为单位显示内存统计,这是非常难以理解的,最好添加 -S m 参数以获取以兆字节为单位的统计。
[root@web1 xwk]# vmstat -S m
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 49 75 0 348 0 0 521 18 73 144 1 1 97 2 0
[root@web1 xwk]#
参考
iostat
avg-cpu: %user %nice %system %iowait %steal %idle
0.66 0.10 0.64 1.28 0.00 97.32
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 6.67 425.64 15.07 3304449 116973
scd0 0.00 0.01 0.00 66 0
[root@web1 xwk]#
块设备(磁盘)的状况 | |
---|---|
tps: | 每秒进程下发的IO读、写请求数量 |
kB_read/s: | 每秒从驱动器读入的数据量 |
kB_wrtn/s: | 每秒从驱动器写入的数据量 |
kB_read: | 读入数据总量 |
kB_wrtn: | 写入数据总量 |
free -m
Linux free命令用于显示内存状态。
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
[root@web1 xwk]# free -m
total used free shared buff/cache available
Mem: 976 573 69 3 333 190
Swap: 1024 46 978
[root@web1 xwk]#
Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。
top
-n 获取多次cpu的执行情况,top -n 4只更新4次
-d 间隔时间,top -4每4秒更新一次
-p 获取指定端口的进程的数据,top -p 4444
每隔一秒检测指定进程的cpu,检测20次
top -d 1 -n 20
检测指定pid的内存20次
for i in {1..20};do top -n 1 -d 1 -p 528|grep 528|awk '{print $11}';sleep 1;done
以上是关于❤️Linux性能统计分析❤️的主要内容,如果未能解决你的问题,请参考以下文章
❤️电商用户行为分析-FlinkJava重写版本,内附具体代码❤️,可以直接学习使用❤️建议收藏!
☀️Linux什么姿势最舒服?简单讲讲☀️嵌入式Linux入门