对 /dev/shm的认识

一、/dev/shm理论

默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录。可以通过df 命令查看结果.
/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。 
tmpfs有以下优势: 
1。动态文件系统的大小,/dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的 
2。tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。 
3。tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

二、修改/dev/shm大小

默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。
#mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。
如果需要永久修改/dev/shm的值,需要修改/etc/fstab
tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0
mount -o remount /dev/shm

可以通过脚本来实现:

#!/bin/bash
size=23G
if [ x$1 != x ]
then
        echo $1
        size=$1
fi
sed -i "/tmpfs/ s/defaults/rw,size=${size}/" /etc/fstab
mount -o remount /dev/shm

三、/dev/shm应用

  首先在/dev/shm建个tmp文件夹,然后与实际/tmp绑定
  #mkdir /dev/shm/tmp
  #chmod 1777 /dev/shm/tmp
  #mount –bind /dev/shm/tmp /tmp(–bind )
  在使用mount –bind olderdir newerdir命令来挂载一个目录到另一个目录后,newerdir的权限和所有者等所有信息会发生变化。挂载后的目录继承了被挂载目录的所有属性,除了名称。Oracle 11g的amm内存管理模式就是使用/dev/shm,所以有时候修改MEMORY_TARGET或者MEMORY_MAX_TARGET会出现ORA-00845的错误

时间: 2024-10-17 18:49:18

对 /dev/shm的认识的相关文章

浅析/dev/shm

一,/dev/shm 概念 /dev/shm 是一个tmpfs文件系统,临时文件系统,是基于内存的文件系统,也就是说/dev/shm中的文件是直接写入内存的,而不占用硬盘空间. 在Centos和Redhat下,/dev/shm目录是一个链接,指向/run/shm目录,在Ubuntu系统下tmpfs文件系统对应的是/run/shm目录,可以使用df命令查看),因为 /dev/shm/这个目录不在硬盘上,而是在内存里,它就所谓的tmpfs. 在Redhat/CentOS等linux发行版中默认大小为

oerr ora 000845解决方法是扩大/dev/shm空间

打开虚拟机发现实例起不来 [[email protected] ~]# su - oraclesq[[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 2 14:59:54 2016 Copyright (c) 1982, 2013, Oracle.  All rights reserved. Connected to an idle instance. [ema

linux的/dev/shm目录用于优化

我们日常操作中经常df –Th查看磁盘容量,那么/dev/shm的作用到底是什么?  $ df -Th 文件系统      类型    容量  已用 可用 已用% 挂载点 /dev/sda2     ext3     57G   32G   23G  59% / /dev/sda5     ext3    476G  341G  111G  76% /var /dev/sda1     ext3    190M   29M  153M  16% /boot /dev/sdb1     ext2 

oracle对/dev/shm的使用

查看共享内存打开的文件数 [[email protected] ~]# lsof -n | grep /dev/shm | wc -l 34693 共享内存中总共文件数 [[email protected] ~]# ls -l /dev/shm | wc -l 495 Why is Oracle keeping hundreds of thousands Open File descriptors in /dev/shm while there are just hundreds of file

用linux服务器下的/dev/shm/来释放磁盘的压力

巧用linux服务器下的/dev/shm/来释放磁盘的压力 浏览:646 | 更新:2013-06-18 18:08 | 标签: 磁盘 tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的内存或swap分区来存储文件.由此可见,tmpfs主要存储暂存的文件.它有如下2个优势 : 1. 动态文件系统的大小.2. tmpfs 的另一个主要的好处是它闪电般的速度.因为典型的 tmpfs 文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的.同时它也有一个缺点  

Linux下的tmpfs文件系统(/dev/shm)

转自:http://www.2cto.com/os/201411/354888.html 介绍 /dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统.redhat中默认大小为物理内存的一半,使用时不用mkfs格式化. tmpfs是Linux/Unix系统上的一种基于内存的虚拟文件系统.tmpfs可以使用您的内存或swap分区来存储文件(即它的存储空间在virtual memory 中, VM由real memory和swap组成).由此可见,tmpfs主要存储暂存

Linux下tempfs及/dev/shm原理与应用

引言: 在linux或unix中使用df命令查看文件系统会发现类似如下信息(ubuntu12.04) 其中有一部分是tmpfs文件系统,挂在/rum下,还有个 none文件系统挂在/run/shm下. 什么是tmpfs? tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的内存或swap分区来存储文件.由此可见,temfs主要存储暂存的文件. linux内核中的VM子系统负责在后台管理虚拟内存资源Virtual Memory,即RAM和swap资源,透明地将RA

修改/dev/shm的大小(含redhat6版本以上重启后失效解决办法)

常规处理方法: 1.编辑 /etc/fstab #vim /etc/fstab 修改前 :tmpfs /dev/shm tmpfs defaults 0 0 修改后:tmpfs /dev/shm tmpfs defaults.size=4g 0 0 2.重新mount /dev/shm #mount -o remount /dev/shm 正常情况,执行上边两部操作就会生效了 针对redhat 或者 centos 6版本以上的系统 重启后设置会失效,需要启动后执行mount -o remount

linux下的/dev/shm/ 以及与swap目录的区别

摘自:http://miaozk2006.blog.163.com/blog/static/3824705820111028183996/ 一./dev/shm/介绍: /dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里.因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果. /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到.但它并不会真正

redhat 7.3 扩展/dev/shm

CLSRSC-184: Configuration of ASM failed CLSRSC-258: Failed to configure and start ASM [[email protected] ~]# df -h Filesystem             Size  Used Avail Use% Mounted on /dev/mapper/rhel-root   51G  7.0G   44G  14% / devtmpfs               977M