在Linux系统中,可以通过多种命令和工具查看系统的运行情况,包括资源使用、进程状态、系统负载等。以下是一些常用的方法和命令,如何在Linux系统中快速查看资源使用和系统负载?,如何在Linux系统中一键掌握资源使用和系统负载?

前天 4461阅读
在Linux系统中,可以通过多种命令快速查看资源使用情况和系统负载,top命令提供实时动态的进程和资源监控,包括CPU、内存使用率及进程列表,htop是其增强版,支持交互式操作和彩色显示,free -h以易读格式显示内存和交换分区使用情况,df -h则查看磁盘空间占用,uptime命令简洁展示系统运行时间、用户数和平均负载,vmstatiostat分别报告虚拟内存状态和磁盘I/O统计,适合性能分析,nmon工具提供综合监控界面,而glances整合多类资源数据,这些命令结合使用,可全面掌握系统运行状态,便于快速排查问题或优化性能。

在Linux系统中,管理员可以通过多种命令实时监控系统运行状态。tophtop提供动态的进程资源视图,直观显示CPU/内存占用情况及进程排名;free -h快速查看内存使用情况,df -h分析磁盘空间利用率;uptime简洁展示系统负载平均值;vmstatiostat分别监控虚拟内存和I/O设备性能;ps -aux生成详细进程列表,netstatss检查网络连接状态,对于图形化界面用户,gnome-system-monitor提供友好的可视化监控体验,这些工具共同构成了Linux系统性能监测的核心手段,帮助管理员快速定位资源瓶颈。

系统整体状态概览

top / htop 实时监控工具

top 基础系统监控

top 是Linux系统中最经典的实时监控工具,能够全面展示系统的CPU、内存使用情况以及进程状态,是系统管理员的首选工具。

在Linux系统中,可以通过多种命令和工具查看系统的运行情况,包括资源使用、进程状态、系统负载等。以下是一些常用的方法和命令,如何在Linux系统中快速查看资源使用和系统负载?,如何在Linux系统中一键掌握资源使用和系统负载? 第1张

top

实用操作技巧

  • q 键退出监控界面
  • M 键按内存使用量降序排列进程
  • P 键按CPU使用率降序排列进程
  • 1 键展开显示所有CPU核心的详细使用情况
  • Shift + >Shift + < 切换排序字段
  • k 后输入PID可终止指定进程
  • z 切换彩色/黑白显示模式

htop 增强型监控工具

htoptop 的现代化替代品,提供了更友好的交互界面和更丰富的功能,支持鼠标操作和更直观的可视化展示。

安装方法:

sudo apt install htop  # Debian/Ubuntu系统
sudo yum install htop  # CentOS/RHEL系统
sudo dnf install htop  # Fedora系统

使用示例:

htop

htop优势特性

  • 彩色编码显示不同资源使用情况(CPU、内存、交换空间)
  • 支持鼠标操作,可直接点击选择进程进行操作
  • 垂直和水平滚动查看完整进程列表
  • 树状视图清晰展示进程父子关系
  • 更直观的CPU和内存使用率柱状图展示
  • 支持进程标记和批量操作
  • 可自定义显示列和排序方式

vmstat 虚拟内存统计

vmstat 命令提供关于系统虚拟内存、进程、CPU活动等的全面统计信息,特别适合分析系统整体性能瓶颈。

vmstat 1  # 每秒刷新一次数据
vmstat 5 3  # 每5秒刷新一次,共显示3次

输出字段解析

  • procs
    • r:运行队列中的进程数(若长期大于CPU核心数,说明CPU饱和)
    • b:等待IO的不可中断睡眠进程数
  • memory
    • swpd:使用的虚拟内存量(若持续增长可能需增加物理内存)
    • free:空闲内存量
    • buff:用作缓冲的内存
    • cache:用作缓存的内存
  • swap
    • si:每秒从磁盘读入内存量(swap in)
    • so:每秒从内存写入磁盘量(swap out,若持续大于0需警惕)
  • io
    • bi:块设备每秒接收的块数
    • bo:块设备每秒发送的块数
  • system
    • in:每秒中断数(包括时钟中断)
    • cs:每秒上下文切换数(过高会影响性能)
  • cpu
    • us:用户空间CPU时间占比
    • sy:内核空间CPU时间占比
    • id:空闲CPU时间占比
    • wa:IO等待时间占比(过高表示IO瓶颈)
    • st:虚拟机偷取时间(仅虚拟化环境)

