原因在平时的工作中,我们经常需要查看Linux服务器的磁盘挂载使用情况。我们可以使用df命令。不知道你有没有注意到。我们使用这个命令来查看系统盘和数据盘的挂载情况。在其他情况下,您还会看到还挂载了一个tmpfs。[root@test~]#df-hTFilesystemTypeSizeUsedAvailUse%Mountedon/dev/vda1ext440G1.1G37G3%/tmpfstmpfs499M0499M0%/dev/shm同时可以注意到那这个tmpfs的大小是499M,跟内存相比,大小大约是内存的一半。[root@test~]#free-mtotalusedfreesharedbufferscachedMem:9961248720757-/+buffers/cache:59936Swap:000Swap:206437602064376通过df可以看到tmpfs挂载了进去到/dev/下的shm目录,什么是tmpfs?其实它是一个驻留在内存中的临时文件系统,所以目录/dev/shm/不在硬盘上,而是在内存中。因为是在内存中,读写都很快,可以提供很高的访问速度。在linux下,tmpfs默认最多是内存大小的一半。刚才使用df-h命令看到了,但是这个df查看到的挂载内存大小的值,如果没有使用,实际上并没有被占用,只有在tmpfs存储数据的时候才会占据。比如tmpfs的大小是499M,如果使用10M,那么内存中就会使用10M,剩下的489M可以给服务器上的其他程序使用。但由于数据在内存中,断电后文件会丢失,内存数据也不会像硬盘中的数据那样永久保存。知道tmpfs的特性可以用来提高服务器性能,所以将一些读写性能要求高但又容易丢失的数据存放在/dev/shm中,以提高访问速度。Resize:我们也可以根据实际需要调整tmpfs文件的大小。[root@test]#mount-oremount,size=777Mtmpfs/dev/shm[root@test]#df-hTFilesystemTypeSizeUsedAvailUse%Mountedon/dev/vda1ext440G1.1G37G3%/tmpfstmpfs777M0777M0%/dev/shm这种修改是临时修改,重启后恢复正常,恢复到内存一半大小。永久修改,可以将vim/etc/fstab中tmpfs这一行改为:tmpfs/dev/shmtmpfsdefaults,size=777M00这样设置后,重启后会自动挂载到777M大小,并且它将永久生效。实际应用:最后说一下tmpfs的一些应用。Tmpfs仍然被广泛使用。在Linux中,一些程序的临时文件可以放在tmpfs中,利用tmpfs比硬盘快的特性来提高系统性能。比如可以用来放squid程序的缓存文件。当然,还有其他用途。我们应该想到,既然tmpfs的挂载点可以作为普通磁盘使用,那么它也可以作为nfs的共享目录。但是使用tmpfs做nfsd共享需要考虑瓶颈是网卡的速度还是tmpfs的读写速度。如果网卡的速度是瓶颈,那就用nfs建立一个普通的磁盘目录就可以了。因为tmpfs在重启后丢失了,所以在使用tmpfs作为nfs之前,必须先从磁盘拷贝或者使用rsync从其他服务器到tmpfs。更新文件时,首先更新磁盘上的文件,或者更新rsync的源。然后设置一个定时过程,每分钟从磁盘或rsync将程序同步到tmpfs。tmpfs的其他应用希望本文对您使用tmpfs有所帮助。另外请注意重启后数据会丢失!
