Skip to content
Menu
万别客的百宝袋
  • 首页
  • Linux命令|知识
  • 编程语言知识
    • Java
    • Mysql
万别客的百宝袋

Linux系统下的CPU、内存、以及网络的使用情况

Posted on 2024年 8月 13日2024年 8月 13日

内存使用情况:

free -m

-m的意思是用MB的方式显示内存大小

CPU使用率:

top
指定行:top -bn1 | grep "Cpu(s)" ,-bn1 仅输出一次

网络相关:

查看网口:ip -o -4 route show to default | awk '{print $5}'

ip: 这是一个用于显示和操作路由、网络设备、隧道和其他网络接口的命令。
-o: 以单行输出格式显示结果(oneline)。
-4: 仅显示IPv4路由。
route show to default: 显示到默认网关的路由信息。

本机测试的话可以: echo $(ip -o -4 route show to default | awk '{print $5}')

下行流量查看:cat /sys/class/net/$network_interface/statistics/rx_bytes
上行流量查看: cat /sys/class/net/$network_interface/statistics/tx_bytes
其中,$network_interface为网口,rx_bytes是接收的流量,也就是下行流量,tx_bytes是上传的流量,也就是上行流量,单位为MB


命令和一些解释:

获取内存使用情况

memory_usage=$(free -m | awk 'NR==2{printf "内存使用率: %.2f%%\n", $3*100/$2 }')

这段代码的作用是获取内存使用率,并将其格式化为百分比。具体步骤如下:

  1. free -m:显示系统的内存使用情况,以MB为单位。
  2. awk 'NR==2{printf "内存使用率: %.2f%%\n", $3*100/$2 }':处理free -m的输出,NR==2表示只处理第二行(即物理内存的使用情况),$3表示已使用的内存,$2表示总内存,$3*100/$2计算内存使用率,并格式化为百分比。

获取CPU使用率

cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print "CPU使用率: " 100 - $8 "%"}')

这段代码的作用是获取CPU使用率,并将其格式化为百分比。具体步骤如下:

  1. top -bn1:以批处理模式运行top命令,并仅输出一次。
  2. grep "Cpu(s)":过滤出包含CPU使用情况的行。
  3. awk '{print "CPU使用率: " 100 - $8 "%"}':处理top的输出,$8表示空闲CPU百分比,100 - $8计算CPU使用率,并格式化为百分比。

top命令的一些解释

在top命令的输出中,%Cpu(s)行显示了CPU的使用情况。各个字段的含义如下

%Cpu(s): 12.5 us, 12.5 sy, 0.0 ni, 68.8 id, 0.0 wa, 0.0 hi, 0.0 si, 6.2 st

其中%Cpu(s)是1,12.5是2,us是3……以此类推,用于$参数的使用,如

top -bn1 | grep “Cpu(s)” | awk ‘{print “CPU使用率: ” 100 – $8 “%”}’

  • us (user): 用户空间占用的CPU百分比
  • sy (system): 内核空间占用的CPU百分比
  • ni (nice): 改变过优先级的进程占用的CPU百分比
  • id (idle): 空闲CPU百分比
  • wa (iowait): 等待I/O操作的CPU百分比
  • hi (hardware interrupts): 硬件中断占用的CPU百分比
  • si (software interrupts): 软件中断占用的CPU百分比
  • st (steal time): 被其他虚拟机占用的CPU百分比
2024年 8月 13日
2024年 8月 13日
Brother_Wan
©2026 万别客的百宝袋