刚刚在酷壳上看到一个很有意思的文章《程序员那些悲催的事儿》,里面有很多程序员工作时发生的操蛋错误,一会儿会把这篇搬运到本博客来分享。
在那篇文章中,提到了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的区别”