uptime 系统运行时间

uptime 命令简洁地显示系统已经运行的时间、当前登录用户数以及系统负载平均值,是快速检查系统状态的便捷工具。

uptime

典型输出示例:

10:30:00 up 5 days,  2:10,  3 users,  load average: 0.15, 0.10, 0.05

负载平均值解读: 三个数字分别代表过去1分钟、5分钟和15分钟的系统平均负载,对于单核CPU系统,1.0表示完全利用;对于4核CPU,4.0表示完全利用,若15分钟负载远高于1分钟负载,可能表示负载正在下降;反之则表示负载正在上升。

专业建议

  • 负载平均值应结合CPU核心数评估
  • 长期高于CPU核心数的70%可能需要优化
  • 突然的负载飙升需要结合其他工具进一步分析
  • 可配合watch -n 1 uptime实时监控负载变化

CPU性能监控

mpstat 多核CPU分析

mpstatsysstat 工具包的一部分,专门用于监控多核CPU系统中每个核心的使用情况,能发现CPU负载不均衡问题。

安装 sysstat

sudo apt install sysstat  # Debian/Ubuntu
sudo yum install sysstat  # CentOS/RHEL

使用示例:

mpstat -P ALL 1  # 监控所有CPU核心,每秒刷新一次

关键指标

  • %usr:用户空间CPU使用率(应用程序消耗)
  • %nice:低优先级进程CPU使用率
  • %sys:内核空间CPU使用率(系统调用消耗)
  • %iowait:CPU等待IO操作的时间占比(高表示IO瓶颈)
  • %irq:硬件中断处理时间占比
  • %soft:软件中断处理时间占比
  • %idle:CPU空闲时间占比
  • %steal:虚拟化环境中被hypervisor偷取的时间(仅虚拟化环境)

分析建议

  • 某个核心持续高负载可能是单线程应用导致
  • %iowait需要结合IO工具进一步分析
  • %sys可能表示系统调用过多或内核有问题
  • 使用pidstat可关联进程与CPU使用情况

sar 系统活动报告

sarsysstat 工具包中的历史性能数据分析工具,能够收集、报告和保存系统活动信息,非常适合事后分析。

常用命令:

sar -u 1 3      # 查看CPU使用率,每秒1次,共3次
sar -q          # 查看系统负载
sar -r          # 查看内存使用情况
sar -b          # 查看IO和传输速率
sar -n DEV 1 3  # 查看网络设备统计

历史数据查看sar 默认每10分钟收集一次系统数据,可通过以下命令查看历史记录:

sar -f /var/log/sysstat/saXX  # XX代表日期

实用技巧

在Linux系统中,可以通过多种命令和工具查看系统的运行情况,包括资源使用、进程状态、系统负载等。以下是一些常用的方法和命令,如何在Linux系统中快速查看资源使用和系统负载?,如何在Linux系统中一键掌握资源使用和系统负载? 第2张

# 查看某天的CPU使用情况(24小时制)
sar -u -f /var/log/sysstat/sa15 -s 10:00:00 -e 16:00:00
# 生成PDF报告(需要额外工具)
sar -A | a2ps -o - | ps2pdf - sar_report.pdf

内存使用监控

free 内存状态查看

free 命令提供系统内存和交换空间的使用情况概览,帮助快速判断内存压力。

free -h  # 以人类可读格式显示(GB/MB)
free -m  # 以MB为单位显示
free -s 5  # 每5秒自动刷新

输出解读

  • total:物理内存总量
  • used:已使用内存(包括buffers/cache)
  • free:完全空闲内存
  • shared:多个进程共享的内存
  • buff/cache:被缓冲和缓存使用的内存
  • available:估算的可用内存(新版本,更准确)

