服务器CPU,内存和硬盘使用率查看

Linux 服务器性能监控:深入理解 top 命令

在 Linux 服务器管理中,top 命令是一个强大的工具,可以实时监控 CPU、内存、进程 等系统资源的使用情况。本文将详细介绍 top 命令的输出内容,并提供一些实用的性能优化技巧。


1. top 命令界面解析

运行 top 后,你会看到类似以下的界面:

top - 12:34:56 up 1 day,  5:23,  2 users,  load average: 0.55, 0.66, 0.70
Tasks: 162 total,   2 running, 160 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.5 us,  1.2 sy,  0.0 ni, 95.0 id,  0.2 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :  32000.0 total,  16000.0 free,  8000.0 used,  8000.0 buff/cache
MiB Swap:  8000.0 total,  5000.0 free,  3000.0 used. 12000.0 avail Mem

接下来,我们逐行解析这些关键指标。


2. 系统状态(第一行)

top - 12:34:56 up 1 day, 5:23, 2 users, load average: 0.55, 0.66, 0.70
  • 12:34:56 → 当前系统时间。
  • up 1 day, 5:23 → 系统已运行时间(1 天 5 小时 23 分钟)。
  • 2 users → 当前登录的用户数。
  • load average: 0.55, 0.66, 0.70 → 过去 1、5、15 分钟 的系统负载。

如何解读负载?

  • 负载 ≈ CPU 核心数 → 服务器满负荷运行。
  • 负载 < CPU 核心数 → 服务器运行正常。
  • 负载 > CPU 核心数 → CPU 过载,任务处理不过来。

例如,4 核 CPU 的服务器

  • 负载 0.55 → 运行轻松(仅占 55% 的计算能力)。
  • 负载 3.50 → 负载较高但仍可承受(接近 4 核)。
  • 负载 6.00 → 服务器超载,可能有任务等待 CPU 处理。

如何查看 CPU 核心数?

nproc

输出示例:

4

表示服务器有 4 个 CPU 核心


3. 进程状态(第二行)

Tasks: 162 total, 2 running, 160 sleeping, 0 stopped, 0 zombie
  • 162 total → 总进程数。
  • 2 running → 运行中的进程数。
  • 160 sleeping → 休眠的进程数。
  • 0 zombie → 僵尸进程(如果不为 0,可能需要手动处理)。

4. CPU 使用情况(第三行)

%Cpu(s): 3.5 us, 1.2 sy, 0.0 ni, 95.0 id, 0.2 wa, 0.0 hi, 0.1 si, 0.0 st
  • us(user) → 用户进程占用 CPU 百分比(高说明应用程序占用 CPU)。
  • sy(system) → 系统进程占用 CPU 百分比(高说明内核任务较多)。
  • id(idle) → CPU 空闲百分比(如果接近 0,说明 CPU 负载很高)。
  • wa(iowait) → 等待 I/O 设备的 CPU 百分比(高说明硬盘或网络 I/O 瓶颈)。
  • st(steal) → 被虚拟化环境占用的 CPU 百分比(常见于云服务器)。

如果 wa 值很高,可能意味着 磁盘或网络 I/O 限制,建议进一步排查。


5. 内存和交换分区使用情况(第四、五行)

MiB Mem :  32000.0 total,  16000.0 free,  8000.0 used,  8000.0 buff/cache
MiB Swap:  8000.0 total,  5000.0 free,  3000.0 used. 12000.0 avail Mem
  • total → 总内存大小。
  • free → 空闲内存。
  • used → 已使用内存。
  • buff/cache → 缓存的内存(可以随时释放给应用)。
  • avail Mem → 真实可用内存(系统能用于新进程的内存)。

如果 avail Mem 过低,说明服务器可能快要 耗尽内存,需要关注内存优化。


6. 进程列表

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
1234 root 20 0 400000 50000 10000 S 35.0 1.2 10:05.23 nginx 
5678 mysql 20 0 1200000 300000 15000 S 20.0 7.5 50:45.67 mysqld
  • PID → 进程 ID。
  • USER → 运行该进程的用户。
  • %CPU → 进程占用的 CPU 百分比。
  • %MEM → 进程占用的内存百分比。
  • COMMAND → 进程名称。

