把内存当硬盘,提速你的linux系统

场景:电脑内存太大用不了那么多,空着浪费,所以利用起来。内存读写速度高用来缓存或者编译,甚至存临时文件最好不过了~~

Windows下有一种叫法叫做内存盘,Linux自然也有,看了Linux中ramdisk,tmpfs,ramfs比较与说明这篇文章后,决定使用tmpfs文件系统。

关于tmpfs和VM

linux的内存(VM),包括ram和swap两部分。

  • ram就是你的物理内存,swap就是在装系统的时候划分的swap分区(在win下叫做页面文件,默认位于C:\pagefiles.sys)。
  • VM也是程序所能使用的最大内存上限,tmpfs本质上也是VM,tmpfs划出VM的部分页面作为一个文件系统.

关于tmpfs和ramdisk

  • linux下的ramdisk是由内核提供的,要使用之,mount命令挂载即可。不需要第三方工具。但因为它会被视为块设备,所以仍然需要格式化该文件系统。
  • ramdisk一旦创建就会占用固定大小的物理内存,tmpfs则是动态分配。

tmpfs的优点

  • 因为tmpfs是建立在VM上的,而不是物理磁盘上,所以不需要格式化就可以使用,所以不用尝试mkfs.tmpfs了,没有这条命令。

  • tmpfs的大小是动态的,用多少才分配多少,删除文件则会释放相应的VM空间,=.=这一点非常令人激动。

  • 当您的物理内存不足以支撑分配为tmpfs的大小时,它会自动使用swap的页面。

  • tmpfs大部分时间是驻留在物理内存中,这使得其读写速度超快。

tmpfs的缺点:

tmpfs的先天优势变成了他的先天劣势:

  • 内存的特性导致位于tmpfs上的数据断电会丢失。
  • 相比较硬盘的价格来说,内存无疑还是很昂贵的,所以用tmpfs的目录不要放太大的东西。

tmpfs的用途

  • 程序运行产生的临时文件,我觉得tmpfs天生就是为tmp目录设计的。
  • 编译时的缓存目录,用内存来做真是再好不过。

tmpfs的用法

mount tmpfs /tmp -t tmpfs -o size=1024m
  • 1024不是固定的,实际大小根据你的实际情况定,比如可以在系统开了很长时间很大负载的时候看看(空闲的内存和swap)一共还有多少,最好不要超过这个值。
  • 这里必须有mount权限,可以用sudo来获得权限,’size=’指定tmpfs动态大小的上限,如果/tmp目录(即将使用的)大小超过指定大小,一样会提示你空间不足。
  • 之所以不推荐这样做,是因为mount之后/tmp会被立即清空,如果你有程序有在/tmp中打开的文件(比如socket),会出错,而且每次都要手动挂载,多麻烦(=.=#)。
    基于以上原因,最好还是编辑/etc/fstab文件来让系统启动时帮你搞定。

推荐方法如下:

sudo gedit /etc/fstab

在最后添加如下内容:

mount tmpfs in /tmp/
tmpfs /tmp tmpfs size=1024m 0 0

保存,关闭,然后在下次启动时你就用上tmpfs了。

    原文作者:左蓝
    原文地址: https://www.jianshu.com/p/6f9b200671bb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