标签: top

如何更改以批处理模式运行的“top”linux 命令的输出行长度

以下命令可用于捕获当前占用 CPU 最多的进程并将其存储到文件中:

top -c -b -n 1 > top.log
Run Code Online (Sandbox Code Playgroud)

-c标志特别有用,因为它为您提供每个进程的命令行参数,而不仅仅是进程名称。

没有-c

2497 root      18   0 11264 5888 1524 S  0.0  0.1   0:03.31 miniserv.pl
Run Code Online (Sandbox Code Playgroud)

使用-c(附加有用的命令信息):

2497 root      18   0 11264 5888 1524 S  0.0  0.1   0:03.31 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf
Run Code Online (Sandbox Code Playgroud)

问题是每一行输出都会被截断以适合当前的终端窗口。如果您可以拥有一个宽终端,那么这是可以的,因为您有很多输出,但如果您的终端只有 165 个字符宽,则每个进程只能获得 165 个字符的信息,并且通常没有足够的字符来显示完整的进程命令。当命令在没有终端的情况下执行时(例如通过 cron 作业执行),这是一个特殊问题。

有谁知道如何停止top截断数据或强制top每行显示一定数量的字符?

这并不紧急,因为还有另一种方法可以获取按 CPU 使用率排序的前 10 个进程:

ps -eo pcpu,pmem,user,args | sort -r -k1 | head -n 10
Run Code Online (Sandbox Code Playgroud)

linux command-line-interface top

7
推荐指数
1
解决办法
1万
查看次数

为什么我看到许多 mongod 进程正在运行?

我正在运行一个 MongoDB 数据库。没有分片。当我运行 htop 时,我看到了很多 mongod 实例。这是正常的吗?每个连接都会创建一个单独的 mongod 进程吗?我应该担心吗?

出于某种原因,当我使用 top 时,只显示其中之一。这部分也令人困惑。

正如评论中所问,“ps axjf | grep mongod”的输出:

12858 12878 12877 12858 pts/0    12877 S+     500   0:00              \_ grep mongod
1  2691  2690  2690 ?           -1 Sl     497  70:54 /usr/bin/mongod -f /etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)

top mongodb htop

7
推荐指数
1
解决办法
4322
查看次数

有没有可以对输入流进行顶层化的工具?

我遇到了很多用例,其中从(通常是换行符分隔的)流中获取输入并以类似 top 的方式对其进行总结非常有用(参见 top、iotop 等)。一种即时数据透视表。

例如采用对数式输入:

I heard A from unit 1 and it said "Great!" 56
I heard A from unit 2 and it said "Oh no!" 42
I heard C from unit 1 and it said "Waiting for input." 33
I heard B from unit 3 and it said "Stopped." -1
...
Run Code Online (Sandbox Code Playgroud)

由此,我们可以运行一个带有正则表达式和组指标的工具:

topify [lineout] [regex] [name #1] [group #1] [name #2] [group #2] [All other columns name position]
     where:
         lineout is the number of lines before removing …
Run Code Online (Sandbox Code Playgroud)

logging regex top stream

7
推荐指数
1
解决办法
190
查看次数

top 只显示当前用户进程

最近有一台运行 CentOS 6.7 的专用服务器,我们运行了更新并注意到 top 仅显示当前用户的进程。

[myuser@server2 ~]$ top -b -n1 
top - 20:19:20 up 1 day, 10:09,  3 users,  load average: 0.80, 0.50, 0.41
Tasks:  11 total,   1 running,  10 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  32880988k total, 26893324k used,  5987664k free,   140872k buffers
Swap:  1046520k total,        0k used,  1046520k free, 19532120k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND               
 1648 myuser  20   0 98.8m …
Run Code Online (Sandbox Code Playgroud)

linux centos users top process

7
推荐指数
2
解决办法
2947
查看次数

如何仅按名称列出 htop 中的进程,而没有完整路径?

有没有办法让 htop 中的进程列表只显示为命令的名称,而不是带有标志的完整路径名?

linux top

6
推荐指数
1
解决办法
7589
查看次数

按字节划分的内存使用量前 10 名

我需要一种方法来查看前十个进程使用了​​多少字节而不是百分比。我正在使用centos

memory top

6
推荐指数
1
解决办法
8114
查看次数

top 命令中的 TIME+ 列不准确

我只是运行了top命令来观察下面的过程

chown -r me:me allMyMusic
Run Code Online (Sandbox Code Playgroud)

它已经运行了大约 5 分钟,但是 top 命令中的 TIME+ 列报告它运行了大约0:12.10几秒钟。它也在缓慢增加。

有没有人遇到过 top 命令的 TIME+ 列错误地报告经过的时间?

top ubuntu-10.04

6
推荐指数
1
解决办法
3万
查看次数

确定 FreeBSD 下哪个进程负责大量磁盘 i/o

我想知道如何监控哪个进程占用了我所有的 IO 带宽。我知道的唯一命令是 gstat 但它显示累积信息。是否有任何工具可以用来检查正在运行的进程的 io 使用情况?系统为FreeBSD 8.3

谢谢

freebsd hard-drive command-line-interface io top

6
推荐指数
1
解决办法
3073
查看次数

为什么 top 给出的 cpu 百分比超过 100%

看看下面“top -u steve”的统计数据,top有什么问题吗?

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
 3490 steve     20   0 10444  312  248 R  114  0.0  23:33.22 test2              
 25479 steve    20   0  867m 239m  19m S   38 12.1 411:00.43 chromium-browse    
 1470 steve     20   0  455m  42m  13m S   11  2.1 283:38.59 compiz             
 25207 steve    20   0  529m 101m  29m S    7  5.1  29:39.81 chromium-browse    
 2890 steve     20   0  230m  47m  25m S    4  2.4   2:09.85 codeblocks         
Run Code Online (Sandbox Code Playgroud)

linux command-line-interface top

6
推荐指数
1
解决办法
1293
查看次数

docker stats 输出与 top 输出有何关系?

我有一个进程在 Linux 上的 Docker 容器中运行,内存限制为 2GByte。(容器以 开头docker run --memory=2g。)

以下是top它运行一段时间后的情况。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 9016 root      20   0 7342132 4.652g 4.224g S 100.0  7.4  18828:28 blah
Run Code Online (Sandbox Code Playgroud)

这是输出docker stats

CONTAINER           CPU %               MEM USAGE/LIMIT     MEM %               NET I/O
d7032e5928b6        100.02%             2.076 GB/2.147 GB   96.68%              345 MB/199.1 MB
Run Code Online (Sandbox Code Playgroud)

然后,重新启动后top

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 5653 root      20   0 2787800 …
Run Code Online (Sandbox Code Playgroud)

top memory-usage docker

6
推荐指数
1
解决办法
3442
查看次数