linux tmpfs是什么

发布时间 - 2023-04-10 00:00:00    点击率:
在linux中,tmpfs是指临时文件系统,是一种基于内存的文件系统,可以使用用户的内存或swap分区来存储文件;简单来说,tmpfs主要存储暂存的文件。tmpfs系统的优势:1、动态文件系统的大小;2、拥有闪电般的速度。

本教程操作环境:linux7.3系统、Dell G3电脑。

Tmpfs是什么

tmpfs(临时文件系统)是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储 暂存的文件。

tmpfs和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储,而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于RAM的文件系统。

优势 :

1、 动态文件系统的大小。

2、tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的tmpfs文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的。同时它也有一个缺点tmpfs数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

注意:tmpfs不具备持久性,重启后数据不保留,请务必注意。

在平常工作中,我们经常需要查看Linux服务器磁盘挂载使用情况,可以使用df命令,不知大家注意到没有,我们使用此命令除了会查看到系统盘以及数据盘挂载情况,还会看到一个tmpfs也在挂载。

[root@test ~]# df -hT
 
Filesystem     Type   Size  Used Avail Use% Mounted on
 
/dev/vda1      ext4    40G  1.1G   37G   3% /
 
tmpfs          tmpfs  499M     0  499M   0% /dev/shm

同时可以注意到,这个tmpfs大小是499M, 大小和内存相比,约为内存的一半。

[root@test~]# free -m
 
             total       used       free     shared    buffers     cached
 
Mem:           996        124124        872          0          7         57
 
-/+ buffers/cache:         59        936
 
Swap:            0          0          0Swap:      2064376          0    2064376

我们通过df可以看到tmpfs是挂载到/dev/下的shm目录,tmpfs是什么呢? 其实是一个临时文件系统,驻留在内存中,所以/dev/shm/这个目录不在硬盘上,而是在内存里。因为是在内存里,所以读写非常快,可以提供较高的访问速度。linux下,tmpfs默认最大为内存的一半大小,使用df -h命令刚才已经看到了,但是这个df查看到的挂载内存大小的数值,如果没有使用,是没有去真正占用的,只有真正在tmpfs存储数据了,才会去占用。比如,tmpfs大小是499M,用了10M大小,内存里就会使用真正使用10M,剩余的489M是可以继续被服务器其他程序来使用的。但是因为数据是在内存里,所以断电后文件会丢失,内存数据不会和硬盘中数据一样可以永久保存。了解了tmpfs这个特性可以用来提高服务器性能,把一些对读写性能要求较高,但是数据又可以丢失的这样的数据保存在/dev/shm中,来提高访问速度。

Tmpfs大小调整

有时候,当应用程序使用到Tmpfs时,而在部署的时候如果没有对应用程序占用的内存做足够的评估时,就有可能把Tmpfs用满,这个时候就需要调整Tmpfs的大小了,当然,调整的大小不能大于你机器内存大小,否则,你只能换机器了,又或是优化你的应用程序。

[root@test]# mount -o remount,size=777M tmpfs /dev/shm
 
[root@test]# df -hT
 
Filesystem     Type   Size  Used Avail Use% Mounted on
 
/dev/vda1      ext4    40G  1.1G   37G   3% /
 
tmpfs          tmpfs  777M     0  777M   0% /dev/shm

这种修改是临时修改,重启后会恢复正常,恢复为内存一半大小。

永久修改可以

vim  /etc/fstab 
 
把tmpfs这一行改为:
 
tmpfs                   /dev/shm                tmpfs   defaults,size=777M     0 0

这样设置后重启会自动挂载为777M大小,永久生效。

实际应用:

最后在说下tmpfs的一些应用,tmpfs用途还是较广的,Linux中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点来提升系统性能。比如可以用来放squid程序的缓存文件。当然,还有其他的用途,我们应该想到,tmpfs的挂载点既然能当作普通磁盘使用,也就能当作nfs的共享目录使用。但是用tmpfs做nfsd共享需要考虑网卡速度和tmpfs读写速度二者孰为瓶颈,如果网卡速度是瓶颈,那么直接用nfs创建一个普通磁盘目录即可。因为tmpfs重启后丢失,使用tmpfs做nfs前,须先从磁盘或用rsync从其他服务器拷贝到tmpfs里。更新文件时,先更新磁盘上的文件,或更新rsync的源。然后设置定时进程,每分钟从磁盘或rsync里将程序同步到tmpfs即可。

tmpfs的其他应用希望本文对大家使用tmpfs有所帮助,另外,请务必注意,重启后数据会丢失!

相关推荐:《Linux视频教程》


# linux  # 文件系统  # 可以使用  # 重启  # 是一个  # 是在  # 应用程序  # 较高  # 注意到  # 如果没有  # 闪电般 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 用yum安装MySQLdb模块的步骤方法  教你用AI润色文章,让你的文字表达更专业  智能起名网站制作软件有哪些,制作logo的软件?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Laravel如何使用Service Container和依赖注入?(代码示例)  Mybatis 中的insertOrUpdate操作  JavaScript中的标签模板是什么_它如何扩展字符串功能  高端网站建设与定制开发一站式解决方案 中企动力  BootStrap整体框架之基础布局组件  JS碰撞运动实现方法详解  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  JavaScript模板引擎Template.js使用详解  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  javascript中闭包概念与用法深入理解  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  Linux安全能力提升路径_长期防护思维说明【指导】  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  b2c电商网站制作流程,b2c水平综合的电商平台?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  QQ浏览器网页版登录入口 个人中心在线进入  网站制作价目表怎么做,珍爱网婚介费用多少?  JavaScript常见的五种数组去重的方式  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  如何在Ubuntu系统下快速搭建WordPress个人网站?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何用西部建站助手快速创建专业网站?  Laravel如何处理和验证JSON类型的数据库字段  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  SQL查询语句优化的实用方法总结  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  黑客入侵网站服务器的常见手法有哪些?  如何在IIS中新建站点并解决端口绑定冲突?  简历没回改:利用AI润色让你的文字更专业  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  Android实现代码画虚线边框背景效果  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址