UNIX上的进程大小

Solaris,HP-UXAIX 上获取进程大小的正确方法是什么?我们是否应该使用 topps -o vsz 或其他内容?

0
额外 编辑
意见: 3

4 答案

是的,你有权锁定VSZ。

ps u will give you the VSZ and RSS, which are the virtual memory size and resident set size. The RSS is how much physical memory has been allocated to the process, and the VSZ is the virtual memory size of the process. If you have several copies of a program running, a lot of the memory in the VSZ will be shared between those processes.

0
额外
如果你感兴趣的是内存消耗,VSZ号码是毫无用处的。 VSZ测量进程标记的进程的多少内存空间为操作系统应该映射的内存,如果进程偶然碰触它的话。但这与记忆是否真的被触及和使用无关。 VSZ是关于进程如何分配内存的内部细节?它一次捕获的大量未使用的内存有多大。查看RSS实际开始使用的内存页数。
额外 作者 Brandon Rhodes,

vsizerssrprvtrshrd 以及其他难以理解的缩写的确切定义因操作系统而异OS。 topps 命令的手册页将会有某种描述,但所有这些描述都会大大简化(或者基于长期消失的内核实现) BR> 作为一个概念,“过程规模”在一般情况下难以确定。特定情况下的答案在很大程度上取决于操作系统中实际的内存管理实现,并且很少像大多数用户(以及大多数开发人员)脑海中存在的整洁的“进程大小”概念那样令人满意。

例如,这些数字(也可能是它们的任意组合)都不能用于告诉您在给定数量的空闲内存中一次可以运行多少个这样的进程。但实际上,你最好的选择就是从这个角度出发:你为什么要这个号码,你会用它来做什么?鉴于这些信息,我认为你会得到更有用的答案。

0
额外

On Solaris, you can get detailed information on a process's memory usage with the pmap command. In particular, pmap -x shows you how much of a process's memory is shared and how much is specifically used by that process. This is useful for working out the "marginal" memory usage of a process -- with this technique you can avoid double-counting shared libraries.

0
额外

我总结了像这样的所有进程的驻留集大小(以root身份):

ps ax -o rss | awk '{rss += $1;} END { print rss}'
0
额外