Linux 内存统计 lost ram,理解linux下/dev/shm tmpfs

Oracle 11g引入了MEMORY_TARGET参数,用于控制oracle对于系统内存的使用,首次将SGA和PGA整合在一起实现自动管理,一旦设置了Memory_target 参数,oracle就会根据需要自动调整SGA和PGA以合理分配及使用内存。如果Memory_target设置不当,就容易引发ORA-00845错误。原因是Memory_target和/dev/shm (即tmpfs)有紧密联系。下面就来研究下/dev/shm究竟是什么,他的作用是什么,如何修改以及他的应用场景

一、/dev/shm是什么

/dev/shm是linux非常有用的一个目录,它就是所谓的tmpfs,也可以称之为临时文件系统(不是块设备),类似oracle中的临时表空间一样,用于加速和优化系统。该目录并没有放在磁盘上,而上在内存当中。因此在linux下,不用大费周折的去建ramdisk,直接使用/dev/shm就可以达到很好的效果。

Tmpfs和ramdisk(虚拟磁盘)。Tmpfs可以使用RAM,也可以使用交换分区来进行存储。传统的ramdisk(虚拟磁盘)是个块设备,并且需要mkfs之类的命令之后才可以真正的使用它。Tmpfs是一个文件系统,不是块设备,系统默认启动就会加载/dev/shm,只要安装它就可以使用了。

Tmpfs优势。

1.    动态文件系统的大小

2.    读写速度快。典型的tmpfs文件系统会完全驻留在RAM中,读写几乎是瞬间完成。

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

注意

在oracle数据库启动后,在/dev/shm目录下会产生大量ORA文件,一定不要试图去删除这些文件,删除之后,oracle数据库会宕掉。

二、/dev/shm如何修改大小

关于/dev/shm容量的问题,在linux下,默认/dev/shm为实际物理内存的1/2,使用df –h命令查看。实际上它不会真正的占用这块内存。如果/dev/shm下没有任何文件,它实际占用的内存就是0字节;如果它最大为1G,里面放有100M的文件,那么剩余的900M任然可以被其他应用程序所使用,但是已经占用的这100M内存空间是不会被系统回收重新划分的。

临时调整tmpfs大小,重启后失效

默认的最大一半内存在某些场合可能不够用,并且默认的额inode数量很低,一般都要调高些,可以用下面的命令来实现

#mount–o size=1500m –o nr_inodes=1000000 –o noatime,nodiratime –o remount /dev/shm

在2G的机器上,/dev/shm最大尺寸调整到1.5G,并且inode数量调整到1000000,这意味着大致可存入100万个小文件

永久修改tmpfs大小,修改/etc/fstab文件

tmpfs /dev/shm tmpfsdefaults,size=1500M 0 0

修改之后remount<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值