【操作系统】MacOS虚拟内存统计指标

目录

命令及其结果

参数解读

有趣的实验


在 macOS 系统中,虚拟内存统计指标提供了对系统内存使用情况和虚拟内存操作的重要洞察。通过分析这些指标,我们可以更好地了解系统的性能状况和内存管理情况。

命令及其结果

>>> vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                                7665.
Pages active:                           7161271.
Pages inactive:                         7157755.
Pages speculative:                         1684.
Pages throttled:                              0.
Pages wired down:                       1454118.
Pages purgeable:                          26180.
"Translation faults":                6791372835.
Pages copy-on-write:                   57696402.
Pages zero filled:                   1703440882.
Pages reactivated:                    152904898.
Pages purged:                           2745445.
File-backed pages:                      2962038.
Anonymous pages:                       11358672.
Pages stored in compressor:            12269616.
Pages occupied by compressor:            993465.
Decompressions:                       188199124.
Compressions:                         377521942.
Pageins:                               63862215.
Pageouts:                                361515.
Swapins:                               24523111.
Swapouts:                              29537178.

参数解读

  1. Pages free: 这个指标表示系统中当前可用的空闲页面数量。在需要分配新内存时,这些空闲页面将被使用。
  2. Pages active: 表示当前正在使用或最近被使用的页面数量。这些页面包含了当前正在执行的程序或者最近被访问的数据。
  3. Pages inactive: 表示最近被使用过但现在处于不活跃状态的页面数量。这些页面保留在内存中,以便在需要时快速访问。
  4. Pages speculative: 这些页面被系统预测会被使用,但实际上并未被使用。
  5. Pages throttled: 表示因系统资源限制而被限制访问的页面数量。
  6. Pages wired down: 无法交换出到磁盘的页面数量,通常包含了内核和系统重要数据。
  7. Pages purgeable: 可以被移除或清除的页面数量,以释放内存空间。
  8. Translation faults: 表示在虚拟内存中发生的页转换错误次数,包括缺页中断。
  9. Pages copy-on-write: 表示发生写时复制的页面数量,用于在进程间共享数据时避免写操作相互影响。
  10. Pages zero filled: 表示被填充为零的页面数量,通常用于初始化时分配给进程。
  11. Pages reactivated: 表示被重新激活的页面数量,曾经处于非活跃状态但现在又被重新使用。
  12. Pages purged: 表示被清除或移除的页面数量,通常用于释放内存空间。
  13. File-backed pages: 表示文件支持的页面数量,包含与文件关联的数据。
  14. Anonymous pages: 表示不与文件关联的页面数量,通常包含动态分配的堆内存等。
  15. Pages stored in compressor: 表示存储在压缩器中的页面数量,用于节省内存空间。
  16. Pages occupied by compressor: 表示压缩器占用的页面数量,用于存储压缩后的页面数据。
  17. Decompressions: 表示解压缩的次数,从压缩状态恢复到原始页面状态。
  18. Compressions: 表示压缩的次数,将页面压缩以节省内存空间。
  19. Pageins: 表示页面调入次数,从磁盘调入页面到内存中。
  20. Pageouts: 表示页面调出次数,将页面从内存调出到磁盘中。
  21. Swapins: 表示交换进程的次数,从交换文件中调入进程到内存中。
  22. Swapouts: 表示交换出进程的次数,将进程调出到交换文件中释放内存空间。

有趣的实验

如下代码,可在macos上运行,但在linux上会OOM(如果内存不足的情况)

a=[1]*1024*1024*1024
b=[2]*1024*1024*1024# 上述代码会占用内存,每个约9GB的样子
c = []
c.extend(a)
c.extend(b)

上述代码中,执行extend方法过内存会继续增长,此时如果linux的内存(包括虚拟内存)不足,会直接oom。

MacOS中则不同,MacOS中可以申请到很大的虚拟内存,代码可以正常执行。

通过htop命令可以发现,MacOS下的虚拟实际虚拟内存大小。

