当前位置:首页 > 编程语言 > 正文内容

Linux运维基础之top命令详解

a811625532年前 (2024-02-26)编程语言10

top 命令提供运行系统的动态实时视图。它用于监控系统进程和资源使用情况,如 CPU、内存和交换使用情况。

top 命令的一般语法:

$ top [OPTIONS]

1. 列出所有正在运行的进程

top

使用 top 命令显示正在运行的任务、内存、cpu 和 swap。要关闭窗口,请按 Q

示例:

在不带任何选项的终端中运行 top 命令,可能会得到以下结果。

top - 15:20:26 up 10 days,  2:30,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 193 total,   1 running, 192 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.2 sy,  0.0 ni, 98.9 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  8167848 total,  2003084 free,  1652232 used,  4512532 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  6171720 avail Mem 
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND            
1219 root      20   0  658884  56644  35980 S   6.7  0.7  42:11.77 Xorg               
2781 user1     20   0  883780  31576  21744 S   6.7  0.4   0:01.01 gnome-terminal-    
1 root      20   0  225636   9484   6812 S   0.0  0.1   0:07.31 systemd            
2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd           
4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H       
6 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 mm_percpu_wq       
7 root      20   0       0      0      0 S   0.0  0.0   0:00.31 ksoftirqd/0        
8 root      20   0       0      0      0 I   0.0  0.0   0:02.91 rcu_sched          

之一行提供系统摘要:当前时间、正常运行时间、用户数量和平均负载。

第二行显示任务总数及其状态:运行、休眠、停止或僵尸。

第三行显示 CPU 使用详情:用户进程、系统进程、空闲进程等。

第四行和第五行显示内存使用情况:总内存、空闲内存、已用内存和缓冲/缓存内存。其余各行列出系统上运行的所有进程。每一行代表一个进程,详细内容包括 PIDUSERCPU usageMemory usage, 以及启动该进程所使用的命令。

2. 显示特定用户的进程

top -u [user]

使用 -u 选项可以显示特定用户的所有运行进程信息。

示例:

显示 root 用户的运行进程。

top - 12:34:56 up 10 days,  2:30,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :   7976.1 total,   1694.7 free,   1263.5 used,   5017.8 buff/cache
MiB Swap:   1024.0 total,   1024.0 free,      0.0 used.   6412.1 avail Mem 
PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
1 root      20   0  225492   9484   6812 S   0.0   0.1   0:06.37 systemd
2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
3 root      20   0       0      0      0 S   0.0   0.0   0:00.36 ksoftirqd/0
5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H
7 root      20   0       0      0      0 I   0.0   0.0   0:01.31 rcu_sched
...

在这个例子中,你可以看到 top -u root 命令只显示 root 用户拥有的进程。输出包括每个进程的相关信息,如进程 ID (PID)、优先级 (PR)、友好值 (NI)、虚拟内存大小 (VIRT)、常驻内存大小 (RES)、共享内存大小 (SHR)、CPU 使用率 (%CPU)、内存使用率 (%MEM) 以及启动进程的命令 (COMMAND)。

3. 启用批处理模式

top -b

top -b 命令用于以批处理模式运行 top。当你想将 top 的输出重定向到文件或其他命令时,这条命令特别有用。在批处理模式下,top 不接受输入,一直运行到设定的迭代次数限制,或直到被杀死。

示例:

在本例中,-n 1 会让 top 只运行一次,而不是持续更新。输出会被重定向到 top-output.txt 中。

打开 top-output.txt 文件,可能会看到类似下面的输出:

top - 18:25:01 up 10 days,  5:45,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 162 total,   1 running, 161 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 98.9 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8167848 total,  1785084 free,  1583456 used,  4799308 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  6250480 avail Mem 
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1 root      20   0  225492   9484   6812 S   0.0  0.1   0:09.07 systemd
2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd
3 root      20   0       0      0      0 S   0.0  0.0   0:00.55 ksoftirqd/0
5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
7 root      20   0       0      0      0 S   0.0  0.0   0:07.28 rcu_sched

4. 从同一状态开始

top -c

top -c 显示当前活动进程以及其他信息,包括启动每个进程所用的完整命令行。这有助于查看传递给进程的确切参数。

示例:

下面是 top -c 命令的输出示例:

top - 12:34:56 up 10 days,  2:03,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2040204 total,   987204 free,   105204 used,   948796 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.  1830204 avail Mem 
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1 root      20   0  159444   6604   3904 S   0.0  0.3   0:06.35 / *** in/init splash
2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 [kthreadd]
3 root      20   0       0      0      0 S   0.0  0.0   0:00.85 [ksoftirqd/0]
5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [kworker/0:0H]
7 root      20   0       0      0      0 S   0.0  0.0   0:03.78 [rcu_sched]
123 root      20   0  278532  37888  26976 S   0.0  1.9   0:03.45 /usr/bin/dockerd -H fd://
456 www-data  20   0  161916   6412   2680 S   0.0  0.3   0:00.01 /usr/ *** in/apache2 -k start

