惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
MyScale Blog
MyScale Blog
博客园 - Franky
The Cloudflare Blog
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
WordPress大学
WordPress大学
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
Martin Fowler
Martin Fowler
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
腾讯CDC
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
博客园 - 【当耐特】
美团技术团队
云风的 BLOG
云风的 BLOG

博客园 - xiashengwang

Rocky Linux 9 安装docker Rocky Linux 9 与Centos区别,以及软件安装dnf命令 《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器 Linux服务器安全登录:从入门到实践 putty 基础 《Linux 基础点滴》:(16)firewalld 防火墙管理命令 《Linux 基础点滴》:(15)用户管理 – 创建、删除、权限与 sudo 《Linux 基础点滴》:(14)定时任务 – 用 crontab 自动化 《Linux 基础点滴》:(13)文本编辑入门 – 使用 Vim 《Linux 基础点滴》:(12)tldr – 简化版命令手册 《Linux 基础点滴》:(10)压缩与打包 – tar 的艺术 《Linux 基础点滴》:(9)查找与过滤 – find, grep, 管道 《Linux 基础点滴》:(8)网络基础 – 查看 IP、连通性与端口 《Linux 基础点滴》:(7)进程管理 – 查看与控制运行中的程序 《Linux 基础点滴》:(6)文件权限与所有者 – 保护你的文件 《Linux 基础点滴》:(5)文件与目录操作 – 增删改查必会命令 《Linux 基础点滴》:(4)磁盘空间查看 – df 和 du 的妙用 《Linux 基础点滴》:(3)Linux 文件系统概览 – 一切皆文件 《Linux 基础点滴》:(2)SSH 连接与基础命令 – 从登录到第一次操作 《Linux 基础点滴》:(1)初识 Linux 大家族 – 发行版分类与选择 docker学习(7)-docker compose 文件 docker学习(11)- 容器的日志(log) docker学习(10)-利用Github Action 自动化部署 docker学习(9)-Docker Swarm + Nginx 跨机器负载均衡 docker学习(8)-从 Windows 开发到 Linux 部署 docker学习(6)-数据持久化与网络通信 学会 Git Tag,让版本管理不再混乱 docker学习(5)-Dockerfile docker学习(4)-Docker常用命令 docker学习(3)-一个简单的例子
《Linux 基础点滴》:(11)系统信息与资源监控 – 掌握服务器...
xiashengwang · 2026-04-21 · via 博客园 - xiashengwang

2026-04-21 17:31  xiashengwang  阅读(6)  评论()    收藏  举报

第 11 篇:系统信息与资源监控 – 掌握服务器状态

学习目标

  • 查看内存、CPU、磁盘、系统负载等关键指标
  • 学会使用 free, lscpu, uptime, uname
  • 编写简单的监控脚本

核心概念

内存查看

free -h
# 重点:available 列表示可用于启动新应用的物理内存(不含 swap)

CPU 信息

lscpu                # 显示架构、核心数、线程数
nproc                # 显示可用的处理单元数
cat /proc/cpuinfo | grep "processor" | wc -l   # 等效

系统负载与运行时间

uptime
# 输出:10:30:01 up 2 days,  load average: 0.08, 0.03, 0.01
# 负载分别表示 1分钟、5分钟、15分钟的平均活跃进程数(可大于核心数)

显示当前登录到系统的用户

who
# 输出:10:30:01 up 2 days,  load average: 0.08, 0.03, 0.01
# USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
# root     tty1                      04Apr24 746days  0.04s  0.04s -bash
# root     pts/0    222.212.86.154   16:48    3.00s  0.05s  0.00s w

内核与发行版信息

uname -a
# Linux centos 3.10.0-1160.el7.x86_64 #1 SMP ... x86_64

动手实验

实验 1:实时监控脚本

#!/bin/bash
# monitor.sh
echo "=== $(date) ==="
echo "Uptime: $(uptime)"
echo "Memory: $(free -h | grep Mem)"
echo "Disk /: $(df -h / | tail -1)"
echo "CPU load: $(top -bn1 | grep "load average" | awk '{print $10 $11 $12}')"

保存后 chmod +x monitor.sh,运行 ./monitor.sh

实验 2:使用 vmstat 看系统瓶颈

vmstat 1 5     # 每秒一次,共 5 次
# 关注:si/so(swap 换入换出),us/sy(用户态/内核态 CPU 占比)

常见错误

  • free 中的 buff/cache 是缓存,可被回收,不应算作已用内存
  • 负载值大于 CPU 核心数通常表示过载

思考题

  1. 如何判断系统是否正在使用 swap?
  2. 写一行命令,每秒输出一次内存使用率。