重要提示: Linux会充分利用空闲内存作为缓存,因此看到free内存少不必惊慌,这是正常的内存优化机制,应主要关注available值,它表示真正可用于新应用的内存。

专业建议

  • available低于总内存10%时需警惕
  • 频繁的swap使用(si/so)表明物理内存不足
  • 使用-w选项可宽格式显示,避免换行

/proc/meminfo 详细内存信息

/proc/meminfo 文件提供了比 free 更详细的内存使用信息,适合深度分析内存问题。

cat /proc/meminfo

关键字段

  • MemTotal:总物理内存
  • MemFree:完全空闲内存
  • MemAvailable:估算的可用内存
  • Buffers:块设备缓冲内存
  • Cached:页面缓存内存
  • SwapCached:交换缓存
  • Active:最近使用的活跃内存
  • Inactive:非活跃内存(可回收)
  • SwapTotal:交换区总量
  • SwapFree:空闲交换区
  • Dirty:等待写回磁盘的内存
  • Writeback:正在写回磁盘的内存
  • Slab:内核数据结构缓存

分析技巧

# 监控内存变化
watch -n 1 "cat /proc/meminfo | grep -E 'MemTotal|MemFree|MemAvailable|Cached|Buffers|SwapTotal|SwapFree'"
# 计算已用内存(更准确)
used_mem=$(awk '/MemTotal/ {total=} /MemAvailable/ {avail=} END {print (total-avail)/1024 "MB"}' /proc/meminfo)

磁盘I/O监控

df 磁盘空间检查

df (disk filesystem) 命令显示文件系统的磁盘空间使用情况,是预防磁盘满问题的第一道防线。

df -h  # 人类可读格式
df -i  # 查看inode使用情况(防止inode耗尽)

常用选项

  • -a:显示所有文件系统(包括伪文件系统)
  • -T:显示文件系统类型
  • -x:排除特定类型的文件系统
  • --total:显示总计行
  • -t:只显示指定类型的文件系统

实用示例

# 按使用率排序
df -h | sort -k5 -rh
# 只显示真实磁盘(排除tmpfs等)
df -h -x tmpfs -x devtmpfs

du 目录空间分析

du (disk usage) 命令用于估算文件和目录的磁盘使用量,帮助定位大文件。

du -sh /var/log  # 查看/var/log目录总大小
du -h --max-depth=1 /home  # 查看/home下各一级目录大小

实用技巧

# 查找当前目录下最大的10个文件
du -ah | sort -rh | head -n 10
# 查找指定目录下大于100MB的文件
find /path/to/dir -type f -size +100M -exec du -h {} + | sort -rh
# 排除特定目录分析
du -h --exclude="*.iso" --max-depth=1 /

iostat 磁盘I/O统计

iostat 提供详细的设备级IO性能统计,是分析磁盘性能瓶颈的利器。

iostat -x 1  # 显示扩展IO统计,每秒刷新

关键指标

  • %util:设备利用率(接近100%表示设备饱和)
  • await:平均IO等待时间(毫秒,高表示设备慢)
  • svctm:平均服务时间(毫秒)
  • r/sw/s:每秒读写操作数
  • rkB/swkB/s:每秒读写数据量(KB)
  • aqu-sz:平均请求队列长度
  • rareq-sz:读请求平均大小
  • wareq-sz:写请求平均大小

分析建议

  • %util高但吞吐量低可能表示设备有问题
  • await远高于svctm表示设备饱和
  • 结合pidstat -d可找出高IO进程

iotop 实时IO监控

iotop 类似于 top,但专门用于监控磁盘IO使用情况,可实时查看哪些进程正在大量读写磁盘。

安装:

sudo apt install iotop  # Debian/Ubuntu
sudo yum install iotop  # CentOS/RHEL

使用:

sudo iotop -o  # 只显示实际有IO活动的进程

