使用tmpfs加速你的程序

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的大小,如果使用过量的话可能会占用大量内存,那就得不偿失了

展开阅读全文

没有更多推荐了,返回首页