这里可以看到MacOS交换内存大小为23G,实际测试下来,程序的虚拟内存占用甚至可以到500GB以上,这个远远超出了实际内存+虚拟内存的大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/459458.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SERVLET线程模型

1. SERVLET线程模型 Servlet规范定义了两种线程模型来阐明Web容器应该如何在多线程环境中处理servlet。第一种模型称为多线程模型,默认在此模型内执行所有servlet。在此模型中,每次客户机向servlet发送请求时Web容器都启动一个新线程。这意味着可能有多个线程同时访问servle…

ansible shell模块 可以用来使用shell 命令 支持管道符 shell 模块和 command 模块的区别

这里写目录标题 说明shell模块用法shell 模块和 command 模块的区别 说明 shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等 shell模块用法 ansible slave -m shell -a cat /etc/passwd | grep root # 可以使用管道…

【typescript】特殊符号用法(?:)(??)(?.)(!)(!!)

一. 问号冒号(?:) 1.可以作为对象类型的可选属性,如: interface Person{name : string;age?: number; }const person1 : Person {name:"zien"} const person2 : Person {name:"sad", age:18} console.l…

使用Pillow来生成简单的红包封面

Pillow库(Python Imaging Library的后继)是一个强大而灵活的图像处理库,适用于Python。Pillow 库(有时也称 PIL 库) 是 Python 图像处理的基础库,它是一个免费开源的第三方库,由一群 Python 社区…

泰克示波器——TBS2000系列界面整体介绍

目录 1.1 通道区域面板标识1.2 示波器测试输出(检测探针与设置的好坏)1.3 面板其他快捷按钮1.4 波器整体界面 1.1 通道区域面板标识 在通道面板的下方标识有示波器的通道属性以及参数值,如我使用的型号为“TBS2104X”的示波器,面…

跨境电商新风潮:充分发挥海外云手机的威力

在互联网行业迅速发展的大环境下,跨境电商、海外社交媒体营销以及游戏产业等重要领域都越来越需要借助海外云手机的协助。 特别是在蓬勃发展的跨境电商领域,像亚马逊、速卖通、eBay等平台,结合社交电商营销和短视频内容成为最有效的流量来源。…

Redis篇之缓存雪崩

一、什么的缓存雪崩 缓存雪崩:在同一时间段大量的缓存key同时失效或者redis服务宕机,导致大量请求到达数据库给数据库带来巨大压力,可能导致数据库崩了。 二、应该怎么解决 1.给不同的Key的TTL添加随机值 2.利用Redis集群提高服务的可用性 3…

Java串口通信技术探究2:RXTX库单例测试及应用

目录 一、创建串口工具类二、串口工具测试三、运行时会遇到的错误JVM崩溃无法找到指定的类 本文主要介绍了Java串口通信技术探究,重点分析了RXTX库单例测试以及串口工具的使用。通过实例演示了如何使用SerialPortTool类进行串口操作,包括打开串口、关闭串…

websocket简易基操

一、概述 1.1 简介 WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议),它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的,Websocket是一个持久化的协议。…

阿里云ECS服务器Linux安装Mysql8

链接:https://pan.baidu.com/s/1s9j7OhiOMV9e9Qq9GDbysA 提取码:dd5a --来自百度网盘超级会员V5的分享 Mysql官网:MySQL 关于Mysql Yum Repository介绍可以看下 更加简单 关于X86和ARM 传到服务器 进入所在包 cd /usr/local/develop/mysql8 解压 …

QGIS导出文字到dxf格式

好久没发布文章了。 为了将qgis中的标注导出dxf中,颇费了一番功夫。因为要将mapus中标注的文字,导入qgis,再倒回dxf后在cad中打开。 下面是试验。 ACAD中把文件另存为dxf文件,然后拖入qgis,左侧会将图形和文字分成2…

代码随想录算法训练营第42天 | 01背包理论基础 416.分割等和子集

01背包理论基础 问题定义:有n件物品和一个能装重量为w的背包,第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包获得的总价值最大。dp数组含义:dp[i][j] 表示从下标为 [0…