- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
/dev/shm
与在常规文件系统上写入文件相比,效率如何?据我所知,/dev/shm
也是硬盘上的一个空间,所以读写速度是一样的。
我的问题是,我有一个 96GB 的文件和只有 64GB 的内存(+ 64GB 交换空间)。然后,同一进程的多个线程需要读取文件的小随机 block (大约 1.5MB)。
/dev/shm
是一个很好的用例吗?
它会比从 /home
以只读模式打开文件然后传递给线程以读取所需的随机 block 更快吗?
最佳答案
你不使用/dev/shm
。它的存在使 POSIX C 库可以通过 POSIX API 提供共享内存支持。不是这样你可以戳里面的东西。
如果您想要一个属于您自己的内存文件系统,您可以将其挂载到任何您想要的地方。
mount -t tmpfs tmpfs/mnt/tmp
,例如。
Linux tmpfs
是一个只存在于 RAM 中的临时文件系统。它是通过一个没有任何磁盘存储的文件缓存来实现的。它会在内存压力下将其内容写入交换文件。如果您不想要交换文件,您可以使用 ramfs
。
我不知道您从哪里想到使用 /dev/shm
来提高读取文件的效率,因为它根本不是这样做的。
也许您正在考虑通过 mmap
系统调用使用内存映射?
在这里阅读这个答案:https://superuser.com/a/1030777/4642它涵盖了很多 tmpfs 信息。
关于linux - 如何以及何时使用/dev/shm 来提高效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42884087/
如果未指定,默认情况下 docker 使用 64m 的 shm 大小,但可以在 docker 中使用 --shm-size=256m 增加该大小 我应该如何增加 kuberenetes 容器的 shm
我希望能够将/dev/shm 预设为不同于 64 MB 的值,这样我启动的任何容器都会自动采用该新值。 我知道我能跑 docker run --shm-size=2G some-container 但
我需要帮助来弄清楚为什么我的 b) 基态图看起来不对,这是完整的问题:(我认为完整发布它会给我正在尝试使用的方法提供上下文) (a) Consider a square potential well
我正在尝试打开一个 shm 文件以在内核和用户进程之间共享数据。下面是我的内核模块代码。 Sys 日志输出表明没有遇到错误。加载模块后,我看不到我试图在/dev/shm 中创建的文件。我做错了什么?
tmpfs 是 Linux/Unix 系统上的一种基于内存的文件系统,即 tmpfs 使用内存或 swap 分区来存储文件。 Linux 内核中的 VM 子系统负责在后台管理虚拟内存资源 Virt
我正在将 Selenium Standalone Firefox 作为 Azure 容器实例运行。为了解决运行 protractor 测试时经常出现的错误“无法解码木偶的响应”,我需要增加容器的共享内
我创建了一个Docker容器,但是现在我需要/dev/shm作为安装在容器内部的tmpfs。 如果我手动更改Docker文件夹中的config.lxc文件并取消注释mount /dev/shm行,则D
我正在将 Selenium Standalone Firefox 作为 Azure 容器实例运行。为了解决运行 protractor 测试时经常出现的错误“无法解码木偶的响应”,我需要增加容器的共享内
我注意到命令 docker build有一个参数 --shm-size bytes它用于设置/dev/shm 的大小。但我不知道为什么docker build需要使用共享内存。 docker buil
"abc" 字符串被存储到共享内存。 程序已通过 return 0; 完成(退出),但字符串仍存储在内存中。 它会在那里停留多久? 它会保留在那里直到系统重启吗? 可以相信它会留在那里吗? 相关代码:
可能是我的问题有点太深了,我想到了一个不存在的问题。我希望你能帮忙。 ;-)问题如下:我在启动时在 Linux 中启动一个进程 (rc.d),然后创建一个共享内存并 fork 两个守护进程。守护进程一
一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要
a.模板编译缓存 参考文件include/global.func.php及include/template.func.php 模板编译缓存的原理其实很简单,如果模板是第一次编译,则直接编译它,如果不
1、/dev/shm理论 默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录。可以通过df 命令查看结果. /dev/shm/是linux下一个非常有用的目录
我需要在/dev/shm 中创建一个大文件(几 GB)。这是 Linux 机器上的 RAMdisk。这必须尽可能快。我目前在 C 中使用 5 个独立的 POSIX 线程来创建连续的 100 MB 段,
我需要在/dev/shm 中创建一个大文件(几 GB)。这是 Linux 机器上的 RAMdisk。这必须尽可能快。我目前在 C 中使用 5 个独立的 POSIX 线程来创建连续的 100 MB 段,
我有一个容器,它必须使用大于默认 64Mb 的/dev/shm 运行。它可以像这样运行它: docker run --shm-size=1G my-container 虽然每次都必须提供 'shm-s
我有密码 shmid = shmget(IPC_CREAT, size, IPC_CREAT|0666) ; if ( shmid SHMMAX, or no new segment
我需要一种 C 或 C++ 的方法来从 /dev/shm 获取可用的空闲内存。请注意,不幸的是,在我的 Linux 上的 ARM 架构中,ipcs 报告了一个错误的最大值。可用内存信息,但是 df -
/dev/shm 与在常规文件系统上写入文件相比,效率如何?据我所知,/dev/shm 也是硬盘上的一个空间,所以读写速度是一样的。 我的问题是,我有一个 96GB 的文件和只有 64GB 的内存(+
我是一名优秀的程序员,十分优秀!