tmpfs是一种基于内存的文件系统。由于是在内存中,所以速度飞一样的快。
[apsara@dw-151-53 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 4.8G 957M 3.6G 21% /
/dev/sda8 110G 61G 44G 59% /home
/dev/sda6 2.9G 401M 2.3G 15% /var
/dev/sda5 2.9G 100M 2.6G 4% /tmp
/dev/sda2 9.5G 7.0G 2.1G 78% /usr
/dev/sda1 99M 18M 77M 19% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/shm就是基于tmpfs文件系统的。
默认情况下/dev/shm的大小为系统物理内存的一半。
下面测试下对tmpfs的读写速度的测试。
[apsara@dw-151-53 sunwg]$ du -h /home/apsara/sunwg/0.log
1.8G 0.log
ext3文件系统
[apsara@dw-151-53 sunwg]$ time cp /home/apsara/sunwg/0.log /home/apsara/sunwg/1.log
real 0m32.486s
user 0m0.055s
sys 0m4.676s
拷贝速度 1.8G/32.486s = 56.7M/s
tmpfs
[apsara@dw-151-53 sunwg]$ time cp /home/apsara/sunwg/0.log /dev/shm/0.log
real 0m4.445s
user 0m0.028s
sys 0m2.356s
拷贝速度 1.8G/4.445s = 414.7M/s
因为两次都是读的ext3文件系统的文件,所以速度仅仅差了8倍左右。
因为tmpfs是基于内存的,所以系统重起后数据会全部消失。
tmpfs适合作为临时文件的文件系统。
如果不想使用系统的tmpfs,还可以创建自己的tmpfs
mount tmpfs /sunwg -t tmpfs -o size=32m
tmpfs的最大优势就是速度快,在内存足够的时候使用tmpfs可以极大地提高系统效率。
但要注意一定要控制tmpfs的大小,如果使用过量的话可能会占用大量内存,那就得不偿失了