我需要在Linux上使用tmpfs。我有一些文件要玩,我知道我有多少文件,我知道每个文件的大小。 如何确定我的tmpfs的大小?
我正在使用挂载程序:mount -t tmpfs -o size=?? name_tmpfs /mnt/mountpoint_tmpfs
我正在尝试了解要使用的尺寸值。 我做了一个测试,通过创建一个4096(页面大小)字节的tmpfs,我在其中创建了一个文件,但是如果我想填充它(每个示例只有一个字节),我会遇到“交换时写错误”的情况。我不知道需要存储一个1字节文件的大小,因此对于我的“工作文件”我完全迷失了!
我发现每个教程的示例都使用一个随机的大字体,但是我真的很想了解该机制,并了解我的工作文件需要多少tmpfs大小(我知道有多少个,每个大小,我可以找到一个解决方案对吗?)。
感谢您阅读:)
答案 0 :(得分:-1)
文件系统包含数据和元数据。元数据通常是固定大小的,并在fs创建期间分配(nr_inodes
tmpfs挂载选项)。数据也占据固定大小的块,无论实际文件大小如何。要查看实际的数据使用情况,du -s
会做得很好:
root@localhost:/run/shm# echo > x; du -sh x
4.0K x
如您所见,在我的内核上,tmpfs使用4096字节的块来存储文件,因此每个文件的大小将四舍五入为4096或整数倍。我创建了一个大小为4k的tmpfs,并且能够创建一个1字节的文件,但不超过这个数目,这是预期的。我还能够创建960k空文件,这是系统上tmpfs的默认inode限制,证明了数据和元数据的存储是分开的。