微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

记忆 – 如何计算htop“Swp”?

当我运行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进程?

解决方法

VIRT与已用内存(虚拟或其他)没有任何关系,但与已使用的地址空间无关,这与您可能认为的不相关.

现代操作系统(包括OSX)具有称为demand paging功能,其通过告知操作系统将虚拟地址空间的某个区域映射到文件(例如共享库/ DLL)来工作.只有当程序试图读取文件加载到内存中的那些虚拟地址时.

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