监控系统状态
- w/uptime 查看系统负载
- cat /proc/cpuinfo 查看cpu核数
- vmstat 监控系统状态
- 用法vmstat 1
关键的几列:r,b,swpd,si,so,bi,bo,us,wa
top 查看进程使用资源情况
- top -c 显示详细的进程信息
- top -bn1 静态显示所有进程
- q退出,数字1显示所有核cpu,大写字母M按内存排序
- 大写字母P按cpu使用排序
一、使用w查看系统负载
w命令
w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
查看系统负载(w)
[root@aming01 ~]# w
22:09:19 up 0 min, 1 user, load average: 0.55, 0.13, 0.04
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.0.101 22:09 5.00s 0.02s 0.01s w
第一行从左边开始显示的信息依次是:时间,系统运行时间,登录用户数,平均负载(1min平均负载、5min平均负载、15min平均负载)。
load average:平均负载,即单位时间内CPU活动进程数,这个值越大说明服务器压力越大,一般该值不超过cpu数量就可以。(0也不好,空跑,最理想状态看你有几个CPU,逻辑CPU)
查看服务器CPU数量有几个,命令:cat /proc/cpuinfo
查看processor项,如果是0,那就表示为一颗,如果为1,就2颗,逻辑CPU。
[root@aming01 ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
stepping : 9
microcode : 0x70
cpu MHz : 3400.000
cache size : 6144 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
uptime命令
uptime命令能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
注: uptime得到的信息和w第一行结果是一样的。
二、vmstat
vmstat 静态显示内存状态一次。
[root@aming01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 1264800 2076 134300 0 0 12 1 45 46 0 0 100 0 0
vmstat n 以n秒每次的频率动态显示内存状态
vmstat n m 每n秒显示一次,显示m次后命令结束
[root@aming01 ~]# vmstat 1
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 0 1264940 2076 134332 0 0 12 1 45 46 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 48 46 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 36 31 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 42 38 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 1 43 42 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 50 42 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 38 33 0 0 100 0 0
^C
[root@aming01 ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 1264940 2076 134332 0 0 12 1 45 46 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 52 51 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 39 36 0 0 100 0 0
0 0 0 1264924 2076 134332 0 0 0 0 40 34 0 1 99 0 0
0 0 0 1264924 2076 134332 0 0 0 0 45 41 0 0 100 0 0
[root@aming01 ~]#
- proc 显示进程相关信息
r:=run,表示运行中或等待cpu运行的进程数,如果该数长期大于服务器CPU个数,则说明CPU不够用了。
b:表示等待资源的进程数。进程被CPU以外的资源,如硬盘网络等阻断了,如,等待I/O,内存等,这列的值如果长时间大于1,则需要关注一下。 - proc 显示进程相关信息
r:=run,表示运行中或等待cpu运行的进程数,如果该数长期大于服务器CPU个数,则说明CPU不够用了。
b:表示等待资源的进程数,如,等待I/O,内存等,这列的值如果长时间大于1,则需要关注一下。 - memory 内存相关信息
swpd:表示切换到交换分区的内存量(当该数据不断变化时说明内存不足)
free:表示当前空闲的内存量
buff:缓冲大小
cache:缓存大小 - swap 内存交换情况
si:=storage in,表示交换区写入到内存的数据量,有多少KB的数据从SWAP进入到内存中。
so:=storage out,表示由内存写入到交换区的数据量,有多少KB的数据从内存出来 - io 磁盘使用情况
bi:=block in,表示从块设备读取数据(写入内存)的量(即:读磁盘),从磁盘出来到内存里去
bo:=block out,表示(从内存读取)写入到块设备的数据(即:写磁盘)
注: 此处数据会直接关系到proc出的b的值。 - system 显示采集间隔内发生的中断次数
in:表示在某一时间间隔中观测到的每秒设备中断数
cs:表示每秒产生的上下文切换次数 - CPU 显示CPU的使用状态(us+sy+id=100%)
us:表示用户资源所花费CPU的百分比(当该值长时间>20、30时说明CPU数量不足,10以内比较好)
sy:表示系统资源所花费CPU的百分比
id:表示CPU处于空闲状态的百分比
wa:=wait,表示等待使用CPU的百分比(该数值大说明CPU不足)
st:表示被偷走的CPU所占百分比(该值一般为0,不用关注)