linuxdevshm
① linux系统/dev/shm是什么,如何修改
象虚拟磁盘一样,tmpfs可以使用您的ram,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个mkfs之类的命令才能真正地使用它,tmpfs是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。
tmpfs有以下优势:
1,动态文件系统的大小。
2,tmpfs的另一个主要的好处是它闪电般的速度。因为典型的tmpfs文件系统会完全驻留在ram中,读写几乎可以是瞬间的。
3,tmpfs数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。
好了讲了一些大道理,还是讲讲应用吧:
首先在/dev/stm建个tmp文件夹,然后与实际/tmp绑定
mkdir/dev/shm/tmp
chmod1777/dev/shm/tmp
在使用mount--bindolderdirnewerdir命令来挂载一个目录到另一个目录后,newerdir的权限和所有者等所有信息会发生变化。挂载后的目录继承了被挂载目录的所有属性,除了名称。
② Linux内存文件系统tmpfs(/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
三、/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的权限和所有者等所有信息会发生变化。挂载后的目录继承了被挂载目录的所有属性,除了名称。
③ Linux虚拟机磁盘使用情况疑问,请高手解答!
占D盘的
首先虚拟机的磁盘空间在win下面是一个类似vmdk后缀名的文件,一般是在虚拟机下用多少,在win下就占多少。
然后你在虚拟机里没有磁盘空间可能你装的软件或者开发包太多了,一些驱动模块在这个虚拟机里也编译进去了等等。你ls -lah只是看的/目录下文件夹的大小和文件的大小,并不是看得所以文件的大小
④ linux的/dev/shm是干什么用的
/dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)。
linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。
(4)linuxdevshm扩展阅读
/dev/shm的容量分配:
/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
通过df -h命令,可以看到/dev/shm的文件系统为tmpfs,即为临时文件系统。其他的几个tmpfs的挂载目录,其实质上于/dev/shm是一致的。例如:
>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