Linux 监控命令 top


原文链接: Linux 监控命令 top

iotop

iotop -o 查看负载较高的 io

主要选项有:
-o : 只显示有 io 操作的进程
-b : 批量显示,无交互。主要用作记录到文件。
-n NUM: 显示 NUM 次,主要用于非交互式模式。
-d SEC:刷新时间
-p PID: 监控的指定进程 pid
-u USER: 监控的指定用户。

TOP

c:显示进程命令的全路径与参数
H:显示线程,默认只显示进程
输入大写 P,则结果按 CPU 占用降序排序。
输入大写 M,结果按内存占用降序排序。
输入 1 查看每个 cpu 的负载情况
A:分类显示各种系统资源高的进程。
65.7%wa, 0.0%hi, 3.4%si, 0.0%st 等待 IO 的 CPU 时间百分比,最后三个是中断请求相关

物理机的基本信息:
1、查看 CPU 信息

# 查看 cpu 负载
'uptime'
# cpu 使用率  (没有 sar 则 yum -y install sysstat)
'sar 1 1'    'top bn1 |grep %Cpu'
# 每个 cpu 使用率
'sar -P ALL 1 1'    'top 后按 1,可动态查看'  # top bn1     top n1

# 查看 cpu 个数、频率、型号、厂商等详细信息
'cat /proc/cpuinfo'    'lscpu'
# 获取 cpu 名称与主频
cat /proc/cpuinfo | grep 'model name'  | cut -f2 -d: | head -n1 | sed 's/^ //'
# 获取逻辑核数
cat /proc/cpuinfo | grep 'model name'  | wc -l
# 获取物理核数
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
# 查看 cpu 的 flags
cat /proc/cpuinfo | grep flags | uniq | cut -f2 -d : | sed 's/^ //'
# 是否打开超线程(检查 physical id * cpu cores 与 processor 的比例 1:1 为未开启)
cat /proc/cpuinfo

CPU 负载‘load average: 0.02, 0.04, 0.05’,具体指的什么意思?
以单核 CPU 说明:

0.02, 0.04, 0.05 是 1 分钟、5 分钟、15 分钟内系统的平均负荷

假设:CPU 每分钟最多处理 100 个进程

当负荷 0.2,则 CPU 在这 1 分钟里只处理 20 个进程
当负荷 1.0,则 CPU 在这 1 分钟里正好处理 100 个进程
当负荷 1.7,则 CPU 正在处理的 100 个进程以外,还有 70 个进程正排队等着 CPU 处理
很显然:单核的话,1.0 是一个关键值,当这个值达到 0.7,就应当引起注意。问题出在哪里,防止情况恶化
当负荷达到 5.0,就表明你的系统有很严重的问题

详细说明 Linux 系统负荷
2、内存、硬盘信息

内存信息

'cat /proc/meminfo'

内存使用

'free -m'

内存使用率

'sar -r 1 1'

磁盘容量、使用率

'df -hT'

3、网络相关信息

物理网卡个数

'lspci |grep Ethernet |wc -l'

每块网卡信息

'lspci |grep Ethernet'

网卡 IP

ip addr |grep "inet.*brd" |grep -E "eth|en| br0"

默认网关

route -n |grep '^0.0.0.0' | awk '{print $2}'

DNS 信息

'cat /etc/resolv.conf |grep ^nameserver'

4、操作系统信息,其他信息

OS 版本信息

'cat /etc/issue' 'uname -a'

cat /proc/version
cat /proc/stat

由 md 设备驱动程序控制的 RAID 设备信息

cat /proc/mdstat

可加载内核模块的信息

cat /proc/modules

查看命令属于哪个安装包:
安装机器上:

例如,sar 命令没有,需要安装那个包。找一个有 sar 命令的机器。

[root@localhost ~]# which sar # 查找命令路径
/usr/bin/sar
[root@localhost ~]# rpm -qf /usr/bin/sar # rpm 命令查看安装包
sysstat-10.1.5-7.el7.x86_64

“rpm-qf” 命令查询命令文件所属的软件包,rpm 命令要以命令文件的全路径为参数

未安装机器上:

例如:route 命令,需要安装哪个包

yum whatprovides */ 命令名 (联网查找,显示信息多,需要筛选)

[root@localhost ~]# yum whatprovides */route

`