linux下的/dev/shm目录

linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。
/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)

简要说明

/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
通过下面的命令,我们可以看到/dev/shm的文件系统为tmpfs,即为临时文件系统。其他的几个tmpfs的挂载目录,其实质上于/dev/shm是一致的。

/home/o [o@o-s] [16:22]
> df -h
文件系统 容量 已用 可用 已用% 挂载点
dev 3.9G 0 3.9G 0% /dev
run 3.9G 656K 3.9G 1% /run
/dev/sda2 58G 12G 43G 22% /
tmpfs 3.9G 1.0G 2.9G 26% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 0 3.9G 0% /tmp
/dev/sdb1 58G 24G 32G 44% /mnt/data
/dev/sda1 488M 26M 463M 6% /boot
tmpfs 791M 0 791M 0% /run/user/1000

文件测试

执行下面命令

/home/o [o@o-s] [16:18]
> ls /dev/shm /home/o [o@o-s] [16:18]
> free -m
total used free shared buff/cache available
Mem: 7901 249 2217 1 5434 7595
Swap: 0

我们可以看到当前/dev/shm目录为空。当前系统使用的内存为249MB,可用内存为7595MB,而buff/cache缓存了5434MB的内容在内存中,并且shared部分仅为1MB大小。
这个缓存的数据可以通过修改/proc/sys/vm/drop_caches文件的内容为3来清理掉。这里就不做了。

现在我们在/dev/shm目录中创建一个大小为1G的文件

/home/o [o@o-s] [16:19]
> dd if=/dev/zero of=/dev/shm/123.random bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,0.322718 秒,3.3 GB/秒

看看操作后的结果

> free -m
total used free shared buff/cache available
Mem: 7901 248 1191 1025 6461 6571
Swap: 0 0 0

可以看到,现在shared部分的内存已经有了1025MB,并且buff/cache部分也增加了1G多,可用内存减少了1G。

容量修改

如果需要使用到这个目录,并且默认的大小不够使用,而其他程序占用的内存又比较少的时候,可以修改器最大占用内存的大小,来达到自己的目的。
其实修改它的原理很简单,对其进行重新挂载即可,挂载的时候指定挂载参数。

/home/o [o@o-s] [16:38]
> sudo mount -o size=5128M -o remount /dev/shm

上面对/dev/shm进行了重新挂载,并修改其大小为5G。使用下面的命令查看,可以看到确实已经修改为了5G。

/home/o [o@o-s] [16:38]
> df -h
文件系统 容量 已用 可用 已用% 挂载点
dev 3.9G 0 3.9G 0% /dev
run 3.9G 656K 3.9G 1% /run
/dev/sda2 58G 12G 43G 22% /
tmpfs 5.1G 1.0G 4.1G 20% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 0 3.9G 0% /tmp
/dev/sdb1 58G 24G 32G 44% /mnt/data
/dev/sda1 488M 26M 463M 6% /boot
tmpfs 791M 0 791M 0% /run/user/1000

可以通过修改/etc/fstab文件,来修改默认的参数。

mount的参数可以参考如下
http://www.cnblogs.com/oloroso/p/5405099.html

linux下的/dev/shm目录的更多相关文章

  1. linux下的/dev/shm/ 以及与swap目录的区别【转】

    /dev/shm 概念 首先可以看出来/dev/shm是一个设备文件, 可以把/dev/shm看作是系统内存的入口, 可以把它看做是一块物理存储设备,一个tmp filesystem, 你可以通过这个 ...

  2. linux下的/dev/shm/及对Oracle 的影响

    一./dev/shm/介绍: /dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里.因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm ...

  3. linux下修改/dev/shm tmpfs文件系统大小

    默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样.象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储.而且传统的 ...

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

    巧用linux服务器下的/dev/shm/来释放磁盘的压力 浏览:646 | 更新:2013-06-18 18:08 | 标签: 磁盘 tmpfs是Linux/Unix系统上的一种基于内存的文件系统. ...

  5. linux概念之/dev/shm

    Linux默认(CentOS)/dev/shm分区的大小是系统物理内存的50%, 虽说使用/dev/shm对文件操作的效率会高很多,但是目前各发行软件中却很少有使用它的(除了前面提到的Oracle), ...

  6. 巧用linux服务器的/dev/shm/,如果合理使用,可以避开磁盘IO不给力,提高网站访问速度。

    巧用linux服务器的/dev/shm/ 巧用linux服务器的/dev/shm/,如果合理使用,可以避开磁盘IO不给力,提高网站访问速度. 首先让我们认识一下,什么是tmpfs和/dev/shm/? ...

  7. linux下删除所有.svn目录

    linux下删除所有.svn目录方法为    find . -type d -name ".svn"|xargs rm -rf    或者    find . -type d -i ...

  8. linux下查看文件及目录个数

    linux下查看文件及目录个数1.查看当前文件和目录总数(不包括子目录):ls -l | wc -l 2.查看当前目录下文件个数(不包括子目录):ls -l |grep "^-"| ...

  9. Linux下最快速共享目录的方法

    Linux下最快速共享目录的方法 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 搭建FTP,或者是搭建网络文件系统,这 ...

随机推荐

  1. Nginx+PHP-fpm高负载优化及压力测试方法

    Nginx+PHP-fpm组合,以内存占用小,负载能力强壮的特点,成为小内存VPS建站的首选组合.我们一起来探讨一下nginx+php-fpm高负载的优化方法. 先来看看nginx配置参数的优化.ng ...

  2. Game Programming Pattern

    http://gameprogrammingpatterns.com/contents.html

  3. JS中两个重要的方法 call & apply 学习

    正题: Function.prototype.apply(instance,args)  //args 数组 Function.prototype.Call(instance,a1,a2)  //a1 ...

  4. live555编译、移植

    1.windows下编译 转 http://www.cnblogs.com/skyseraph/archive/2012/04/11/2442840.html 2.linux下编译,以及交叉编译,海思 ...

  5. JavaScript数据类型--值类型和引用类型

    值类型:也称为原始数据或原始值(primitive value). 这类值存储在栈(stack)中,栈是内存中一种特殊的数据结构,也称为线性表,栈按照后进先出的原则存储数据,先进入的数据被压入栈底,最 ...

  6. [FMX] Android APP 启动黑屏优化补丁

    使用说明 *************************************************** Android APP 启动黑屏优化补丁 作者: Swish, YangYxd 201 ...

  7. MVC 随记

    2014-09-04 [1] Json var contact = new Object(); contact.firstname = "Jesper"; contact.surn ...

  8. mysql]一次主从数据不一致的问题解决过程()

    问题 要解决问题就是怎么对比不一致,然后在不影响业务的情况下,修复数据不一致的问题,把从库缺少的数据补上 下面是能想到和找到的几个方案 1 从新从0开始同步,虽然对主库的使用没有影响,但是那么大的数据 ...

  9. 【11-01】Sublime text 学习笔记

    >>>快捷键 CTRL+P ->根据文件名打开文件 “# 标识”“:行号” Ctrl+Shift+P -> 打开Package Control Ctrl+R ->查 ...

  10. thinkphp的url地址区分大小写?

    在默认情况下: 在访问url地址的时候, 其中的 Action类名 即: 模块名称 是区分大小写的. (只有模块名, 即控制器名称) 可以根据设置 'URL_CASE_INSENSITIVE' =&g ...