linux性能监控
最近公司设备升级,数据库服务器由AIX迁移到了linux,但是有些业务操作变慢了,所以除了分析数据库的瓶颈,也顺顺遍学了一下linux的内存,cpu,i/o的监控。下面看几个命令。
free
Mem: 内存,后面三列具体意思还没吃透
Swap:交换区,就是磁盘的空间,可以与内存交换,下面再详细说。
vmstat
首先讲几个概念
实际内存:RAM
交换空间:磁盘中的一块区域
页面调度:内存空闲时将它移到交换空间,这样就可以把空闲的RAM交给其他程序使用。
交换:常和页面调度混淆,页面调度是将一个进程所占内存的空闲部分传输到磁盘上,交换是系统中RAM不足时, 将整个进程传输到磁盘,交换意味着内存不足
swpd: 交换区大小,如果这个值很大,但是si,so很小,这时候并不是内存不足了,而是发生了页面调度
memory:如果free很小,但是si,so基本为0,则系统不受影响,linux为抢占内存式操作系统
buff:对块设备的读写缓冲
cache:
swap: si,so代表发生了交换,若这两个值很高的话,说明内存不足了,si磁盘调入内存,so内存调入磁盘
io:
in:cpu中断
cpu: us用户占比,sy系统占比,id空闲占比,wa等待占比
iostat
-c:显示cpu
-d:显示磁盘io
-k -m :以kb mb 显示
-x: 更详细的分析
tps:每秒像磁盘请求的次数
kb_read:取样时间间隔内读扇区总数量
top
分为三部分
第一部分:主要看一下cpu负载,load average后面的三个数字代表 1分钟,5分钟,15分钟的平均负载,参考值是 什么呢,cpu个数*单个cpu核心数,cat /proc/cpuinfo 查看cpu信息
第二部分:tasks任务数信息,cpu信息,内存信息
第三部分:
PR:进程优先级
NI:负值表示高优先级
VIRT:虚拟内存
RES:共享内存
SHR:进程使用的,未被换出的物理内存大小
%cpu:上次更新到现在cpu占的比例
%mem:内存所占比例
TIME:进程所占时间,单位为秒
TIME+:进程所占时间,单位为1/100秒