linux系统/dev/shm是什么,如何修改?

来源:互联网 发布:apache jar包官方下载 编辑:程序博客网 时间:2024/05/21 10:26

因为经验不足,所以不能一阵见血的搞定,oracle调整内存的时候,发现系统内存跟/dev/shm 有关。

我理解的是,oracle能够使用的最大内存跟/dev/shm的大小有关,oracle11g中memory_target<=/dev/shm,当时调整的时候,我吧memory_targert调整到比/dev/shm 大的时候,启动oracle的就报错,当时没有记下报错信息,但是大致的就是,memory_target过大,我的内存是64G,给memory_target=40G,去查看/dev/shm 只有26G。于是我又把memory_target调到26G,就可以启动。

查看tmpfs的情况

[oracle@Cargo-Oracledb ~]$ df -l
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-root
                      16600432   8565604   7177948  55% /
/dev/sda1               194442     12981    171422   8% /boot
tmpfs                 67108864  36599052  30509812  55% /dev/shm
/dev/mapper/VolGroup01-lv1
                     123854820  67743484  49819880  58% /u01
/dev/mapper/VolGroup01-lv2
                      82467504  36799700  41478620  48% /u01/app/oracle/oralogs

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

tmpfs有以下优势: 
1.tmpfs 的另一个主要的好处是它闪电般的速度.因为典型的tmpfs文件系统会完全驻留在RAM 中,读写几乎可以是瞬间的.
2.tmpfs数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的.所以有必要做一些脚本做诸如加载,绑定的操作.通常使用/dev/shm作共享内(shm_open,shm_unlink)。 /dev/shm是个临时文档系统(tmpfs),能够从/etc/fstab中mount。因此,支持标准的参数例如"size",能够用来增加或减少在/dev/shm上的tmpfs大小.(默认的,他的大小是系统RAM的一半)

df -l可以看出/dev/shm的大小是系统物理内存的一半.

 (建议最好在自己电脑里面做,我也是的,成功了才在服务器上做)

调整/dev/shm的大小 
1)查看大小 
[root@hxl shm]# df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
none                  505M     0  505M   0% /dev/shm
 
2)修改大小 
vi /etc/fstab 
tmpfs /dev/shm tmpfs defaults,size=4096M 0 0
 
3)重新挂载 
umount /dev/shm 
mount /dev/shm
 
4)查看修改后的大小 

df -h /dev/shm 

5,这是我自己注意到的一点,当挂载/dev/shm的时候,出现一个现象,就是每挂一次,df -l 就会多一条记录。

[oracle@Cargo-Oracledb ~]$ df -l
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-root
                      16600432   8565604   7177948  55% /
/dev/sda1               194442     12981    171422   8% /boot
tmpfs                 67108864  36599052  30509812  55% /dev/shm
/dev/mapper/VolGroup01-lv1
                     123854820  67743484  49819880  58% /u01
/dev/mapper/VolGroup01-lv2
                      82467504  36799700  41478620  48% /u01/app/oracle/oralogs
tmpfs                 67108864  36599052  30509812  55% /dev/shm
tmpfs                 67108864  36599052  30509812  55% /dev/shm
tmpfs                 67108864  36599052  30509812  55% /dev/shm

我这里出现了4条。但是df -h /dev/shm的时候,就只有一条。
[oracle@Cargo-Oracledb ~]$ df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  64G   35G   30G  55% /dev/shm


原创粉丝点击