阅读624 返回首页    go 阿里云 go 技术社区[云栖]


tmpfs详解

查看磁盘挂载命令是df -hT,我们使用此命令除了会查看到系统盘以及数据盘具体挂载情况,还会看到一个tmpfs也在挂载。

[root@iZ2zeg413r63lhzmigi1y2Z ~]# df -hT

Filesystem     Type   Size  Used Avail Use% Mounted on

/dev/vda1      ext4    40G  1.1G   37G   3% /

 

[root@iZ2zeg413r63lhzmigi1y2Z ~]# free -m

             total       used       free     shared    buffers     cached

Mem:                   124        872          0          7         57

-/+ buffers/cache:         59        936

Swap:            0          0          0Swap:      2064376          0    2064376

查看tmpfs大小是499M, 和内存大小相比,约为内存的一半。df查看到tmpfs,是挂载到/dev/下的shm目录,tmpfs是一个临时文件系统,驻留在内存中,所以/dev/shm/这个目录不在硬盘上,而是在内存里。因为是在内存里,所以读写非常快,可以提供较高的访问速度。linux下,tmpfs默认最大为内存的一半大小,使用df -h命令刚才已经看到了,但是这个df查看到的挂载内存大小的数值,如果没有使用,是没有去真正占用的,只有真正在tmpfs存储数据了,才会去占用。比如,tmpfs大小是499M,用了10M大小,内存里就会使用真正使用10M,剩余的489M是可以继续被服务器其他程序来使用的。

但是因为数据是在内存里,所以断电后文件会丢失,内存数据不会和硬盘中数据一样可以永久保存。了解了tmpfs这个特性可以用来提高服务器性能,把一些对读写性能要求较高,但是数据又可以丢失的这样的数据保存在/dev/shm中,来提高访问速度。

 

我们还可以根据实际需要去调整tmpfs文件的大小。

[root@iZ2zeg413r63lhzmigi1y2Z shm]# mount -o remount,size=777M tmpfs /dev/shm

[root@iZ2zeg413r63lhzmigi1y2Z shm]# df -hT

Filesystem     Type   Size  Used Avail Use% Mounted on

/dev/vda1      ext4    40G  1.1G   37G   3% /

 

这种修改是临时修改,重启后会恢复正常,恢复为内存一半大小。

永久修改可以

vim  /etc/fstab 

tmpfs这一行改为:

tmpfs                   /dev/shm                tmpfs   defaults,size=777M     0 0

重启会自动挂载为777M大小,永久生效。

 

最后更新:2017-07-03 14:02:32

  上一篇:go  “数据智能”加速中国产业转型出海
  下一篇:go  “数加”斩获2017软博会金奖