轻松学会Linux系统监控:实用工具命令全解析(一)

前言

当管理Linux系统时,了解常用监控工具命令是至关重要的。本文精选了一些实用的技巧,帮助你轻松监控系统资源、优化性能、及时发现问题。无论你是新手还是有经验的管理员,都能从中获益良多。不容错过的Linux系统管理利器,赶快阅读吧!

性能监控命令

top

top命令是Linux中常用的性能监控工具,它可以实时显示系统中各个进程的资源占用状况,包括CPU、内存等。top命令提供了一个实时的视图,显示系统当前的活跃进程,并允许用户进行交互,对进程执行各种操作。

基本语法:

css 复制代码
top [options]

常用可选参数:

  • -d:指定刷新间隔,单位为秒。
  • -p:监控特定的PID。
  • -n:运行top命令时显示几次更新后退出。
  • -u:仅显示特定用户的进程。
  • -h:显示帮助信息。
  • -o:按某一字段排序,例如-o %MEM按内存使用率排序。

执行top命令后,实际上也可以执行一些交互命令:

  • Shift + P:按CPU使用率排序。
  • Shift + M:按内存使用率排序。
  • k:终止一个进程。
  • f:添加或删除显示的列。
  • t:打开或关闭显示图形。
  • 1:显示所有CPU的状况,而不是总体平均值。

比如:我要杀死进程id是10789的vsftpd服务进程,可以直接输入k,会进入下面的交互界面,再输入vsftpd进程的进程id10789,按enter键,即可杀死vsftpd服务进程;

下面是其他的一些简单使用示例:

简单启动:直接在终端中输入 top,就可以显示当前系统的动态进程以及资源使用情况。

css 复制代码
top

改变更新速率:使用 top -d 5 来设定每5秒刷新一次。

css 复制代码
top -d 5

查看特定用户的进程:如果需要查看用户root的进程,可以使用 top -u root。

css 复制代码
top -u root

监控特定进程:假设要监控PID为10789的进程,可以使用 top -p 10948,top命令中最常用也就是这个了。

css 复制代码
top -p 10948

对上面的输出内容的解读:

top - 16:56:50 up 4 days, 21:02, 2 users, load average: 0.00, 0.01, 0.05

  • 系统当前时间为 16:56:50,系统已经运行了 4 天 21 小时 2 分钟,有 2 个用户登录。
  • 负载平均值(load average)显示了过去 1 分钟、5 分钟和 15 分钟内系统的平均负载情况。

Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie

  • 总共有 1 个任务(进程)正在运行。
  • 没有正在运行的任务,有 1 个任务处于睡眠状态,没有被停止的任务或僵尸进程。

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

  • CPU 使用情况的统计信息:
  • us:用户空间占用 CPU 时间的百分比。
  • sy:内核空间占用 CPU 时间的百分比。
  • ni:用于nice优先级调整过的用户进程占用CPU时间的百分比。
  • id:CPU 空闲时间的百分比。
  • wa:等待输入输出完成而花费的CPU时间百分比。
  • hi:硬中断(Hardware IRQ)占用 CPU 时间的百分比。
  • si:软中断(Software IRQ)占用 CPU 时间的百分比。
  • st:由于虚拟化导致的被偷取时间的百分比。

KiB Mem : 2010272 total, 1363512 free, 213272 used, 433488 buff/cache

  • 物理内存使用情况:
  • 总共 2010272 KB 的物理内存。
  • 空闲内存为 1363512 KB。
  • 已使用内存为 213272 KB。
  • 缓冲区/缓存占用的内存为 433488 KB。

KiB Swap: 2097148 total, 2097148 free, 0 used. 1637812 avail Mem

  • 交换空间(swap)使用情况:
  • 总共 2097148 KB 的交换空间。
  • 空闲的交换空间为 2097148 KB。
  • 没有被使用的交换空间。
  • 可用于内存的交换空间大小为 1637812 KB。

