如何计算htop“Swp”?

Modified on: Mon, 17 Jun 2019 08:20:02 +0800

当我运行htop(在OS X 10.6.8上)时,我看到类似这样的内容:

  1  [|||||||                    20.0%]     Tasks: 70 total, 0 running
  2  [|||                         7.2%]     Load average: 1.11 0.79 0.64 
  3  [|||||||||||||||||||||||||||81.3%]     Uptime: 00:30:42
  4  [||                          5.8%]
  Mem[|||||||||||||||||||||3872/4096MB]
  Swp[                           0/0MB]

  PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command                                                                      
  284 501       57   0 15.3G 1064M     0 S  0.0  6.5  0:01.26 /Applications/Firefox.app/Contents/MacOS/firefox -psn_0_90134                
  437 501       57   0 14.8G  785M     0 S  0.0  4.8  0:00.18 /Applications/Thunderbird.app/Contents/MacOS/thunderbird -psn_0_114716
  428 501       63   0 12.8G  351M     0 S  1.0  2.1  0:00.51 /Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/
  696 501       63   0 11.7G  175M     0 S  0.0  1.1  0:00.02 /System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Conte
   38 0         33   0 11.1G  422M     0 S  0.0  2.6  0:00.59 /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framewo
  183 501       48   0 10.9G  137M     0 S  0.0  0.8  0:00.03 /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

如何使用千兆字节的VIRT内存并且仍使用0MB的Swap进程?

作者:Weier

最佳答案

VIRT与已用内存(虚拟或其他)没有任何关系,但是使用了地址空间,这与你想象的不相关。

现代操作系统(包括OSX)有一个名为请求分页的功能,通过告诉操作系统将虚拟地址空间的某个区域映射到文件(例如共享库/ DLL)。只有当程序尝试读取文件加载到内存中的那些虚拟地址时。

如果这些共享库实际上是共享的,那么操作系统实际上将跨多个进程共享物理内存;也就是说,这些数十亿字节的大量不仅是文件支持的库,而且还是相同的文件支持的库。

此外,如果需要暂存(对于数据;设置,位图,声音等),并且没有使用任何物理页面,操作系统实际上会丢弃这些文件支持区域的内容并给予它们到你的申请。如果再次需要这些页面,操作系统可以简单地从磁盘重新加载它们。

交换(SWP)是该临时内存的特殊文件支持区域。创建交换空间将允许操作系统将临时内存移动到磁盘而不是(由更多正在运行的进程使用)共享库,通常可以提高性能,也许最令人惊讶的是,生成 less 交换而不是没有交换空间。

作者:geocar

相关问答

添加新评论