前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux内核-tmpfs文件系统

Linux内核-tmpfs文件系统

作者头像
运维小路
发布2024-11-01 20:11:06
760
发布2024-11-01 20:11:06
举报
文章被收录于专栏:运维小路

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软件,日志,进阶命令,防火墙,Shell编程,以及本章将要讲解的内核相关内容,和最后一章Linux系统。

让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解:

Linux内核-什么是内核

Linux内核-内核模块&参数

Linux内核-proc文件系统

Linux内核-sys文件系统

Linux内核-tmpfs文件系统(本章节)

前面讲了2个虚拟文件系统,一个是主要是针对内核的,一个主要是针对cgroup,而tmpfs则是第三个虚拟文件系统,那它是主要针对什么呢?还有名字比较类似的devtmpfs又是做什么的呢?

devtmpfs

devtmpfs是一种在 Linux 内核中用于管理设备文件的临时文件系统。以下是关于它的详细介绍:

一、基本概念

devtmpfs的全称为 “device temporary file system”(设备临时文件系统)。它在内核启动过程中自动创建,并随着系统运行持续存在,为用户空间提供了一种统一的方式来访问设备文件。

二、主要作用

  1. 设备文件管理:
    • 在传统的 Linux 系统中,设备文件通常是在系统启动时通过静态方式创建,或者在设备被检测到时手动创建。而devtmpfs简化了这个过程,内核可以自动在这个文件系统中创建和管理设备文件。
    • 当新的设备被插入或检测到时,内核会自动在devtmpfs中创建相应的设备文件,使得用户空间的程序可以立即访问这些设备,无需等待额外的手动配置或启动脚本。
    • 例如,当你插入一个 USB 存储设备时,内核会自动在devtmpfs中创建对应的设备文件,如/dev/sdX,这样用户空间的文件管理器或其他应用程序就可以通过这个设备文件来访问和操作该存储设备。

tmpfs

tmpfs是一种基于内存和交换空间的临时文件系统,在 Linux 系统中被广泛应用。以下是关于tmpfs的详细介绍:

一、基本概念

tmpfs全称为 “temporary file storage facility”(临时文件存储设施)。它主要用于存储临时数据,这些数据在系统重启后会被自动清除。tmpfs可以使用物理内存和交换空间来存储文件,其大小可以根据系统资源的可用性动态调整。

二、主要特点

  1. 动态大小调整:
    • tmpfs的大小不是固定的,而是可以根据系统的需求动态变化。当有更多的临时数据需要存储时,tmpfs可以占用更多的内存和交换空间;当临时数据减少时,它会释放占用的资源。
    • 这使得tmpfs非常适合存储那些临时产生且大小不确定的文件,例如程序的临时输出、缓存文件等。
    • 例如,一个图像处理程序在运行过程中可能会产生大量的临时图像文件,tmpfs可以根据这些文件的大小自动调整其占用的内存空间,确保系统资源的有效利用。
  2. 快速读写性能:
    • 由于tmpfs的数据存储在内存中,因此它具有非常高的读写速度。与传统的硬盘文件系统相比,tmpfs可以大大提高对临时数据的访问速度。
    • 这对于那些需要频繁读写临时数据的应用程序非常重要,例如数据库缓存、编译器的临时文件等。
  3. 数据易失性:
    • tmpfs中的数据是易失性的,这意味着在系统重启或关闭时,存储在tmpfs中的所有数据都会被丢失。

三、文件系统和内存系统的对比

内存速度-写入/run目录

代码语言:javascript
复制
 fio --name=tmpfs_test1 --filename=/run/testfile --rw=randread --ioengine=libaio --bs=4k --size=256m --numjobs=4 --runtime=60

文件速度-写入/root目录

代码语言:javascript
复制
  fio --name=tmpfs_test --filename=/root/testfile --rw=randread --ioengine=libaio --bs=4k --size=256m --numjobs=4 --runtime=60

可以看出来速度差距很大,可以把我们那些临时文件并且对速度有要求的都可以放置在这里。从下面目录和文件也可以看出来,很多应用软件包括,sshd,crond,docker都会把一些pid文件和socket文件放置到该目录下。

四、在线调整tmpfs

代码语言:javascript
复制
#一般没特殊需要,不要调整
mount -o remount,size=512M tmpfs /run

总结

  1. 整个内核部分只是简单的讲解了如何升级内核,加载管理内核模块同内核参数的修改和持久化;以及3个基于内存的虚拟文件系统。
  2. 其中/proc记录了当前内核的运行状态,很多监控命令的数据都来源此。
  3. /sys主要记录是设备信息和cgroup限制,通过cgroup限制,我们可以实现cpu,内存,磁盘等限制,是我们实现虚拟化,容器的底层技术原理。
  4. 而/tmpfs则是普通用于放置一些临时文件,来提高应用速度,在日常运维中,我们也可以根据需要来使用它。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档