-1

当我运行 atop并让它显示交换使用情况时,我得到以下输出。但是,我swapoff -a在启动 Firefox 之前禁用了交换。SWAP那么这里的字段中显示了什么?当我这样做时cat /proc/meminfo,我得到一个名为的字段的非零值SwapCached。这是什么?我猜它是 中SWAP显示的所有值的总和top。这些与进程使用的总内存有什么关系?

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP 
    COMMAND                                                                                                                                      
         1604 dumrat    20   0  287m  62m  26m R    1  3.1   0:05.03 225m firefox-bin                                                                                                                                  
         1415 dumrat     9 -11 94264 4668 3552 S    0  0.2   0:00.10  87m pulseaudio 
4

1 回答 1

1

最好的猜测是这个。

当您说swapoff时,它会阻止任务进一步“交换”(从技术上讲,它是分页,而不是交换),但不会从交换设备中删除已经交换的页面。通常各种共享库会在加载时立即进行交换:它们会在这里停留很长时间,没有必要在负载高时浪费时间交换它们。只要活动进程需要这些库,它们就在 RAM 中,但也在交换空间中。

也许 Firefox 使用了一些已经映射到交换空间的库——Xlib、GTK 等,而这个交换空间与它的 'SWAP' 列相反。Linux倾向于将所有共享页面计算到共享它们的每个进程,无论是否RAM。

同样,这是我的猜测;带一粒盐。

于 2010-12-18T13:47:07.393 回答