进程信息:

  • PID:进程 ID。
  • USER:进程所属用户。
  • PR:进程的优先级。
  • NI:进程的 nice 值。
  • VIRT:进程使用的虚拟内存量(单位为 KB)。
  • RES:进程使用的物理内存量(单位为 KB)。
  • SHR:进程使用的共享内存量(单位为 KB)。
  • %CPU:进程占用 CPU 的百分比。
  • %MEM:进程占用内存的百分比。
  • TIME+:进程运行的累计时间。
  • COMMAND:进程的命令名。

htop

htop 是一个类似于 Linux 系统中的 top 命令的工具,用于显示系统中运行的进程的实时信息。与 top 不同的是,htop 提供了更加直观和友好的界面,可以通过鼠标或键盘快捷键进行交互操作,显示的信息也更加详细和易读。htop 可以显示 CPU、内存、swap 等资源的使用情况,同时还可以方便地对进程进行排序、搜索和管理。

htop 并不是所有 Linux 发行版的默认安装包,因此可能需要单独安装它。可以按照以下步骤在常见的 Linux 发行版上安装 htop:

对于 Ubuntu 或 Debian 等基于 apt 的系统:

sql 复制代码
sudo apt update sudo 
apt install htop

对于 CentOS 或 RHEL 等基于 yum 的系统:

sudo yum install htop

一旦安装完成,就可以直接使用了。

使用 htop的方法很简单:

打开终端窗口输入 htop 命令,并按下 Enter 键

htop

然后就可以看到如上图的输出内容:实时进程信息,包括 CPU 和内存的占用情况等。

对于htop输出信息中各列的解读:

  • PID:进程的ID(Process ID)。
  • USER:启动进程的用户。
  • PRI:进程的优先级。
  • NI:nice值。用于指定进程的优先级,负值表示高优先级,正值表示低优先级。
  • VIRT:进程使用的虚拟内存大小(包括进程使用的共享库、映射的文件等)。
  • RES:进程使用的物理内存大小(Resident Set Size)。
  • SHR:进程使用的共享内存大小。
  • S:进程的状态(运行、睡眠、停止等)。
  • %CPU:进程占用CPU的百分比。
  • %MEM:进程占用内存的百分比。
  • TIME+:进程运行的累计CPU时间。
  • COMMAND:启动进程的命令行。

还可以使用键盘快捷键进行操作:你可以使用键盘上的不同按键来进行排序、筛选和管理进程。例如:

  • 使用 ↑ 和 ↓ 键来上下移动光标选择进程。
  • 使用 F6 键可以根据不同的标准对进程进行排序。
  • 使用 F9 键可以选择发送信号给选定的进程。
  • 使用 Space 键可以选中或取消选中进程。
  • 使用 q 键可以退出 htop。

free

显示系统内存的使用情况,包括物理内存和交换空间的使用情况。通过free 命令可以快速了解系统内存的分配和利用情况。

基本用法:

在终端中输入 free 命令即可显示系统当前的内存使用情况。默认情况下,free 命令会显示以字节为单位的内存大小。

输出解释:

  • total:总内存大小。
  • used:已使用的内存大小。
  • free:空闲的内存大小。
  • shared:被共享的内存大小。
  • buff/cache:缓冲区和缓存区的内存大小。
  • available:可用内存大小(该值考虑了缓冲区和缓存区)。

如果配合free的可选参数选项,效果更好:

  • -h:以人类可读的方式显示内存大小,以 K、M、G 等单位表示。
  • -b、-k、-m、-g:指定内存大小的单位,分别表示字节、KB、MB、GB。
  • -t 或 --total:显示总内存使用情况,包括已使用、空闲和缓冲区 + 缓存区的总和。
  • -s [秒数]:持续显示内存使用情况,每隔指定秒数更新一次。

示例:

显示系统当前的内存使用情况(以字节为单位)

c 复制代码
free

以人类可读的方式显示内存使用情况

c 复制代码
free -h

显示总内存使用情况,包括已使用、空闲和缓冲区 + 缓存区的总和

