三剑客实战Linux性能统计分析(1)
从cpu到内存再到硬盘,性能分析常用命令
- uptime
- dmesg
- vmstat
- mpstat
- pidstat
- iostat
- free -m
- top
目标:掌握这些命令共有的参数,比如cpu的信息:包括用户的、核心程序的、cpu空闲时间
宏观角度下的命令
uptime:开机时间,包括负载的东西
mpstat:(mutiprocesser) 多核cpu的状态;与top区别,top只能显示出总的
vmstat:( virtualmemeory)虚拟内存信息使用情况
free -m和top很像,不过有一些自有的命令 比如可以查看历史的状态,并且top会覆盖掉之前的信息,而free不会
iostat:io状态;⚠️磁盘其实也是io
demsg:查看操作系统日志信息
pidstat:进程的唯一标识状态;可以直接锁死进程,直接查看某个进程的状态
因为linux系统不一样,命令可能存在一些差异,但是都大同小异,因此有的命令不支持的话,可以直接通过百度查看支持的命令
uptime
开机125天,共12个用户在用
如果这个数目0.52,1.26,。。越来越大数目,说明cpu承载的压力越来越大,或者压力过大,进程排队的数量在增加
一般来说,每个cpu内核当前活动进程数不大于3,则系统表现良好;如果是多核cpu,需要累加,4核cpu<12
多核cpu分布,有的系统可能48个cpu在一个电路板上,有的分布在4个板子上;放在一个板子上的沟通效率会更高一些
demsg|tail

记住是dmesg,dmesg|tail 20 从尾部筛选,从头筛选用head
vmstat

虚拟内存状态
vmstat 1 (每隔一秒打印一次)
r:正在运行队列中进程数量;
b:等待IO的进程数量,一般不怎么用;学会用man vmstat查看参数信息
swpd:使用虚拟内存大小;
free:可用内存大小
buff、cache很重要的概念
buff:用做缓冲的内存大小
cache:用做缓存的内存大小
us:用户进程执行时间(user time)
sy:系统进程执行时间(system time)
id:空闲时间(包括IO等待时间),中央处理器的空闲时间
wa:等待IO时间
什么是物理内存、虚拟内存、分页,以下:
1.当运行大的游戏时,内存会借用磁盘的空间,如下图: 虚拟内存+内存来运行16g大软件
2.而 cache为了弥补cpu访问内存速度的不足的鸿沟;cache是速度快于内存的,但是容量小
3.内存和磁盘之间需要一个缓冲带,因此需要buff;未来buff和cache哪一个可能可以取消掉的?是cache,因为内存可以做到和cpu运行速度一样快的时候
4.分页就是把磁盘上的东西变成虚拟内存