linux监控系统资源命令

当前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地址

接收多少包,多少字节

发送多少包,多少字节

相关推荐
打败4042 分钟前
nginx_shell脚本扩展配置虚拟主机三种方式
运维·nginx·docker·flask
3分云计算5 分钟前
一.Oracle每日运维操作
运维
IOT.FIVE.NO.19 分钟前
Linux实操笔记2 Ubuntu安装Nginx的不同方法
linux·笔记·ubuntu
geekrabbit1 小时前
Ubuntu 22.04上安装Python 3.10.x
linux·python·ubuntu
大鹅同志1 小时前
在服务器上开Juypter Lab教程(远程访问)
运维·服务器·pytorch·jupyter·cuda·云服务器
ID_14 HuFei2 小时前
sed编辑器与awk的用法
linux·编辑器
文牧之2 小时前
PostgreSQL的walsender和walreceiver进程介绍
运维·数据库·postgresql
驯龙高手_追风2 小时前
Ubuntu下安装最新版本Apache2文件服务器
linux·服务器·ubuntu
炸裂狸花猫2 小时前
Linux技术04-IPVS
linux·运维·服务器
快快小毛毛2 小时前
CC攻击防御策略要怎么调整?使用游戏盾有效解决
运维·服务器·网络·tcp/ip·游戏·udp