Linux下/dev/shm与swap的区别

小柊 发表于 2015年11月21日 22时07分30秒

刚刚在酷壳上看到一个很有意思的文章《程序员那些悲催的事儿》,里面有很多程序员工作时发生的操蛋错误,一会儿会把这篇搬运到本博客来分享。

在那篇文章中,提到了Linux下的/dev/shm目录下文件存取非常快,那么这个/dev/shm目录是什么呢?

1./dev/shm

首先可以看出来/dev/shm是一个设备文件, 可以把/dev/shm看作是系统内存的入口, 可以把它看做是一块物理存储设备,

一个tmp filesystem, 你可以通过这个设备向内存中读写文件, 以加快某些I/O高的操作,比如对一个大型文件频繁的open, write, read,

据说oracle就利用了/dev/shm(shitou没用过oracle), 可以通过mount命令列出当前的/dev/shm的挂载的文件系统,

你可以直接对/dev/shm进行读写操作, 例如:

touch /dev/shm/file1

Linux默认(CentOS)/dev/shm分区的大小是系统物理内存的50%, 虽说使用/dev/shm对文件操作的效率会高很多,不过是基于内存的文件系统,系统重启后/dev/shm下的文件就不存在了。

但是目前各发行软件中却很少有使用它的(除了前面提到的Oracle), 可以通过ls /dev/shm查看下面是否有文件, 如果没有就说明当前系统并没有使用该设备。

 

2.swap

而swap是Linux的虚拟内存, 即在硬盘上开辟空间当内存不够时充当内存使用, 因此可以理解为当/dev/shm空间不够时可以占用swap的空间

 

3.总结

/dev/shm简单的讲就是内存盘;

swap简单的讲就是虚拟内存。

 

 

 

小柊 转自网络

2015年11月21日 22:04:15

相关文章

  1 条评论发布于 “Linux下/dev/shm与swap的区别

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注