如何快速找出占用资源最多的进程?

  • P → 按 CPU 占用排序。
  • M → 按内存占用排序。

如果某个进程异常占用资源,可以:

kill -9 <PID>

(注意:强制杀死进程可能影响系统稳定性,请慎用。)


7. 其他关键命令

查看内存使用情况

free -h

示例输出:

              total        used        free      shared  buff/cache   available
Mem:           32G         8G         16G         1G         8G         23G
Swap:          8G         3G         5G

available 值如果过低,说明系统内存吃紧,可能需要优化。


查看硬盘使用情况

df -h

示例输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G   30G   70G  30% /
/dev/sdb1       500G  200G  300G  40% /data

如果 Use% 接近 100%,说明磁盘快满了,需要清理无用文件。


8. 更友好的 htop 命令

如果 top 不够直观,你可以安装 htop

sudo apt install htop
htop

它支持 鼠标操作颜色高亮,让系统监控更加直观。


9. 结论

  • 负载 < CPU 核心数 → 服务器运行正常。
  • 负载 ≈ CPU 核心数 → 服务器接近满载,需关注性能。
  • 负载 > CPU 核心数 → CPU 过载,可能需要优化。

希望本文能帮助你更好地 监控和优化 Linux 服务器!🎯

10. 补充ps命令

pstop 是 Linux 服务器管理中常用的进程监控工具。它们各有不同的特点和适用场景,下面是详细介绍。


1. ps 命令的使用

ps(process status)命令用于查看系统中的进程信息。与 top 不同,ps 显示的是某一时刻的进程快照,不会自动刷新。

1.1 ps 命令的基本格式

ps [选项]

默认情况下,ps 只显示当前终端的进程,不会包含其他用户的进程或后台进程。


1.2 ps 命令的常见用法

(1) 查看当前终端的进程

ps

示例输出:

  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps
  • PID:进程 ID
  • TTY:终端号
  • TIME:进程占用 CPU 时间
  • CMD:执行的命令

(2) 查看所有进程

显示所有用户的进程(BSD 风格)
ps aux
显示所有进程(System V 风格)
ps -ef

参数说明:

  • a:显示所有用户的进程
  • u:以用户格式显示(包含 CPU、内存占用等)
  • x:显示无终端的进程(如守护进程)
  • -e:显示所有进程
  • -f:显示完整格式信息(包含父进程等)

示例:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 169780  7604 ?        Ss   10:00   0:01 /sbin/init
user      1234  0.1  0.3  98760 15000 pts/0    Ss   10:05   0:00 /bin/bash

(3) 查找特定进程

按进程名查找
ps aux | grep nginx
按进程 ID 查找
ps -p 1234

(4) 按 CPU/内存使用排序

按 CPU 使用率排序
ps aux --sort=-%cpu | head -10
按内存使用率排序
ps aux --sort=-%mem | head -10

(5) 查看进程树

ps -e --forest

ps axjf

以树状结构显示进程的父子关系,适用于分析进程层级。


(6) 显示特定用户的进程

ps -u root

(7) 显示后台进程

ps aux | grep -v tty

-v tty 排除终端进程,只显示后台进程(如守护进程)。


(8) pskill 搭配使用(终止进程)

查找占用高的进程并终止:

ps aux --sort=-%cpu | head -10
kill -9 <PID>

kill -9 <PID> 强制终止指定进程(慎用)。


2. pstop 的区别

pstop 都可以用来查看进程信息,但它们的使用场景不同:

方面ps 命令top 命令
结果性质静态快照实时动态刷新
适用场景进程分析、一次性查询监控系统资源、动态管理进程
资源占用相对较高(持续刷新)
交互能力可交互(终止进程、排序等)

什么时候用 ps,什么时候用 top

  • 如果你想获取某一时刻的进程状态,如查看某个服务是否运行、查询某个进程的资源占用情况,适合使用 ps
  • 如果你想实时监控系统性能,如观察 CPU、内存使用情况,查看哪个进程占用资源最多,适合使用 tophtop(更友好的 top 替代品)。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