当前位置:首页 > 行业动态 > 正文

Linux负载命令是什么?如何使用它来监控系统性能?

在 Linux 中,可以使用 tophtopuptime 等命令查看系统负载。 tophtop 可以显示实时的系统资源使用情况,包括 CPU、内存和进程信息。

在Linux操作系统中,监控和管理服务器负载是系统管理员日常工作的重要组成部分,了解系统的实时负载情况可以帮助我们及时发现性能瓶颈,优化系统配置,确保服务的稳定运行,本文将详细介绍几种常用的Linux负载命令,并通过表格形式对比它们的功能和用法,以帮助读者更好地掌握这些工具。

uptime 命令

uptime 命令用于显示系统的运行时间、当前时间和系统负载信息,它提供了一个简单的概览,适合快速查看系统的整体状态。

uptime

输出示例

 14:32:56 up 20 days,  3:45,  2 users,  load average: 0.20, 0.15, 0.10

解释

14:32:56 表示当前时间。

up 20 days, 3:45 表示系统已经运行了20天零3小时45分钟。

2 users 表示当前有2个用户登录。

load average: 0.20, 0.15, 0.10 分别表示过去1分钟、5分钟和15分钟的平均负载。

top 命令

top 命令是一个动态显示系统任务的命令,可以实时监控系统资源(如CPU、内存)的使用情况以及各个进程的详细信息,它非常适合于查找资源消耗异常的进程。

top

输出示例(部分):

top 14:33:01 up 20 days,  3:45,  2 users,  load average: 0.20, 0.15, 0.10
Tasks: 123 total,   1 running, 122 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.2 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8192 total,   1234 used,   6958 free,    234 buffers
KiB Swap:  2048 total,      0 used,   2048 free.   123456 cached Mem
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1234 root      20   0  123456  12345   1234 S   0.1  0.2   0:01.23 some_process

htop 命令

htoptop 命令的一个更友好的版本,它提供了一个更直观和交互式的界面,支持颜色编码和更丰富的功能键操作,需要先安装:

sudo apt-get install htop   # For Debian/Ubuntu
sudo yum install htop       # For CentOS/RHEL

启动htop

htop

mpstat 命令

mpstat 命令属于sysstat 软件包,用于报告各个可用处理器的活动情况,它可以显示每个CPU核心的使用率,对于多核处理器的监控系统非常有用。

安装sysstat

sudo apt-get install sysstat   # For Debian/Ubuntu
sudo yum install sysstat       # For CentOS/RHEL

使用mpstat

mpstat -P ALL 1

输出示例

Linux 4.15.0-112-generic (hostname) 04月 14日 星期一 14:33:01 UTC 202314:33:01     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal   %idle
14:33:01     all    0.10    0.00    0.10    0.00    0.00    0.00    0.00   99.80
14:33:01     0      0.15    0.00    0.15    0.00    0.00    0.00    0.00   99.70
14:33:01     1      0.15    0.00    0.15    0.00    0.00    0.00    0.00   99.70

iostat 命令

iostat 也是sysstat 软件包的一部分,用于监控系统输入/输出设备的活动情况,它可以显示磁盘读写速率、CPU利用率等信息。

使用iostat

iostat -xz 1

输出示例

Linux 4.15.0-112-generic (hostname) 04月 14日 星期一 14:33:01 UTC 2023Device            r/s     w/s    rkB/s   wkB/s avgrq-sz    await r_await w_await  svctm  %util
sda               0.00   4.00      0.00   8192     2048      2.5      2.5      2.5     1.0   5.00

vmstat 命令

vmstat 命令同样来自sysstat 软件包,用于报告虚拟内存、进程、CPU活动等系统整体的性能指标。

使用vmstat

vmstat 1

输出示例

procs -----------memory------------swap------io----system-------cpu-----
 r  b   swpd   free   buff   cache   si   so    bi    bo   in   cs us sy id wa st
 1   0      0 8192000   1234   6958   0    0     0     0    0     0   0   1   1   99   0   0

表格对比各命令功能与用法

命令 主要功能 常用参数 是否需要安装额外软件包 适用场景
uptime 显示系统运行时间、当前时间及平均负载 快速查看系统整体状态
top 动态显示系统任务,包括进程信息、CPU和内存使用情况 -d [秒数](刷新间隔) 实时监控资源使用情况,查找资源消耗大的进程
htop top的增强版,提供更友好的交互式界面 -d [秒数](刷新间隔) 需要更直观的界面和更多功能键操作时
mpstat 报告各个CPU核心的活动情况 -P ALL,-I ALL,interval 监控多核处理器的详细使用情况
iostat 监控系统输入/输出设备的活动情况 -xz,interval 分析磁盘I/O性能,识别磁盘瓶颈
vmstat 报告虚拟内存、进程、CPU活动等系统整体性能指标 interval 综合评估系统性能,特别是在内存和CPU利用率方面

FAQs

Q1:top命令中的“us”, “sy”, “ni”等字段代表什么?

A1:top命令中的这些字段表示不同类型的CPU时间使用情况:

us: User space time spent by user processes (非内核模式下的用户进程占用的CPU时间)

sy: System space time spent by kernel processes (内核模式下的系统进程占用的CPU时间)

ni: Time spent by the system on low priority processes (调整过优先级的进程占用的CPU时间)

id: CPU空闲时间 (Idle CPU time)

wa: Time spent waiting for I/O operations to complete (等待I/O操作完成的CPU时间)

hi: Hardware interrupt time (硬中断处理时间)

si: Software interrupt time (软中断处理时间)

st: Stolen time from virtual machines (虚拟机偷取的时间)

Q2: 如果我想持续监控某个特定的进程,应该使用哪个命令最合适?

A2: 如果需要持续监控某个特定进程,建议使用htop,因为它提供了更友好的交互界面,可以通过F3(搜索进程)快速定位到目标进程,并通过方向键上下移动来保持该进程在视图中心。top也是一个不错的选择,通过结合使用-p [PID]参数可以只显示特定进程的信息。

top -p 1234

其中1234 是目标进程的PID。

小伙伴们,上文介绍了“linux负载命令”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

0