全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Linux系统中的tempfs与/dev/shm

tmpfs 是 Linux/Unix 系统上的一种基于内存的文件系统,即 tmpfs 使用内存或 swap 分区来存储文件。

Linux 内核中的 VM 子系统负责在后台管理虚拟内存资源 Virtual Memory,即 RAM 和 swap 资源,透明地将 RAM 页移动到交换分区或从交换分区到 RAM 页,tmpfs 文件系统需要 VM 子系统的页面来存储文件。tmpfs 自己并不知道这些页面是在交换分区还是在 RAM 中;做这种决定是 VM 子系统的工作。tmpfs 文件系统所知道的就是它正在使用某种形式的虚拟内存。

由于 tmpfs 是基于内存的,因此速度是相当快的。另外 tmpfs 使用的 VM 资源是动态的,当删除 tmpfs 中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源,当然在其中创建文件时也会动态的分配VM资源。另外,tmpfs 不具备持久性,重启后数据不保留。

/dev/shm 就是一个基于 tmpfs 的设备,在有些 Linux 发行版中 /dev/shm 是 /run/shm/ 目录的一个软链接。实际上在很多系统上的 /run 是被挂载为 tmpsf 的。用 df -T 可以查看系统中的磁盘挂载情况:

文件系统  1K-块 已用 可用 已用% 挂载点
udev  1859684 4 1859680 1% /dev
tmpfs  374096 1524 372572 1% /run
/dev/sda8 76561456 36029540 36619724 50% /
none   4 0 4 0% /sys/fs/cgroup
none  5120 0 5120 0% /run/lock
none  1870460 27688 1842772 2% /run/shm
none  102400 56 102344 1% /run/user

那么,我们就先来说说 /run 目录。现在我们知道,该目录是基于内存的,实际上它的前身是 /var/run 目录,后来被 /run 替换。这是因为 /var/run 文件系统并不是在系统一启动就是就绪的,而在此之前已经启动的进程就先将自己的运行信息存放在 /dev 中,/dev 同样是一种 tmpfs,而且是在系统一启动就可用的。但是 /dev 设计的本意是为了存放设备文件的,而不是为了保存进程运行时信息的,所以为了不引起混淆,/dev 中存放进程信息的文件都以 "." 开始命名,也就是都是隐藏文件夹。但是即便是这样,随着文件夹的数量越来越多,/dev 里面也就越来越混乱,于是就引入了替代方案,也就是 /run。实际上在很多系统上 /var/run 目录仍然存在,但其是 /run 目录的一个软链接。

/var/run 目录中主要存放的是自系统启动以来描述系统信息的文件。比较常见的用途是 daemon 进程将自己的 pid 保存到这个目录。

/dev/shm/ 是 Linux 下一个非常有用的目录,它的意思是 Shared memory,也就是共享内存。由于它在内存上,所以所有系统进程都能共享该目录。默认情况下它的大小是内存的一半。如果希望改变它的大小,可以用 mount 来管理:

mount -o size=4000M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

如果希望永久生效,可以修改 /etc/fstab 文件:

tmpfs /dev/shm tmpfs defaults,size=4G 0 0

利用 /dev/shm 可以做很多事情,这里说一个 Python 的应用。用 Python 做数据处理时,可能会用到 numpy,通常做数据处理时的数据量都是很大的,如果有多个进程都需要用到同样的数据,那么 /dev/shm 就派上了用场,也就是用共享内存技术。Python 有一个第三方库可以用来在多个进程间共享 numpy 数组,即 SharedArray。SharedArray 便是基于 /dev/shm 的,并且采用 POSIX 标准,能够兼容多个平台。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# linux  # dev  # shm  # tempfs  # linux下查看swap分区被哪些进程占用实现脚本  # linux vps服务器进程kswapd0与events/0消耗大量CPU的问题  # linux添加和增大交换分区(swap)的方法  # 文件系统  # 是在  # 多个  # 自己的  # 都是  # 数据处理  # 虚拟内存  # 的是  # 是为了  # 已用  # 是一种  # 放在  # 也会  # 也就  # 在此  # 上了  # 是这样  # 是基于  # 都能  # 可以用 


相关文章: 零服务器AI建站解决方案:快速部署与云端平台低成本实践  怀化网站制作公司,怀化新生儿上户网上办理流程?  平台云上自助建站如何快速打造专业网站?  实例解析angularjs的filter过滤器  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  制作销售网站教学视频,销售网站有哪些?  免费网站制作appp,免费制作app哪个平台好?  中山网站制作网页,中山新生登记系统登记流程?  如何基于PHP生成高效IDC网络公司建站源码?  如何用美橙互联一键搭建多站合一网站?  建站为何优先选择香港服务器?  如何用搬瓦工VPS快速搭建个人网站?  XML的“混合内容”是什么 怎么用DTD或XSD定义  济南企业网站制作公司,济南社保单位网上缴费步骤?  如何破解联通资金短缺导致的基站建设难题?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  微课制作网站有哪些,微课网怎么进?  浅谈Javascript中的Label语句  再谈Python中的字符串与字符编码(推荐)  建站主机数据库如何配置才能提升网站性能?  高防服务器租用指南:配置选择与快速部署攻略  企业微网站怎么做,公司网站和公众号有什么区别?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  建站之星导航菜单设置与功能模块配置全攻略  c# 在高并发下使用反射发射(Reflection.Emit)的性能  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  如何通过NAT技术实现内网高效建站?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  网站专业制作公司有哪些,做一个公司网站要多少钱?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  油猴 教程,油猴搜脚本为什么会网页无法显示?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何撰写建站申请书?关键要点有哪些?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何通过VPS建站实现广告与增值服务盈利?  如何通过cPanel快速搭建网站?  如何做网站制作流程,*游戏网站怎么搭建?  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何通过二级域名建站提升品牌影响力?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  北京的网站制作公司有哪些,哪个视频网站最好?  建站之星安装失败:服务器环境不兼容?  营销式网站制作方案,销售哪个网站招聘效果最好?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。