容器中的共享库

2024-02-20

对于两个进程A和B,都使用库libc.so,libc.so只加载到内存一次。当 A 和 B 都运行在同一主机和同一 rootfs 上时,这是正常情况。

对于容器来说,如果A和B运行在不同的容器中,A和B是否共享相同的内存区域?

例如

imageA

--libc.so

--程序A

imageB

--libc.so

--程序B

we use chroot在不同的 rootfs 中运行 A 和 B。两个libc.so是相同的。 libc.so会被加载到内存两次吗?


实际上,进程 A 和 B 使用共享库 libc.socan共享相同的记忆。有点不直观的是,它取决于您使用的 Docker 存储驱动程序。如果您使用的存储驱动程序可以将共享库文件公开为源自同一设备/inode,当它们驻留在同一 docker 层时,那么它们将共享相同的虚拟内存缓存页面。当使用aufs、overlay或overlay2存储驱动程序时,您的共享库将共享内存,但当使用任何其他存储驱动程序时,它们不会共享内存。

我不确定为什么 Docker 文档中没有更明确地说明这个细节。或者也许是,但我只是错过了。如果您尝试运行密集的容器,这似乎是一个关键的区别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

容器中的共享库 的相关文章

随机推荐

  • 正则表达式电子邮件验证

    我用这个 w w w 2 3 正则表达式来验证电子邮件 w 这是一级域名 许多字母和数字 还有点和连字符 w 这是二级域名 w 2 3 这适用于其他级别域 从 3 到无穷大 其中包括一个点和 2 或 3 个文字 这个正则表达式有什么问题 编
  • 如何使用 iTextSharp 编辑 PDF?

    我想使用 C 代码以编程方式编辑 PDF 文件 我知道这很难 是否可以使用 itextsharp 或者有什么替代方案 正如OP在对该问题的评论中澄清的那样 标记 删除的文本不应出现在 pdf 的打印 视图中 因此 这里有一个简单的解决方案
  • 如何修复“IMvcBuilder”不包含“AddXmlDataContractSerializerFormatters”的定义

    我有最新的 Net Core v2 1 4 我尝试添加AddXmlDataContractSerializerFormatters in the Startup cs文件但它报告说IMvcBuilder不包含它的定义 My startup
  • 将罗马数字转换为整数

    我下面的罗马数字到整数转换器 https www selftaughtjs com algorithm sundays converting roman numerals https www selftaughtjs com algorit
  • 委托泛型操作,其中泛型类型未知。如何创建这样的东西?

    假设我有以下代码 static class Store
  • Active Storage:在 video_tag 中显示视频

    在 Rails 5 2 应用程序中 我想显示之前通过 Active Storage 在 S3 中上传的视频 当我使用这个时 我收到此错误 The asset is not present in the asset pipeline 我检查了
  • 为什么编译器在没有闭包的情况下为委托添加额外的参数?

    我正在玩delegates并注意到当我创建一个Func
  • 如何解析Python库中的数据包? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如何使用 python 从 pcap 文件或接口解析数据包 我正在专门寻找一个使用记录良好的库的解决方案
  • 如何以编程方式更改默认声音播放设备?

    如何以编程方式更改 vista 中播放和录制的默认音频设备 是否有像Windows XP中的声音管理器那样的注册表设置 哪个 API 可以实现 系统托盘音频设备切换器使用 Software Microsoft Multimedia Soun
  • 零寄存器如何提高性能?

    在 MIPS ISA 中 有一个零寄存器 r0 始终给出零值 这允许处理器 任何产生要被丢弃的结果的指令都可以将其目标定向到该寄存器 成为一个来源0 据说在这source https web archive org web 20170328
  • 使用 pyspark 结构化流计算移动平均列

    我正在使用 pyspark 处理一些传入的流数据 我想向我的数据帧添加一个具有 50 秒移动平均值的新列 我尝试使用带有 rangeBetween 的 Window 规范 import pyspark sql window as W w W
  • 导入 mysql.connector ModuleNotFoundError:没有名为“mysql.connector”的模块; “mysql”不是一个包

    导入 mysql connector ModuleNotFoundError 没有名为 mysql connector 的模块 mysql 不是一个包 pip 安装 mysql connector python rf python版本 3
  • 无法显示希腊字符 .mdb 文件(PHP 和 ODBC)

    我在显示 MS Access 2007 表中希腊语列中的文本时遇到问题 我正在使用 PHP 和 dbc odbc pconnect Driver Microsoft Access Driver mdb Dbq mdbFilename use
  • 使用 PHP 分块传输 FTP 上传?

    是否可以使用 PHP 进行 FTP 上传 我有文件需要上传到另一台服务器 但我只能通过 FTP 访问该服务器 不幸的是 我无法增加该服务器上的超时时间 有可能做到这一点吗 基本上 如果有一种方法可以写入文件的一部分 然后附加下一部分 并重复
  • 如何使用图像代替box-shadow来达到类似的效果?

    我想要实现如下图所示的框阴影效果 图片在这里 https i stack imgur com BpqGM png 但是我不想使用css3box shadow财产 这是因为我正在构建一个phonegap android应用程序 并且在使用时存
  • 使用react-loadable延迟加载组件的动态路径导入

    我正在使用 create react app 创建一个应用程序 并使用 React loadable 延迟加载组件 我想要做的是导入加载器对象或react loadble模块的Loadable函数的动态路径 Code const Loada
  • npm install 缺少模块

    在我能跑之前gulp在我的项目中我需要运行npm install 除了在我的计算机上之外 这都有效 因为我收到以下错误 Error Cannot find module socket io at Function Module resolv
  • 加密会话变量有安全方面的好处吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 所有字母的正则表达式

    我需要所有字母表的正则表达式 我有一个输入和目标文本 它们都可以属于不同的字母表 我的意思是它们可以属于中文 拉丁文 西里尔文和任何其他字母 我需要一个用于多语言输入和多语言目标文本的正则表达式 有人对此有任何想法吗 我该如何编写这个正则表
  • 容器中的共享库

    对于两个进程A和B 都使用库libc so libc so只加载到内存一次 当 A 和 B 都运行在同一主机和同一 rootfs 上时 这是正常情况 对于容器来说 如果A和B运行在不同的容器中 A和B是否共享相同的内存区域 例如 image