LinuxSEE

  • 首页
  • APACHE
  • CACTI
  • DNS_BIND
  • IPTABLES
  • LINUX杂记
  • LINUX系统性能分析
  • LOG_SERVER
  • LVS+KEEPALIVED
  • MFS
  • MYSQL
  • PHP
  • POSTFIX
  • RSYNC
  • SHELL
  • SQUID
  • VPN

linux下的/dev/shm/

分类:LINUX杂记日期:2012-01-20作者:雨尚

/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。
/dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢?
默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。 mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。

 

为当/dev/shm空间不够时可以占用swap的空间,所以不用担心存储空间不够用。想想看,从磁盘IO操作到内存操作,php读写SESSION的速度会快多少?只是需要注意,存储在/dev/shm的数据,在服务器重启后会全部丢失。

 

默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。
tmpfs有以下优势:
1,动态文件系统的大小。
2,tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。
3,tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。
好了讲了一些大道理,还是讲讲应用吧:
首先在/dev/stm建个tmp文件夹,然后与实际/tmp绑定
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount –bind /dev/shm/tmp /tmp(–bind )
在使用mount –bind olderdir newerdir命令来挂载一个目录到另一个目录后,newerdir的权限和所有者等所有信息会发生变化。挂载后的目录继承了被挂载目录的所有属性,除了名称。
巧用tmpfs加速你的linux服务器,就是使用虚拟磁盘来存放squid的缓存文件和php的seesion。速度快不少哦!
默 认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。
tmpfs有以下优势:
1。动态文件系统的大小,
2。tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。
3。tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。
好了讲了一些大道理,大家看的烦了吧,还是讲讲我的应用吧:)
首先在/dev/shm建个tmp文件夹,然后与实际/tmp绑定
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount –bind /dev/shm/tmp /tmp

1. squid的缓存目录设置
vi /etc/squid/squid.conf
修改成
cache_dir ufs /tmp 256 16 256
这 里的第一个256表示使用256M内存,我觉得http://www.linuxaid.com.cn/articles/4/4 /441672019.shtml里使用ramdisk的方法还不如直接使用tmpfs,至少每次启动不用mkfs,还可以动态改变大小。这时的/tmp 实际就是/dev/shm/tmp
然后重启一下服务,ok,现在所有的squid缓存文件都保存倒tmpfs文件系统里了,很快哦。

2. 对php性能的优化
对于一个访问量大的以apache+php的网站,可能tmp下的临时文件都会很多,比如seesion或者一些缓存文件,那么你可以把它保存到tmpfs文件。
保存seesion的方法很简单了只要修改php.ini就行了,由于我已经把/dev/stm/tmp与/tmp绑定,所以不改写也行,至于php程序产生的缓存文件那只能改自己的php程序了:)
至于tmpfs的其他应用,我想大家可能通过这篇文章会有所启发。

 

Tags: Linux , tmpfs
  • 上一篇:详解Linux系统内存中buffer和cache
0条评论

暂时没有评论!

VPSYOU合作推广
发表评论 点击取消评论.

*必填

*必填

  • 关于LinuxSEE

日志存档

  • 2012 年一月
  • 2011 年十二月
  • 2011 年十一月
  • 2011 年十月
  • 2011 年九月
  • 2011 年八月
  • 2011 年七月
  • 2011 年六月
  • 2011 年五月
  • 2011 年四月
>

热门文章

  • Linux下OPENVPN安装配置
  • APNIC获取准确的IP地址段
  • 用ssh-tunnel模式加密mysql主从复制
  • MYSQL多主一从多实例配置
  • 强制LINUX用户第一次登录改密码命令
  • Linux下路由相关设置
  • 深入研究linux下命令之ls
  • 修改MySQL的内存表的三种方法
  • 非常实用的iptables脚本
  • 全国各地电信、网通、教育网及铁通的DNS服务器地址

随机文章

  • bind9添加相同前缀的多个子域名
  • 网站排障分析常用的命令
  • LVS+KEEPALIVED配置文档
  • Linux下sar使用举例之CPU
  • MYSQL同步原理
  • 在LinuxSEE服务器上添加squid代理本机apache
  • MySQL优化笔记
  • 通过网络安装Linux系统
  • Mysql主从从级联复制(A->B->C)
  • 深入研究linux下命令之ls

最新评论

  • my blog is i»
    Post: 2012-02-15 05:34:01
  • My buddy and»
    Post: 2012-02-14 15:00:04
  • I got what y»
    Post: 2012-02-13 23:49:02
  • Aw, this was»
    Post: 2012-02-13 23:05:38
  • wonderful po»
    Post: 2012-02-10 13:42:50
  • An engrossin»
    Post: 2012-02-10 12:09:51
  • Hello just w»
    Post: 2012-02-09 20:03:14
  • Your content»
    Post: 2012-02-09 00:17:45
  • An interesti»
    Post: 2012-02-08 21:01:19
  • An intriguin»
    Post: 2012-02-08 21:01:19

友情链接

  • 80sec
  • 9inow手机资源门户
  • DBA Notes
  • DeBugFs
  • linuxany.com
  • LinuxTone
  • linux论坛
  • 千千春光
  • 占星师
  • 叶茂盛
  • 寒.枫
  • 张宴
  • 承德旅游日记
  • 最实用的Linux博客
  • 服务器运维
  • 木易水瓶
  • 淘宝数据库技术团队
  • 淘宝核心系统团队博客
  • 简朝阳
  • 运维人生
Copyright © 2011-2012 LinuxSEE All rights reserved.