,---,Linux下监控计算机性能,你的系统军火库,在Linux环境中,有效监控计算机性能是确保系统稳定、流畅运行以及快速定位问题的关键,掌握一系列强大的命令行工具,就如同拥有了一个功能全面的“系统军火库”,从基础的top
和htop
开始,它们提供了实时的CPU、内存使用情况概览,直观地展示进程状态,vmstat
和iostat
则深入揭示虚拟内存、系统进程、磁盘I/O等关键指标,帮助识别瓶颈,网络监控方面,netstat
、ss
和dstat
能提供详尽的网络连接、端口状态和流量统计,sar
(System Activity Reporter)可以收集并报告历史性能数据,而glances
等工具则提供了更友好的图形化或跨平台的监控界面,通过熟练运用这些工具,管理员和开发者能够全面掌握系统健康状况,进行容量规划、性能调优,并在问题发生时迅速响应,保障服务的连续性和效率。
本文目录导读:
基础监控:先看看系统都在干啥
1 用 top
看系统“实时监控”
top
是Linux下最经典的性能监控工具,打开后就像一个实时仪表盘,显示CPU、内存、进程等信息。
怎么用?
直接在终端输入 top
就能启动。
怎么看?
- 第一行:系统时间、当前运行任务数、系统负载(Load Average,过去1、5、15分钟的平均负载)
- 第二行:任务总数、运行数、睡眠数、停止数、僵尸数
- 第三行:CPU使用情况,用户进程、系统进程、空闲、等待I/O等占比
- 第四行:内存使用情况,物理内存、交换内存、缓存等
案例:
假设你发现服务器变慢,打开 top
发现 load average
是 5.0,而服务器只有4个CPU核心,说明系统负载过高,可能有进程在疯狂占用资源。
2 用 htop
更直观
htop
是 top
的升级版,界面更友好,支持鼠标操作,还能高亮显示异常进程。
怎么安装?
sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL
怎么用?
输入 htop
,按 F3
可以搜索进程,按 F6
可以按内存或CPU排序,按 F9
可以杀死进程。
3 查看CPU和内存使用情况
vmstat
命令
vmstat 1 # 每秒刷新一次,共刷新5次
输出包括:
r
:正在运行的进程数b
:处于不可中断状态的进程数swpd
:虚拟内存使用量free
:空闲内存buff/cache
:缓存使用的内存
案例:
swap
使用量很高,说明物理内存不足,系统在用硬盘空间当内存,速度会变慢。
深入诊断:磁盘、网络、进程全都要看
1 磁盘I/O监控
iostat
命令
sudo apt install sysstat # 先安装sysstat包 iostat -d 2 # 每2秒查看一次磁盘I/O
输出包括:
sda
:磁盘名称kB_read/s
:读取速度kB_wrtn/s
:写入速度
案例:
如果你在备份文件时发现系统卡顿,运行 iostat
发现某个磁盘读写速度异常高,说明I/O瓶颈出现了。
2 网络性能监控
netstat
和 iftop
netstat
查看网络连接状态:
netstat -tuln # 查看TCP/UDP监听端口
iftop
实时监控网络流量:
sudo apt install iftop iftop -i eth0 # eth0是网卡名称
它会显示每个连接的实时流量,哪个IP在疯狂下载上传一目了然。
案例:
发现服务器带宽被异常占用,用 iftop
发现有个内部进程在偷偷下载东西,赶紧杀掉!
3 进程资源监控
ps
命令
ps aux | sort -k4 -nr # 按CPU使用率排序 ps aux | sort -k5 -nr # 按内存使用率排序
pmap
查看进程内存映射
pmap -d PID # 查看指定进程的内存使用情况
自动化监控:用 sar
做历史记录
sar
是Sysstat包的一部分,可以记录系统性能数据并生成报告。
安装:
sudo apt install sysstat
配置:
编辑 /etc/default/sysstat
,确保 ENABLED="true"
,然后重启 sysstat
服务:
sudo systemctl restart sysstat
查看历史数据:
sar -u # CPU使用率 sar -r # 内存使用率 sar -d # 磁盘I/O
案例:
你发现每天凌晨系统负载突然升高,用 sar
查看历史记录,发现是某个定时任务在高峰时段运行,调整时间后问题解决。
图形化工具:不想敲命令?试试这些
1 glances
:全能监控神器
安装:
pip install glances
使用:
glances
它会显示CPU、内存、磁盘、网络、进程等所有关键指标,界面美观,支持插件扩展。
2 nmon
:IBM的监控利器
安装:
sudo apt install nmon
使用:
nmon
按 F1
查看系统概览,按 F2
查看CPU,按 F3
查看内存,按 F5
查看磁盘,按 F10
退出。
常见问题问答
Q1:如何查看系统负载?
A:用 uptime
或 top
的第一行,Load Average 表示系统平均负载。
Q2:如何查看内存使用情况?
A:用 free -h
或 htop
。
Q3:如何查看哪个进程占用了大量CPU?
A:用 top
或 htop
,按 P
键排序CPU使用率。
Q4:如何查看磁盘空间?
A:用 df -h
查看分区,用 du -sh
查看目录大小。
Q5:如何监控网络连接?
A:用 netstat -tuln
或 ss -tuln
。
掌握这些,你就是Linux性能专家!
Linux性能监控其实没那么难,关键是要多动手,多观察,从 top
到 sar
,从 iostat
到 glances
,这些工具就像你的“系统军火库”,随时拿出来就能诊断问题。
性能优化是个持续的过程,发现问题、分析原因、解决问题,循环往复,你就能让系统跑得越来越顺畅!
附:常用工具对比表
工具 | 功能 | 是否需要安装 | 图形化 | 适合场景 |
---|---|---|---|---|
top |
实时监控CPU/内存/进程 | 内置 | 否 | 基础监控 |
htop |
top 的升级版,支持鼠标 |
需安装 | 否 | 高级用户 |
vmstat |
查看系统整体状态 | 内置 | 否 | 负载分析 |
iostat |
磁盘I/O监控 | 需安装sysstat | 否 | 磁盘瓶颈排查 |
netstat |
网络连接状态 | 内置 | 否 | 网络问题排查 |
iftop |
实时网络流量监控 | 需安装 | 否 | 带宽滥用检测 |
sar |
历史性能数据记录 | 需安装sysstat | 否 | 长期监控 |
glances |
图形化全能监控 | 需安装 | 是 | 全面监控 |
nmon |
IBM性能监控工具 | 需安装 | 否 | 详细系统分析 |
知识扩展阅读
在Linux系统下,我们可以通过多种方式来查看和管理计算机的性能,本文将详细介绍几种常用的方法,并通过具体的案例和表格来辅助说明。
使用top
命令
top
命令是Linux系统中最常用的性能监控工具之一,它可以实时显示系统的CPU、内存、交换分区等资源的使用情况。
如何使用top
命令?
- 打开终端。
- 输入
top
并按回车键。
示例输出:
top - 12:34:56 up 12 days, 12:34, 3 users, load average: 0.03, 0.07, 0.05
Tasks: 299 total, 1 running, 298 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.6 us, 0.7 sy, 0.0 ni, 97.7 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7.7 gi, 1.3 gi, 0.2 gi, 0.1 gi, 5.1 gi, 0 gi, 0 gi
MiB Swap: 2.0 gi, 2.0 gi, 0.0 gi, 0.0 gi, 0.0 gi, 0.0 gi, 0.0 gi
PID TTY TIME CMD
12345 - 0:00:01 /usr/bin/python3 /home/user/script.py
解释:
top
命令会实时更新系统资源的使用情况。us
表示用户空间占用百分比,sy
表示内核空间占用百分比,ni
表示改变进程优先级所使用的CPU百分比,id
表示空闲时间百分比,wa
表示等待I/O完成的百分比。MiB Mem
和MiB Swap
分别显示内存和交换分区的使用情况。
使用htop
命令
htop
是一个基于top
的增强版工具,提供了更丰富的界面和更多的功能。
如何使用htop
命令?
- 打开终端。
- 输入
sudo apt install htop
(适用于Debian/Ubuntu系统)或sudo yum install htop
(适用于RHEL/CentOS系统)来安装htop
。 - 输入
htop
并按回车键。
示例输出:
Warning: This is a graphical interface and may require additional dependencies.
Available processes can be sorted by CPU usage, memory usage, VIRT, RES, command, etc.
解释:
htop
提供了更直观的界面,可以更方便地查看和管理进程。- 可以通过点击列标题对进程进行排序。
使用vmstat
命令
vmstat
命令可以显示虚拟内存统计数据,以及CPU活动等信息。
如何使用vmstat
命令?
- 打开终端。
- 输入
vmstat
并按回车键。
示例输出:
procs ----------- cpu %mem %cpu si so s bi bo in out pet mps
302 1.6 7.3 0 0.1 0.1 100 0 30 1 2 100
解释:
vmstat
会显示每个CPU的使用情况,内存使用情况,以及I/O操作等信息。si
表示从用户空间转换到内核空间的次数,so
表示从内核空间转换到用户空间的次数。
使用iostat
命令
iostat
命令可以显示系统的磁盘I/O统计信息。
如何使用iostat
命令?
- 打开终端。
- 输入
sudo apt install sysstat
(适用于Debian/Ubuntu系统)或sudo yum install sysstat
(适用于RHEL/CentOS系统)来安装iostat
。 - 输入
iostat
并按回车键。
示例输出:
Device: r/s w/s rkB/s wkB/s kes/s kes/s mtk/s mtt/s
sda 0.12 0.08 123.45 67.89 10.23 12.34 100 1000
解释:
iostat
会显示磁盘的读取和写入速度,以及每秒事务数(TPS)等信息。r/s
表示每秒读取操作数,w/s
表示每秒写入操作数。
使用free
命令
free
命令可以显示系统的内存使用情况。
如何使用free
命令?
- 打开终端。
- 输入
free -h
并按回车键。
示例输出:
total used free shared buff/cache available
Mem: 7.7Gi 1.3Gi 0.2Gi 0.1Gi 5.1Gi 5.1Gi
Swap: 2.0Gi 2.0Gi 0.0Gi 0.0Gi 0.0Gi 0.0Gi
解释:
free
会显示总内存、已用内存、空闲内存、共享内存、缓冲区内存和可用内存等信息。-h
选项使得输出结果以人类可读的格式显示。
使用sar
命令
sar
是一个综合性的性能监控工具,可以收集、报告和保存系统活动信息。
如何使用sar
命令?
- 打开终端。
- 输入
sar -u 1 5
(查看CPU使用情况,每秒一次,共5次)或sar -r 1 5
(查看磁盘I/O情况,每秒一次,共5次)等。
示例输出:
Linux 5.4.0-42-generic (yourhostname) 2021-07-22 12:34:56 CPU %usr %sys %nice %iowait %steal %idle
12:34:56 0.10 0.05 0.00 0.00 0.00 99.80
12:35:00 0.12 0.06 0.00 0.00 0.00 99.80
...
解释:
sar
可以收集和报告系统的各种活动信息。-u
选项用于收集CPU使用情况,-r
选项用于收集磁盘I/O情况。
案例说明
假设你正在使用一台服务器,需要监控其性能,你可以使用上述命令来获取相关信息,并根据实际情况进行分析和优化。
通过top
命令发现CPU使用率较高,可能是由于某个进程占用过多资源,这时,你可以使用htop
命令进一步查看该进程的详细信息,并采取相应的措施。
或者,通过vmstat
命令发现内存使用率较高,可能是由于内存泄漏或进程占用过多内存,这时,你可以使用free
命令查看内存使用情况,并结合其他命令进行分析和优化。
在Linux系统下,我们可以通过多种方式来查看和管理计算机的性能,掌握这些命令的使用方法,可以帮助我们更好地管理和优化系统。
问答形式
Q1:如何查看Linux系统的CPU使用情况?
A1:可以使用top
命令或htop
命令来查看Linux系统的CPU使用情况。top
命令会实时更新CPU使用情况,而htop
命令则提供了更直观的界面。
Q2:如何查看Linux系统的磁盘I/O情况?
A2:可以使用iostat
命令来查看Linux系统的磁盘I/O情况,该命令会显示磁盘的读取和写入速度,以及每秒事务数(TPS)等信息。
Q3:如何查看Linux系统的内存使用情况?
A3:可以使用free
命令来查看Linux系统的内存使用情况,该命令会显示总内存、已用内存、空闲内存、共享内存、缓冲区内存和可用内存等信息。
Q4:如何查看Linux系统的网络流量情况?
A4:可以使用iftop
或nethogs
命令来查看Linux系统的网络流量情况。iftop
命令提供了实时的网络流量监控,而nethogs
命令则根据进程ID进行网络流量监控。
通过掌握这些命令的使用方法,我们可以更好地管理和优化Linux系统。
相关的知识点: