当前CPU内核版本
[root@VM-12-12-centos ~]# cat /proc/version
Linux version 3.10.0-1160.11.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Fri Dec 18 16:34:56 UTC 2020
当前系统版本
[root@VM-12-12-centos ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
1.监控系统cup使用率
1.1 top命令
使用top命令进入交互界面
us(未调优先级用户空间CPU使用时间)+sy(系统空间CPU使用时间)+ni(已调优先级用户空间CPU使用时间)=CPU总使用时间+id(CPU空闲时间)=100
交互界面下按t可切换CPU显示模式,一共有四种模式(一种是上面默认的模式,一种是不展示CPU信息,还有两种是以进度条直观展示CPU使用率)
1.2 vmstat命令
[root@VM-12-12-centos ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 1049596 87924 82352 373748 0 0 158 87 2 0 2 1 97 1 0
看CPU下的列
us(未调优先级用户空间CPU使用时间)+sy(系统空间CPU使用时间)=CPU总使用时间+id(CPU空闲时间)=100
用脚本监控CPU使用率
bash
function GetSysCPU
{
CpuIdle=`vmstat 1 5 |sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'`
# vmstat 1 5延迟一秒刷新一次,输出五次,sed -n '3,$p'输出第三行到最后一行,wk '{x = x + $15} END {print x/5}'五次idle加起来输出他的平均值,awk -F. '{print $1}'以.号为分隔符取第一个,相当于向下取整。
CpuNum=`echo "100-$CpuIdle" | bc`
echo $CpuNum
}
cpu=`GetSysCPU`
echo "The system CPU is $cpu"
if [ $cpu -gt 80 ]
then
{
echo "The usage of system CPU is larger than 80%"
}
else
{
echo "The usage of system CPU is normal"
}
fi
2.监控系统内存
2.1 top命令
KiB Mem : 1881852 total, 86764 free, 1354192 used, 440896 buff/cache
物理内存:总量, 可用量, 已使用量, 缓存使用量
KiB Swap: 1049596 total, 0 free, 1049596 used. 350700 avail Mem
虚拟内存:总量, 可用量, 已使用量, 物理内存使用估量
avail Mem对可用于启动新应用程序的物理内存的估计,而无需交换。
单位:KiB=kibibyte=1024字节
交互模式下可按m切换内存信息显示模式,一共有四种模式(一种是默认的模式,一种是不展示C内存信息,还有两种是以进度条直观展示内存使用率)
2.2 vmstat命令
bash
[root@VM-12-12-centos ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 1049596 96436 82824 348860 0 0 157 88 2 2 2 1 97 1 0
可以换个单位MB
bash
[root@VM-12-12-centos ~]# vmstat --unit M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 1024 83 104 328 0 0 157 88 2 2 2 1 97 1 0
swpd free buff cache
虚拟内存 内使用内存 缓冲区 缓存
2.3 free命令 (常用)
bash
[root@VM-12-12-centos ~]# free -m
total used free shared buff/cache available
Mem: 1837 1324 94 8 418 340
Swap: 1024 1024 0
-m为单位兆字节(MB)
total used free shared buff/cache available
总量 已使用量 未使用量 共享内存 缓存 可使用量
used=total - free - buffers - cache
available:估计有多少内存可用于启动新应用程序,而无需交换
3.监控系统磁盘
查看磁盘和分区信息
bash
[root@VM-12-12-centos ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 66.1M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
3.1 vmstat命令
查看磁盘读写和io信息
bash
[root@VM-12-12-centos ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
vda 31001516 1407976 4337818467 997533685 142297956 87336019 2425332505 242079159 0 71243
sr0 125 0 12440 57 0 0 0 0 0 0
------------reads------------
total :成功完成的读取总数
merged :分组读取(产生一个I/O)
sectors :扇区读取成功
ms :读取所花费的毫秒数
------------writes-----------
total :成功完成的写入总数
merged :分组写入(产生一个I/O)
sectors :扇区写入成功
ms:写入所花费的毫秒
-----IO------
cur :正在进行的I/O
sec :I/O花费的秒数
3.2 df命令(常用)
查看磁盘分区使用量
bash
[root@VM-12-12-centos ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 908M 0 908M 0% /dev
tmpfs tmpfs 919M 56K 919M 1% /dev/shm
tmpfs tmpfs 919M 99M 821M 11% /run
tmpfs tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 ext4 50G 26G 22G 56% /
tmpfs tmpfs 184M 0 184M 0% /run/user/0
overlay overlay 50G 26G 22G 56% /var/lib/docker/overlay2/d000eb495284c71a937e057fde5f6570b662df475dc9dad80548b2cb63422d63/merged
overlay overlay 50G 26G 22G 56% /var/lib/docker/overlay2/e15d41552c9b14a19a34ca0524178494eb3c6ef3d8d22375de23c1eb38e6cbea/merged
overlay overlay 50G 26G 22G 56% /var/lib/docker/overlay2/4367b43e6838548b8199eb41f0d393d89bf8af7af14f19493cf46088cf46b62a/merged
-h:更加人性化展示
-T:增加文件类型Type
Filesystem Size Used Avail Use% Mounted on
文件系统 总容量 使用量 可用量 使用百分比 挂载点
4.监控系统平均负载
4.1 uptime 监控系统平均负载
15:33:22 up 78 days, 23:00:截止当前时间15:33:22服务器已经不间断运行78天23:00小时
2 users:代表两个终端连接上了服务器,注意这里不代表两个用户在线,一个用户开两个命令窗口也是显示2。
load average: 0.03, 0.19, 0.31:分别代表1分钟,5分钟,15分钟的平均负载。
系统负载平均数是处于可运行或不可中断状态的进程的平均数。
处于可运行状态的进程是正在使用CPU或者等待使用CPU的进程。
处于不间断状态的进程是正在等待一些I/O访问,例如等待磁盘的进程。
负载平均值为1意味着单CPU系统一直处于加载状态,而在4 CPU系统上,这意味着75%的时间处于空闲状态。
查看CPU核心数命令:grep 'model name' /proc/cpuinfo | wc -l
5.监控系统网络信息
5.1 netstat命令
可用于 打印网络连接、路由表、接口统计信息、伪装连接和多播成员身份
查看tcp连接
netstat -ta
Proto Recv-Q Send-Q Local Address Foreign Address State
协议 接收字节 发送字节 本地地址 远程地址 状态
Local Address:除非指定--numeric(-n)选项,否则套接字地址将解析为其规范主机名称和端口号被翻译成相应的服务名称。
就是不指定情况下是 主机名:服务名 例如:VM-12-12-centos:http
0.0.0.0:41113 这种是本机地址41113端口
查看主机名称
[root@VM-12-12-centos ~]# cat /etc/hostname
VM-12-12-centos
State:
ESTABLISHED
套接字已建立连接。
SYN_SENT
套接字正在积极尝试建立连接。
SYN_RECV
已从网络接收到连接请求。
FIN_WAIT1
套接字已关闭,连接正在关闭。
FIN_WAIT2
连接已关闭,套接字正在等待远程端的关闭。
TIME_WAIT
套接字在关闭后等待处理仍在网络中的数据包。
CLOSE
套接字未被使用。
CLOSE_WAIT
远程端已关闭,正在等待套接字关闭。
LAST_ACK
远程端已关闭,并且套接字已关闭。正在等待确认。
LISTEN
套接字正在侦听传入的连接。
CLOSING
两个套接字都关闭了,但我们仍然没有发送所有数据。
UNKNOWN
套接字的状态未知。
查看udp连接
netstat -ua
5.2 ifconfig命令
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.12.12 netmask 255.255.252.0 broadcast 10.0.15.255
inet6 fe80::5054:ff:fe7f:b5bd prefixlen 64 scopeid 0x20<link>
ether 52:54:00:7f:b5:bd txqueuelen 1000 (Ethernet)
RX packets 138789549 bytes 35176997036 (32.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 145729310 bytes 36832664512 (34.3 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
网卡名字:正在运行
内网ipv4地址
接收多少包,多少字节
发送多少包,多少字节