默认情况下,htop显示处理器、内存和交换的彩色状态栏。从左到右,根据某些阈值,条形为绿色、蓝色、黄色和红色。
当内存条有少量绿色和蓝色,其余几乎全部为黄色时,这意味着什么?交换栏是空的。htop 的颜色设置是“默认”。

我正在运行top以监控我的服务器性能,我的 2 个 java 进程显示高达 800MB-1GB 的虚拟内存。那是一件坏事?
虚拟内存是什么意思?
哦顺便说一句,我交换了 1GB,它显示使用了 0%。所以我很困惑。
Java 进程 = 1 个 Tomcat 服务器 + 我自己的 Java 守护进程服务器 = Ubuntu 9.10 (karmic)
我正在 ubuntu 上运行 Rails 堆栈。
当我 ps -AF 时,我得到了一个由 apache 模块设置的描述性进程名称,例如
00:00:43 Rails: /var/www...
这对于诊断负载问题非常有帮助。
但是当我登顶时,同样的过程简单地显示为
ruby
有没有办法让 ps -AF 进程名称在顶部?
在 htop 上,它显示了三个平均负载,一个粗体,一个正常,一个红色。它们代表什么?
我正在使用具有 128GB 内存和 24 个内核的 linux 服务器。我使用 top 来查看它使用了多少。它的输出粘贴在帖子的末尾。这里有两个问题:
(1) 我看到每个正在运行的进程占用的内存百分比非常小(%MEM 不超过 0.2%,大多数只有 0.0%),但是如何使用总内存几乎就像第四行输出( “内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区”)?所有进程的内存使用百分比总和似乎不太可能达到几乎 100%,不是吗?
(2)如何理解第一行的平均负载(“平均负载:14.04、14.02、14.00”)?
感谢致敬!
编辑:
谢谢!
我也很喜欢听一些基于已用内存百分比的粗略数字来确定服务器是否负载过重,因为我曾经成为一个在不了解当前负载的情况下塞满服务器的人。
交换被认为与内存几乎相同吗?比如当内存和swap大小差不多的时候,如果内存快用完了,但是swap还是大体空闲的,我是不是可以只看内存+swap的使用比例还不高,运行其他新的流程?
您如何同时考虑 CPU 或内存(或内存 + 交换)的使用情况?如果它们中的任何一个或两者都达到太高,您会担心吗?
顶部的输出?
$顶
top - 12:45:33 up 19 days, 23:11, 18 users, load average: 14.04, 14.02, 14.00 任务:总共 484 个,运行 12 个,睡眠 472 个,停止 0 个,僵尸 0 个 Cpu(s):36.7%us、19.7%sy、0.0%ni、43.6%id、0.0%wa、0.0%hi、0.0%si、0.0%st 内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区 交换:总共 63111312k,已使用 500556k,空闲 62610756k,缓存 124437752k PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ …
我有一台负载非常高的服务器。就 CPU 使用率而言,我没有任何反应,也没有交换。
我认为这是因为某些进程正在等待磁盘 IO,我想看看在等待什么。
是否有任何程序可以显示哪些进程正在等待 IO?我知道,iotop但这显示了当前正在执行 IO 的操作。
或者这是一个愚蠢的问题?(如果是这样解释如何:))
我有一个有很多访问者的论坛,有时访问者数量没有增加,负载增加到 40。从下面的输出中可以看出,等待时间很长(57%)。我如何找到原因?
服务器软件是 Apache、MySQL 和 PHP。
root@server:~# top
top - 13:22:08 up 283 days, 22:06, 1 user, load average: 13.84, 24.75, 22.79
Tasks: 333 total, 1 running, 331 sleeping, 0 stopped, 1 zombie
Cpu(s): 20.6%us, 7.9%sy, 0.0%ni, 13.4%id, 57.1%wa, 0.1%hi, 0.9%si, 0.0%st
Mem: 4053180k total, 3868680k used, 184500k free, 136380k buffers
Swap: 9936160k total, 12144k used, 9924016k free, 2166552k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23930 mysql 20 0 549m 122m 6580 …Run Code Online (Sandbox Code Playgroud) 这是我上面的一个例子:
Cpu(s): 6.0%us, 3.0%sy, 0.0%ni, 78.7%id, 0.0%wa, 0.0%hi, 0.3%si, 12.0%st
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚 %st 字段的重要性。我读到这意味着窃取 cpu 并且它代表管理程序花费的时间,但我想知道这对我来说实际上意味着什么。
这是否意味着我可能在一个繁忙的物理服务器上,而其他人在服务器上使用了过多的 CPU 并且他们正在从我的 VM 中获取?
如果我使用 EBS,它是否与在管理程序级别处理 EBS I/O 相关?
它与我的 VM 上运行的东西有关还是完全不受我的影响?
过去,当我们在顶部查看时,我们所有的服务器都会自动显示传递给 rake 的命令参数。例如:

但是在这个特定的服务器上,我们得到了这个(图片是运行最高的,显示了 rake 命令,但没有显示任何已传递给 rake 的参数):

两台服务器都运行 Ubuntu(尽管没有 rake 命令的服务器是 ubuntu 的新版本)。两者都通过 ruby 企业版运行(由 rvm 提供支持)。除了明显的“更多数据/更少数据”切换之外,似乎找不到任何关于 top 如何选择在“命令”列中显示的内容的文档(所有屏幕截图都显示启用了额外数据。
有没有人遇到过类似的情况?
有人可以解释一下这个顶级输出吗?每个 PHP 进程使用的是总内存的 30% 还是已用内存的 30%?此外,所有 PHP 进程的总使用内存怎么会远远超过我的系统内存?这是共享内存吗?
提前致谢
top - 14:15:34 up 2 days, 12:38, 1 user, load average: 0.97, 1.03, 0.93
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.9%us, 0.3%sy, 0.0%ni, 94.6%id, 0.0%wa, 0.0%hi, 0.1%si, 0.1%st
Mem: 1029508k total, 992140k used, 37368k free, 150404k buffers
Swap: 262136k total, 2428k used, 259708k free, 551500k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6695 www-data 20 0 548m 307m 292m …Run Code Online (Sandbox Code Playgroud) top ×10
linux ×9
memory ×3
ubuntu ×2
amazon-ec2 ×1
cpu-usage ×1
htop ×1
io ×1
load-average ×1
monitoring ×1
php ×1
process ×1
ps ×1