巧用Tmpfs加速你的Linux系统服务器

林继 VPS 知识 1,888 共写了1546个字 (2012-11-24 23:15:30) 没有评论 打印 扫描二维码 百度已收录

默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。

tmpfs有以下优势:

1、动态文件系统的大小

2、tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。

3、tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

好了讲了一些大道理,大家看的烦了吧,还是讲讲我的应用吧:)

首先在/dev/shm建个tmp文件夹,然后与实际/tmp绑定

/dev/shm 与 /tmp的绑定在重新启动服务器以后就会消失,这是由于tmpfs文件系统的特性,您还要把

  1. mkdir /dev/shm/tmp 
  2. chmod 1777 /dev/shm/tmp 
  3. mount --bind /dev/shm/tmp /tmp

添加到 /etc/rc.local 中使每次开机都即时生效,不用去一次次创建和绑定。

mount –bind是什么意思?

mount –bind 是将一个目录中的内容挂载到另一个目录上,用法是

# mount –bind olddir newdir

这个命令使得自己搭建的FTP要共享某个目录的时候变得特别方便。如果要取消mount用命令:

# umount olddir 即可。

1、squid的缓存目录设置

vi /etc/squid/squid.conf

修改成

cache_dir ufs /tmp 256 16 256

这里的第一个256表示使用256M内存,我觉得高性能LINUX双效防火墙HOWTO使用ramdisk的方法还不如直接使用tmpfs,至少每次启动不用mkfs,还可以动态改变大小。

然后重启一下服务,ok,现在所有的squid缓存文件都保存倒tmpfs文件系统里了,很快哦。

2、对php性能的优化

对于一个访问量大的以apache+php的网站,可能tmp下的临时文件都会很多,比如seesion或者一些缓存文件,那么你可以把它保存到tmpfs文件。

保存seesion的方法很简单了只要修改php.ini就行了,由于我已经把/dev/shm/tmp与/tmp绑定,所以不改写也行,至于php程序产生的缓存文件那只能改自己的php程序了:)

—————————————————  亲,这是分割线  —————————————————

debian下设置

/tmp 使用 tmpfs

一般而言,若將記憶體模擬成磁碟並拿來做為 /tmp 的話將會有效加快一些應用程式的執行速度。而相同的,有些暫放在 /tmp 下的資料如果在關機後被人拿去解讀的話也會產生安全上的問題。所以若能將 /tmp 放在記憶體裡,不但能增進系統的速度,在關機後 /tmp 裡的資料也將跟著消失,這將是一舉兩得的做法。

在 Debian GNU/Linux 裡,預設上就會把記憶體拿來模擬成磁碟了,也就是您在 df 指令裡所看到的 /dev/shm。由於系統記憶體十分寶貴,所以 /dev/shm 會動態調整其大小,但您還是可以修改 /etc/default/tmpfs 來指定其限額,例:

  1. # SHM_SIZE sets the maximum size (in bytes) that the /dev/shm tmpfs can use.
  2. # If this is not set then the size defaults to the value of TMPFS_SIZE
  3. # if that is set; otherwise to the kernel’s default.
  4. #
  5. # The size will be rounded down to a multiple of the page size, 4096 bytes.
  6. SHM_SIZE=200m

然後請再修改 /etc/fstab 讓 /tmp 在開機時能掛在 /dev/shm 上,例:

  1. # <file system> <mount point> <type> <options> <dump> <pass>
  2. tmpfs /tmp tmpfs size=100m,mode=1777 0 0

設定完成後,重新開機您就會發現 /tmp 己經掛在 tmpfs 上了:

  1. ~# df

檔案系統 1K-區段 已用 可用 已用% 掛載點

  1. tmpfs 102400 0 102400 0% /tmp

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >