“top”输出中的哪个值代表进程的实际内存大小?

“top”输出中的哪个值代表进程的实际内存大小?

我正在运行 Mac XServe 作为专用的 apache mpm-prefork 服务器,内存为 8GB。作为调优过程的一部分(我是新手),我正在尝试为 MaxClients 找到最佳值。为此,我使用“top”来得出平均进程大小,但我不确定哪个值代表 http 进程的实际内存大小:“RSIZE”或“RPRVT”

这些值有什么区别?感谢您的帮助。

答案1

根据:

http://macosx.com/forums/mac-os-x-system-mac-software/12720-top-command-questions.html

RSIZE = 总驻留内存。可能与其他进程共享。

RPRVT = 常驻私有内存。

根据手册页:

http://www.manpagez.com/man/1/top/osx-10.5.php

内存区域

内存区域的数量和总大小,以及分为私有(分为非库和库)和共享组件的内存区域的总大小。

另一个有趣的链接:

http://lists.apple.com/archives/darwin-dev/2007/Nov/msg00132.html

答案2

dmah 的答案在技术上是正确的 - 但重点是你可以从“top”中显示的每个进程数字中看出共享了多少内存。

当计算 MaxClients 应该是多少时,它并不是一个开始的地方。

有一个复杂情况是,系统将使用尽可能多的可用内存进行 I/O 缓存 - 因此查看未使用的内存也不能给出非常准确的数字!

在 Linux 上有一个命令'自由的' 报告了有和没有 I/O 缓冲/缓存时的内存使用情况,但我不知道 Mac OS 上是否有此功能。我使用由此返回的数字结合 httpd 进程数来计算 MaxClients 应该是多少(直到达到 I/O 缓存受到严重影响的水平,关系才相当线性)。但是如果没有 procfs,我怀疑这不会像为您的机器重新编译它那么简单。

据我所知,BSD 上的 top(或 systat -vmstat)会报告缓冲区使用情况以及页面顶部的总内存统计信息 - MacOS 呢?

相关内容