对桌面用户来说,监视系统资源使用是一项重要的工作。通过这项工作,我们可以找到系统瓶颈所在,针对性的进行系统优化,识别内存泄露等。问题是,我们应该用什么软件,以及如果针对我们的需求使用它。
在众多备选的监测工具中,多数人使用“top”(procps 包的一部分)。Top 提供了几乎可以说是所有的我们所需要的系统资源使用监测,就在这一个软件中。本文中的所有信息都是基于运行在 Linux 2.6.x 内核上的版本号为3.2.5的 procps 包。
在这里,我们假定 procps 已经安装并运行在你的 Linux 系统中。这里无需你对 top 的使用经验,但如果你尝试去用一下,将更有利。
下面是一些挑战:
A.交互还是批处理模式?
默认情况下,Top 被调用时使用交互模式。在此模式下,Top 无限期运行,并可以通过按键重新定义 Top 的运行方式。但是,有时你需要对 Top 的输出进行后续处理,但这在此模式下难以实现。解决方法?使用批处理模式。
$ top -b
你将获得类似下面的输出:
top - 15:22:45 up 4:19, 5 users, load average: 0.00, 0.03, 0.00
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.8% us, 2.9% sy, 0.0% ni, 89.6% id, 3.3% wa, 0.4% hi, 0.0% si
Mem: 515896k total, 495572k used, 20324k free, 13936k buffers
Swap: 909676k total, 4k used, 909672k free, 377608k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 16 0 1544 476 404 S 0.0 0.1 0:01.35 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0
3 root 10 -5 0 0 0 S 0.0 0.0 0:00.11 events/0 哈,等等,它是不断重复运行的,同交互模式一样。不用担心,你可以使用 -n 限制重复数量。所以,如果你希望获得一次性结果,键入:
$ top -b -n 1 这一模式的真正优势在于你可以很容易的与 at 或 cron 命令结合。它们的结合,使得 Top 可以在特定时间对资源使用状态进行快照。例如,使用 at ,我们可以设定 top 在一分钟之后运行。
$ cat ./test.at
TERM=linux top -b -n 1 >/tmp/top-report.txt
$ at -f ./test.at now+1minutes 细心的读者可能会问“在创建新任务时,为什么我需要在调用 Top 之前设置环境变量 TERM?”。答案是,Top 运行时需要此变量,但“at”在定时调用时并不会保留它。同上面那样简单的设置可以确保 Top 正常运行。
B.如何监控制定进程?
有时,我们只对几个进程感兴趣,可能只是全部进程中的4个或5个。例如,如果你想要监测进程标识(PID)为4360和4358的进程,你需要键入:
$ top -p 4360,4358 或
$ top -p 4360 -p 4358 看起来很简单,只需要使用 -p 列出所有需要的 PID,并使用逗号间隔或简单的多次使用 -p即可。
另一种可能是监测拥有特定用户标识(UID)的进程。应对此需求,你可以使用 -u 或 -U 选项。假设用户“johndoe”的 UID 为500,键入:
$ top -u johndoe OR
$ top -u 500 或
$ top -U johndoe 结论是,你既可以纯使用用户名,也可使用数字 UID。“-u,-U?这两者不同?”是的。同多数其它 GNU 工具一样,选项是大小写敏感的。-U 意味着 Top 将会搜索有效的、真实的、被保存的以及文件系统的 UID 进行匹配,而 -u 仅匹配有效的用户id。要知道,每一个 *nix 进程在运行时都是用有效用户标识(effective UID),而其中有些并不等同真实用户标识。多数情况是,对类似文件系统权限或操作系统功能这项的有效用户标识感兴趣的人将会检查它,而不是 UID。
不同于 -p 仅用于命令行选项,-U 和 -u 都可以在交互模式中使用。同你猜测的一样,键入‘U’或‘u’可以依据用户名过滤进程。同样的规则依然适用,‘u’为有效用户标识,‘U’为 真实/有效/保存/文件系统用户名。你将被要求键入用户名或数字 UID。
相关推荐
### Linux 下 `top` 命令的使用详解 `top` 命令是 Linux 系统中非常重要的实时监控工具之一,主要用于查看和监控系统资源使用情况,特别是 CPU 和内存的使用情况。虽然大多数程序员都熟悉 `top` 命令的基本使用,但...
Linux系统中的`top`命令是系统管理员和开发者用于实时监控系统资源使用情况的重要工具,它提供了动态视图,展示CPU利用率、内存使用、进程状态等关键信息。`top`源码包的分析可以帮助我们深入了解其内部工作原理,...
在Linux操作系统中,`top`命令是一个实时动态显示系统状态的工具,它是系统管理员监控系统资源使用情况的重要手段。本文将深入解析`top`命令的使用,包括其基本功能、参数选项以及如何解读其输出结果。 `top`命令...
1. **Linux top命令简介** `top`命令的主要功能是实时监控系统中每个进程的资源占用,包括CPU利用率、内存使用、进程状态等。它不仅能够列出系统中当前最消耗资源的进程,还可以按不同的指标(如CPU使用率、内存...
Linux操作系统自诞生以来,以其开源、高效、稳定的特性吸引了无数用户和开发者。在Linux系统中,命令行是管理和维护系统最强大的工具之一。本文将详细解读《Linux命令大全完整版.pdf》中所收录的各类命令,以帮助...
### TOP命令实例详解 #### 一、概述 `top`命令是Linux系统中不可或缺的工具之一,主要用于实时显示系统中各个进程的资源占用状况。它不仅能够帮助系统管理员监控服务器的负载情况,还能够让用户详细了解各个进程的...
Linux以其开源、稳定和高效的特点,赢得了广泛的认可。本篇主要介绍Linux中的常用命令和系统管理,帮助用户更好地理解和掌握这一强大的操作系统。 1. **文件目录基本操作** - `cd`: 改变当前工作目录,例如`cd /...
通过掌握这些命令,DB2的开发者可以在Linux环境中高效地进行数据库管理、数据操作、故障排查和性能优化。了解并熟练运用这些工具,将极大地提升工作效率。记住,实践是检验真理的唯一标准,多练习才能真正掌握这些...
在Linux中,可以使用`ps`和`top`命令查看当前系统中的进程状态,而`kill`和`killall`用于发送信号来控制进程,例如结束进程。此外,`nice`和`renice`命令可以调整进程的优先级。 了解并熟练掌握这些基本命令和进程...
本资源"Linux命令大全 chm"提供了一个全面的Linux命令参考,旨在帮助用户更好地理解和使用各种Linux命令。 `atu`是一个不常见的标签,可能是输入错误或者是指代某个特定的工具或用途。不过,根据提供的信息,我们...
这个名为"Linux命令查询全集 chm"的资源,正是为帮助用户学习和查询Linux命令提供的一份全面指南。 首先,让我们来看看文件管理方面的命令。在Linux中,`ls`用于列出目录内容,`cd`用于切换当前工作目录,`mkdir`...
本资料集旨在提供一个全面的Linux基本命令和常用命令的大全,帮助用户更好地进行系统维护、开发工作以及其他日常操作。 首先,我们从最基础的命令开始。`ls`命令用于列出目录内容,通过添加不同的选项(如 `-l` ...
Linux命令行界面提供了强大的功能,通过一系列命令,用户可以高效地管理文件、系统、网络等。本篇将详细介绍Linux命令大全,涵盖常用和进阶的命令,帮助你更好地理解和运用Linux。 一、文件与目录操作 1. `ls`:列...
Linux操作系统中,监控CPU使用情况的一个常用命令是`top`。`top`命令是一个实时的、动态的进程查看工具,能够展示系统当前的CPU、内存使用情况,以及其他关键性能指标。与`ps`命令不同,`top`命令会持续更新显示的...
- `top`(实时查看系统资源使用情况) - `kill`(发送信号给进程,使其停止或继续运行) - `nice`(设置进程优先级) - `renice`(调整已运行进程的优先级) #### 文本处理命令 - `cat`(显示文件内容) - `grep`...
本文将详细介绍如何使用Python调用Linux的`top`命令来获取CPU利用率。`top`命令是一个实时的系统监视工具,它可以显示系统中各个进程的资源消耗情况,包括CPU、内存等。 在Python中,我们可以利用内置的`os`模块来...
为了高效地管理和操作Linux系统,熟悉并掌握其常用命令是非常重要的。"Linux常用命令全集.zip"这个压缩包很可能包含了全面的Linux命令参考资料,特别是以.CHM(Microsoft帮助文件)格式的文档,这通常是一个方便的...
除了这些基本操作,还有其他Linux命令也常用于服务器管理,例如`top`或`htop`用于查看系统资源使用情况,`netstat`查看网络连接状态,`df -h`检查磁盘空间,以及`free -m`查看内存使用等。在遇到服务器问题时,结合...