`
本来不想注册
  • 浏览: 189599 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

linux下的/dev/shm/目录

 
阅读更多
/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的空间,所以不用担心存储空间不够用。 -www.2cto.com- 想想看,从磁盘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  -www.2cto.com-
  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
修改成  -www.2cto.com-
cache_dir ufs /tmp 256 16 256
这 里的第一个256表示使用256M内存,我觉得使用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的其他应用,我想大家可能通过这篇文章会有所启发。




作者 DouglasLau
分享到:
评论

相关推荐

    详解Linux系统中的tempfs与/dev/shm

    tmpfs 是 Linux/Unix 系统上的一种基于内存的文件系统,即 tmpfs 使用内存或 swap 分区来存储文件。 Linux 内核中的 VM 子系统负责在后台管理虚拟内存资源 Virtual Memory,即 RAM 和 swap 资源,透明地将 RAM 页...

    Centos7运用/dev/shm进行网站优化

    /dev/shm目录不在磁盘上,而是在内存里,因此使用linux /dev/shm/的效率非常高,直接写进内存. 查看/dev/shm的大小 df -h 修改/dev/shm的大小,默认为内存的一半 vim /etc/fstab 末尾添加 tmps /dev/shm ...

    Linux磁盘扩容 fdisk /dev/vda

    Linux磁盘扩容 df -h ...tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.5M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/vda1 1014M 193M 822M 20% /boot tmpfs 1.6G 0 1.6G 0% /run/user/0

    Linux下如何调整根目录的空间大小

    在使用CentOS6.3版本Linux系统的时候,发现根目录(/)的空间不是很充足,而其他目录空间有很大的空闲,所以本文主要是针对现在已有的空间进行调整。首先,先来查看一下系统的空间分配情况: [root@CentOS-78 /]# df ...

    RHEL7.4Oracle12cR2RAC安装.docx

    tmpfs 32G 640M 31G 2% /dev/shm tmpfs 32G 9.1M 32G 1% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/sda1 1014M 160M 855M 16% /boot /dev/mapper/rootvg-lvvar 7.0G 1.8G 5.3G 26% /var /dev/mapper/rootvg-...

    DU-MySQL-Search-Linux-V5.3

    如果 Linux 服务器只有一个分区,且估计 binlog 大小不超过内存容量的50%,则可将工具上传到 /dev/shm 目录。 /dev/shm是内存虚拟目录,写入数据在内存中不落盘,系统重启后/dev/shm 自动清空。 给执行权限 : ...

    Centos7利用内存优化磁盘缓存读写速度的方法

    Linux中的/dev/shm目录不属于磁盘,而是内存,如果使用/dev/shm/目录作为Linux中的磁盘文件读写缓存,可想效率是非常惊人的。 默认/dev/shm目录没有挂载,需要手动进行挂载。 在以下文件尾端添加以下内容: $ vim /...

    Tiny Core Linux VMware 硬盘安装

    2.关机后,查 TinycoreLinux 目录 大小40.2MB 3.df Filesystem Size Used Available Use% Mounted on rootfs 450.6M 11.4M 439.3M 3% / tmpfs 250.3M 0 250.3M 0% /dev/shm /dev/sda1 7.7G 50.8M 7.7G 1% /mnt/...

    Linux mount挂载和卸载硬盘脚本分享

    Linux 挂载 [root@whp6 ~]# mount /dev/...tmpfs 931M 0 931M 0% /dev/shm /dev/sda1 194M 28M 157M 16% /boot /dev/sdb5 2.0G 68M 1.9G 4% /mnt [root@whp6 ~]# df -T Filesystem Type 1K-blocks Used Available Us

    Oracle dbf文件移动的方法

    背景 oracle空间不足,发现dbf文件未按设计的路径存放,linux磁盘挂载空间未利用,需要移动...tmpfs 3.9G 96K 3.9G 1% /dev/shm tmpfs 3.9G 153M 3.7G 4% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 190M 132

    Linux(Ubuntu)下Mysql5.6.28安装配置方法图文教程

    mysql5.6.28安装配置方法 1.系统基本信息查看,尝试yum安装 $ sudo -s # df -lh Filesystem Size Used Avail Use% Mounted on /dev/vda1 79G 1.6G 74G 3% / ...Linux nj01 3.16.0-34-generic #47~

    Linux环境下Oracle安装参数设置方法详解

    前面讲了虚拟机的设置和OracleLinux的安装,接下来我们来说下Oracle安装前的准备工作。 1、系统信息查看 系统信息查看 首先服务器ip:192.168.8.120 服务器系统:Oracle Linux Server release 6.5 服务器主机名...

    11g安装guide.doc

    [root@localhost ~]# df -h /dev/shm/ Filesystem Size Used Avail Use% Mounted on tmpfs 1.9G 0 1.9G 0% /dev/shm 确定/tmp目录中可用的磁盘空间量,至少需要1G [root@localhost ~]# df -h /tmp Filesystem...

    Centos7 格式化分区并挂载的实现

    Linux 经常可以遇到添加硬盘或者重新挂载分区等情况,本文简单记录挂载新分区的情况。由于磁盘分区之前已经处理过,本次从格式化分区及后续的挂载...tmpfs 47G 0 47G 0% /dev/shm tmpfs 47G 11M 47G 1% /run tmpfs 47G

    Orc:Orc是用Bash编写Linux开发后框架

    它会在/ dev / shm中创建一个典型的目录(.q),并且所有命令输出等都倾向于进入该目录。 它还将在退出时自动删除此目录。 如果/ dev / shm不存在或使用noexec选项挂载,则脚本可以选择另一个目录。 使用的目录存储...

    wineshm-go:该软件包检索Wine共享内​​存映射文件描述符,并使其在Linux中可用

    葡萄酒中的Shm采集器该软件包检索Wine共享内​​存映射文件描述符,并使其在Linux中可用。安装由于对C /编译二进制文件的依赖性,最好的方法是复制此存储库并将其包含在您自己的项目中。例子 // Get wine file ...

    docker:如何为 osx 准备 docker,如何调整 devshm 的大小并进行方便的卷共享

    如果我们在 Linux 上安装,那么不要忘记将我们的用户添加到 docker 组 sudo groupadd docker sudo gpasswd -a ${USER} docker sudo service docker restart 该命令的跟踪添加到( ~/.profile ,或者如果你使用ssh...

    linux实现定时备份mysql数据库的简单方法

    以下是详细步骤: 1、查看磁盘空间情况: [root@localhost backup]# df -h 文件系统 容量 已用 可用 已用% ...tmpfs 488M 0 488M 0% /dev/shm tmpfs 488M 7.7M 480M 2% /run tmpfs 488M 0 488M 0% /sys/fs/cgroup /d

Global site tag (gtag.js) - Google Analytics