前几行提供系统摘要,包括当前时间、系统运行时间、用户数量、平均负载和内存使用情况。

之后的每一行代表一个进程,并包含每个进程的各种信息。其中包括进程 ID (PID)、拥有该进程的用户、优先级 (PR) 和 nice 值 (NI)、内存使用情况 (VIRT、RES、SHR)、当前状态 (S)、CPU 使用率 (%CPU)、内存使用情况 (%MEM)、进程运行时间 (TIME+) 以及完整的命令行 (COMMAND)。

-c 选项显示启动每个进程的完整命令行。例如,对于 PID 1,命令是 / *** in/init splash。对于 PID 123,命令是 /usr/bin/dockerd -H fd://。这有助于查看传递给进程的确切参数。

5. 启用安全模式

top -s

-s 选项用于安全模式操作。在安全模式下,一些可能有害的交互式命令会被禁用。当系统管理员在需要限制用户操作的环境中运行 top 时,这个选项尤其有用。举例说明:

示例:

下面举例说明在这种情况下如何使用 -s 选项:

top -s 5

这条命令将启动 top 并每 0.5 秒刷新一次显示。

6. 设置屏幕更新的延迟时间

top -d [seconds]

-d 选项用于指定屏幕更新之间的延迟时间,换句话说就是刷新率。默认情况下,top 每 3.0 秒更新一次,但使用 -d 选项,可以将其设置为任何需要的间隔。

示例:

-d 选项后指定数字 20 ,每 20 秒更新一次输出。

top -d 20

7. 设置迭代次数

top -n [number]

top -n 会更新 top 命令显示 n 次,然后退出。如果你想定期对系统进行快速快照,这将非常有用。

更多 Linux 命令

下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:

目录操作  ·  ·  ·  · 
文件操作  ·  ·  ·  ·  ·  ·  ·  · 
文件系统操作  ·  · 
***  ·  ·  ·  · 
搜索和文本处理  ·  ·  ·  ·  ·  · 
系统信息和管理  ·  ·  ·  ·  ·  · 
用户和会话管理  ·  ·  · 

此外,我们还整理 ,以帮助大家全面深入地学习 Linux。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/8204.html

分享给朋友:

“Linux运维基础之top命令详解” 的相关文章

宝塔面板教程之不同环境安装篇

宝塔面板教程之不同环境安装篇

Linux面板环境安装,主要支持LNMP和LAMP、Tomcat、node.js。不过对于大部分站长来说,主要是LNMP和LAMP两个环境的安装。 LNMP和LAMP两个环境的最大区别是,前者采用Nginx作为Web服务器,后者则采用Apache作为Web服务器。(选择哪个作为您的Web服务器,可...

宝塔面板教程之数据库管理篇

宝塔面板教程之数据库管理篇

宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...

宝塔面板教程之安全管理篇

宝塔面板教程之安全管理篇

宝塔面板的安全管理可以设置SSH开关、禁用PING、放行端口、屏蔽IP等相关的操作。 SSH的设置 SSH的关闭与启动,点击下图的开关,即可开启或关闭SSH远程连接。 SSH端口的修改,SSH远程连接的默认端口为22,修改端口前,请先查看该端口是否被占用。 PING命令的...

20个最佳Laravel免费和付费教程资源

20个最佳Laravel免费和付费教程资源

Laravel多年来一直是PHP应用程序开发的摇滚明星,这是有充分理由的。庞大的生态系统、活跃的社区、强大的就业市场、成功的初创公司——它拥有一切让采用新技术变得值得的东西。 如果你想学习Laravel,你不需要更进一步。通过浏览本指南,您可以找到最适合您的Laravel教程,与您的知识水平和...

2022年PHP开发人员的平均工资统计报告

2022年PHP开发人员的平均工资统计报告

PHP开发:有些人认为它是,另一些人认为它是一种过时的技术,不值得花时间学习。但是这些数字说明了什么,尤其是当您查看PHP开发人员的薪水时? 虽然肯定有许多更新、更炫、更令人兴奋的语言,但PHP仍然是后端Web开发的可靠主食,也是许多雇主仍在寻找的技能。 有兴趣自己成为PHP开发人员吗?我们...

优化Laravel性能的17种方法

优化Laravel性能的17种方法

您是否正在寻找成功的方法来加快Laravel的性能,同时在您的项目上工作?你来对地方了! Laravel是一个流行的开源PHP框架,以其强大的安全性和简单而复杂的编码架构而闻名。它是构建能够推动收入和推动业务发展的尖端Web应用程序的绝佳选择。 尽管如此,如果你不使用正确的优化技术,Lara...