收集和验证Linux下查看监控系统CPU 和 MEM信息的方法。
CPU信息查看
温度
sudo apt-get install lm-sensors # 安装
yes | sudo sensors-detect # 侦测所有感测器
sensors # 查看温度
查看实时的温度
电源功率
dmidecode | grep Power
看System Power Supply,有几个电源就有几个Power Unit Group。
静态信息和实时频率
查看cpu信息:
cat /proc/cpuinfo
其中cpu MHz是动态的,其他是静态的。
查看CPU运行在多少位下的命令:
getconf LONG_BIT
使用率
查看CPU 运行的各种类型任务数量和时间:
cat /proc/stat
用来计算cpu的利用率。
CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间,三者之和就是CPU的总时间,当没有用户进程、系统进程等需要执行的时候,CPU就执行系统缺省的空闲进程。
CPU的利用率就是非空闲进程占用时间的比例,即CPU执行非空闲进程的时间 / CPU总的执行时间。
上面的一行分别表示:
user:从系统启动开始累计到当前时刻,用户态的CPU时间,不包含nice值为负进程。
nice : 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间
system: 从系统启动开始累计到当前时刻,核心时间
idle:从系统启动开始累计到当前时刻,除IO等待时间以外其它等待时间
iowait:从系统启动开始累计到当前时刻,IO等待时间
irq:从系统启动开始累计到当前时刻,硬中断时间
softirq:从系统启动开始累计到当前时刻,软中断时间
CPU的即时利用率计算:
CPU在t1到t2时间段总的使用时间 = ( user2+ nice2+ system2+ idle2+ iowait2+ irq2+ softirq2) - ( user1+ nice1+ system1+ idle1+ iowait1+ irq1+ softirq1)
CPU在t1到t2时间段空闲使用时间 = (idle2 - idle1)
CPU在t1到t2时间段即时利用率 = 1 - CPU空闲使用时间 / CPU总的使用时间
- top
top
实时监控运行所有进程的运行状态,包含CPU 、存储的占用率。
-
atop
和top类似
-
htop
类似top、atop -
dstat
dstat
实时的监控cpu、磁盘、网络、IO、内存等每秒的使用情况。
直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔,如dstat 5是没5s显示一条,dstat 5 10表示没5s显示一条,一共显示10条。
查看内存使用情况
cat /proc/meminfo
可以看到当前内存使用的详细情况
-
vmstat
主要是查看存储的使用情况
-
sar
sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,看所有cpu的使用情况 -
free
free -h
查看内存使用情况
- memstat
查看每一个文件和程序占用的大小
综合工具
-
nmon
实时动态显示,可以看cpu、memory、kernel等,是一个字符界面的工具。
-
gnome-system-monitor
gnome的图形化系统监视器 -
ps
ps aux | sort -rss
比较常用的命令
- smem
其他工具
dmidecode: Linux硬件信息查看工具,可以看到系统所有的硬件信息,不过不太详细。