就是想
(1)进程在top中的内存百分比是相对于内存还是相对于内存+swap?
(2)如果是前者,那怎样得到后者?反之亦然。
(3) 要确定是否适合运行另一个可执行文件,我应该只查看内存还是查看内存+交换?或者,在哪些情况下我应该考虑哪个?
(4)粗略地说,内存(或内存+交换)的使用程度,我最好等待而不是提交另一个作业(当然它不是很小)?
感谢致敬!
答案1
看一个例子:
内存:总计 7928892k,已使用 7814100k,可用 114792k,缓冲区 181504k
交换:总计 1020088k,已使用 92k,可用 1019996k,缓存 2651664k
PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令
11933 根 18 0 11.6g 3.4g 1.0g S 1 45.2 463:56.35 java
1)与没有交换的内存相比,%Mem 似乎是百分比 RES。
2) 只需将 Swap 总数添加到 Mem Total 并与 RES 进行比较。
3+4) 通常,除了内存之外,您还会考虑更多因素(例如 CPU 和 IO 竞争),但仅基于内存:如果新进程无法放入没有交换的内存中,则最好等待。如果它可以放入内存 + 交换中,它将可以工作,但比第一个选项慢。不确定现在当它无法放入内存 + 交换时会发生什么,但这几乎肯定很糟糕。另一个需要考虑的因素是,操作系统将使用未使用的内存进行缓存,因此即使第二个进程可以放入,执行速度也可能比等待第一个进程完成时慢,因为两个进程可用的缓存都较少。
答案2
我也有同样的问题“%MEM”与 (RAM) 或 (RAM+SWAP) 有关吗?
直到我发现了这一点来源
“RES” 是该进程在 RAM 中消耗的内存,“%MEM” 表示该值占可用 RAM 总量的百分比。