❤️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]#

参考

vmstat:一个标准的报告虚拟内存统计工具

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性能统计分析❤️的主要内容,如果未能解决你的问题,请参考以下文章

❤️动图分析编程语言 16 年变化❤️

❤️电商用户行为分析-FlinkJava重写版本,内附具体代码❤️,可以直接学习使用❤️建议收藏!

☀️Linux什么姿势最舒服?简单讲讲☀️嵌入式Linux入门

☀️Linux什么姿势最舒服?简单讲讲☀️嵌入式Linux入门

⭐️ 有趣小代码 ⭐️ Linux 登录显示佛主保佑

⭐️ 有趣小代码 ⭐️ Linux 登录显示佛主保佑