tmpfs是一种虚拟内存的文件系统,通俗点就是在内存中开辟一个空间,来存放要运行的文件,它d读取块,通过mount来挂载的。因为在树莓派中要连物联网,传上我外接传感器的数据,所以使用tmpfs来实现,避免sd卡擦写太多次。(ps:tmpfs读取速度快,但是在重启后数据不会保存。)
首先,建立文件夹sudo mkdir /mnt/tmp 把文件夹挂入内存中 sudo mount -t tmpfs -o size=5m tmpfs /mnt/tmp 运行后可以使用df -h查看是否正确,使用free查看内存使用情况 如果要在开机后自动将文件夹挂入内存中,修改 /etc/fstab (/etc/fstab文件夹是用来存放文件系统静态信息的文件) 加入 tmpfs /mnt/tmp size=5m 0 0
tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化。
它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。Linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。 Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数 据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。 VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(The size of RM + The size of Swap)。 但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。 tmpfs默认的大小是RM的一半,假如你的物理内存是1024M,那么tmpfs默认的大小就是512M,一般情况下,是配置的小于物理内存大小的。tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是不会被系统回收重新划分的。当删除tmpfs中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源。 LINUX中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点提升系统性能。 |