c 复制代码
free -t

持续显示内存使用情况,每 5 秒更新一次

c 复制代码
free -s 5

vmstat

用于显示系统的虚拟内存状态,包括进程、内存、磁盘活动等信息。vmstat 可以提供有关系统整体性能的详细统计数据。

css 复制代码
vmstat [options] [delay [count]]
  • options:可选参数,用于指定输出格式或其他选项。
  • delay:指定两次采样之间的时间间隔(单位为秒)。
  • count:指定显示的采样次数。

常见的vmstat选项包括:

  • -a:显示活动和非活动内存的统计信息。
  • -s:显示内存、磁盘、IO、中断、上下文交换等的统计信息。
  • -d:显示磁盘IO统计信息。
  • -p [disk|partition]:显示分区的IO统计信息。

示例用法:

显示系统整体的虚拟内存统计信息。

vmstat

每隔1秒显示一次虚拟内存统计信息。

vmstat 1

每隔5秒显示一次虚拟内存统计信息,共显示10次。

vmstat 5 10

vmstat输出的各列含义如下:

  • procs:进程相关信息,包括运行队列长度、等待CPU的进程数等。
  • memory:内存相关信息,包括空闲内存、缓冲区、缓存、交换分区使用量等。
  • swap:交换分区相关信息,包括交换分区使用情况。
  • io:IO相关信息,包括块设备的读写情况。
  • system:系统相关信息,包括中断、上下文切换次数等。
  • cpu:CPU相关信息,包括用户态、系统态、空闲等CPU占用情况。

iftop

实时监控网络流量,显示各个网络接口的实时传输速率。通过 iftop 可以帮助监控网络性能并发现网络流量异常或者高峰。

css 复制代码
iftop [options]

常见的iftop选项包括:

  • -i:指定监控的网络接口,如eth0、wlan0等。
  • -B:以字节为单位显示流量统计信息。
  • -n:禁止将IP地址解析为主机名。

示例用法:

以默认设置启动iftop,监控所有网络接口的流量。

iftop

监控指定网络接口(例如eth0)的流量。

css 复制代码
iftop -i eth0

以字节为单位显示指定网络接口(例如wlan0)的流量。

css 复制代码
iftop -i wlan0 -B

iftop输出的各列含义如下:

  • Source:源IP地址或主机名。
  • Destination:目标IP地址或主机名。
  • Proto:传输协议,如TCP、UDP等。
  • In:接收流量,即进入本地主机的流量。
  • Out:发送流量,即从本地主机发出的流量。
  • Total:总流量,包括进入和发送的流量。

写在最后

对Linux系统管理比较感兴趣的朋友们,如果觉得这篇文章对您有帮助,请不妨点个赞和收藏起来吧!这些珍贵的技巧和知识将成为你日常工作中的得力助手,让你轻松应对各种系统管理挑战。

相关推荐
姜学迁17 分钟前
Rust-枚举
开发语言·后端·rust
活跃的煤矿打工人20 分钟前
【星海saul随笔】Ubuntu基础知识
linux·运维·ubuntu
【D'accumulation】1 小时前
令牌主动失效机制范例(利用redis)注释分析
java·spring boot·redis·后端
fasewer1 小时前
第五章 linux实战-挖矿 二
linux·运维·服务器
2401_854391081 小时前
高效开发:SpringBoot网上租赁系统实现细节
java·spring boot·后端
Cikiss1 小时前
微服务实战——SpringCache 整合 Redis
java·redis·后端·微服务
Cikiss1 小时前
微服务实战——平台属性
java·数据库·后端·微服务
楚灵魈1 小时前
[Linux]从零开始的网站搭建教程
linux·运维·服务器
OEC小胖胖1 小时前
Spring Boot + MyBatis 项目中常用注解详解(万字长篇解读)
java·spring boot·后端·spring·mybatis·web
小小不董1 小时前
《Linux从小白到高手》理论篇:深入理解Linux的网络管理
linux·运维·服务器·数据库·php·dba