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

接收多少包,多少字节

发送多少包,多少字节

相关推荐
鲁正杰4 分钟前
在一个服务器上抓取 Docker 镜像并在另一个服务器上运行
运维·服务器·docker
F-2H30 分钟前
C语言:指针4(常量指针和指针常量及动态内存分配)
java·linux·c语言·开发语言·前端·c++
aherhuo34 分钟前
基于openEuler22.09部署OpenStack Yoga云平台(一)
linux·运维·服务器·openstack
WebDeveloper200137 分钟前
如何使用美国域名中心US Domain Center和WordPress创建商业网站
运维·服务器·css·网络·html
檀越剑指大厂1 小时前
【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较
linux·运维·服务器
2301_819287123 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la3 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息3 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20153 小时前
STUN服务器实现NAT穿透
运维·服务器
PieroPc4 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化