交互命令

  • 左右箭头:改变排序字段
  • r:反转排序顺序
  • o:只显示有IO活动的进程
  • p:显示进程的线程
  • a:显示累计IO而不是带宽
  • q:退出

输出列说明

在Linux系统中,可以通过多种命令和工具查看系统的运行情况,包括资源使用、进程状态、系统负载等。以下是一些常用的方法和命令,如何在Linux系统中快速查看资源使用和系统负载?,如何在Linux系统中一键掌握资源使用和系统负载? 第3张

  • TID:线程ID
  • PRIO:优先级
  • USER:进程所有者
  • DISK READ:磁盘读取速率
  • DISK WRITE:磁盘写入速率
  • SWAPIN:swap使用百分比
  • IO>:IO使用百分比
  • COMMAND:命令名

网络性能监控

netstat / ss 网络连接分析

netstat 是传统的网络统计工具,ss 是其更快速的现代替代品,用于分析网络连接状态。

netstat -tulnp  # 查看监听中的TCP/UDP端口及对应进程
ss -tulnp       # 功能相同但更高效

常用选项组合

  • -t:TCP连接
  • -u:UDP连接
  • -l:监听中的端口
  • -n:显示数字地址(不解析主机名)
  • -p:显示进程信息
  • -a:显示所有连接
  • -s:显示统计摘要
  • -i:显示网络接口统计
  • -o:显示计时器信息

实用示例

# 查看ESTABLISHED状态的TCP连接
ss -t state established
# 统计各种状态的连接数
ss -s
# 查看进程使用的端口
ss -plnt | grep nginx

iftop 实时流量监控

iftop 提供类似 top 的界面,但用于监控网络流量,可实时显示各连接的带宽使用情况。

安装:

sudo apt install iftop  # Debian/Ubuntu
sudo yum install iftop  # CentOS/RHEL

使用:

sudo iftop -i eth0  # 监控指定网卡
sudo iftop -nN  # 禁用主机名解析和端口服务名

交互命令

  • P:暂停显示
  • h:帮助
  • n:开启/关闭主机名解析
  • s:显示源端口
  • d:显示目标端口
  • t:切换显示格式(单行/两行/三行)
  • j/k:向上/向下滚动连接列表
  • l:设置屏幕过滤表达式

输出说明

  • 中间部分:实时流量条形图
  • 右侧三个数字:过去2s/10s/40s的平均流量
  • TX:发送流量
  • RX:接收流量
  • TOTAL:总流量

nload 网卡带宽监控

nload 提供简洁的实时网络带宽使用情况展示,适合快速查看网络负载。

安装:

sudo apt install nload  # Debian/Ubuntu
sudo yum install nload  # CentOS/RHEL

使用:

nload eth0  # 监控指定网卡
nload -m  # 合并所有设备的总流量
  • 当前下载/上传速率
  • 平均速率
  • 最小/最大速率
  • 总传输量
  • 流量柱状图

交互命令

  • 左右箭头:切换监控的网卡
  • F2:显示选项菜单
  • q:退出

进程管理与分析

ps 进程状态查看

ps 命令提供当前进程的快照信息,是进程分析的基础工具。

ps aux | grep nginx  # 查找nginx相关进程
ps -ef --forest     # 树状显示进程关系

常用选项

  • a:显示所有用户的进程
  • u:显示详细用户信息
  • x:包括没有控制终端的进程
  • -e:显示所有进程
  • -f:完整格式输出
  • --sort:按指定字段排序
  • -o:自定义输出列
  • -L:显示线程信息

高级用法

# 自定义输出格式
ps -eo pid,ppid,user,%cpu,%mem,cmd --sort=-%cpu | head
# 查看进程的线程
ps -eLf | grep nginx
# 查看进程的环境变量
ps eww -p PID

pstree 进程树展示

pstree 以树状结构显示进程间的父子关系,直观展示进程层次结构。

pstree -p  # 显示包括PID的进程树
pstree -a  # 显示完整命令行
pstree -h  # 高亮当前进程及其祖先

常用选项

  • -n:按PID排序而不是按名称
  • -u:显示用户切换
  • -G:使用VT

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]