发布网友 发布时间:2024-10-03 18:42
共1个回答
热心网友 时间:2024-10-19 08:33
首先可以看出来/dev/shm是一个设备文件,可以把/dev/shm看作是系统内存的入口,可以把它看做是一块物理存储设备,一个tmpfilesystem,可以通过这个设备向内存中读写文件,以加快某些I/O高的操作,比如对一个大型文件频繁的open,write,read!
Oracle就利用了/dev/shm(shitou没用过oracle),可以通过mount命令列出当前的/dev/shm的挂载的文件系统,你可以直接对/dev/shm进行读写操作,例如:
#touch/dev/shm/file1既然是基于内存的文件系统,系统重启后/dev/shm下的文件就不存在了。Linux默认(CentOS)/dev/shm分区的大小是系统物理内存的50%,虽说使用/dev/shm对文件操作的效率会高很多。但是目前各发行软件中却很少有使用它的(除了前面提到的Oracle),可以通过ls/dev/shm查看下面是否有文件,如果没有就说明当前系统并没有使用该设备。
因此需要在/etc/fstab文件中加上配置:
DAYTIME=$(date+%Y%m%d)memTotal=$(grepMemTotal/proc/meminfo|awk'{print$2}')shmTotal=$(df-k/dev/shm|awk'{print$2}'|head-n2|tail-n1)if["$(grep-E-c"/dev/shm"/etc/fstab)"-eq0];then[!-f/etc/fstab."${DAYTIME}"]&&cp/etc/fstab/etc/fstab."${DAYTIME}"cat<<EOF>>/etc/fstabtmpfs/dev/shmtmpfssize=${memTotal}k00EOFmount-oremount/dev/shmelseif["$shmTotal"-lt"$memTotal"];thenshmTotal=$memTotal[!-f/etc/fstab."${DAYTIME}"]&&cp/etc/fstab/etc/fstab."${DAYTIME}"line=$(grep-n"/dev/shm"/etc/fstab|awk-F":"'{print$1}')sed-i"${line}d"/etc/fstabcat<<EOF>>/etc/fstabtmpfs/dev/shmtmpfssize=${memTotal}k00EOFmount-oremount/dev/shmfifi本次分享到此结束啦~
公众号:Lucifer三思而后行
热心网友 时间:2024-10-19 08:36
首先可以看出来/dev/shm是一个设备文件,可以把/dev/shm看作是系统内存的入口,可以把它看做是一块物理存储设备,一个tmpfilesystem,可以通过这个设备向内存中读写文件,以加快某些I/O高的操作,比如对一个大型文件频繁的open,write,read!
Oracle就利用了/dev/shm(shitou没用过oracle),可以通过mount命令列出当前的/dev/shm的挂载的文件系统,你可以直接对/dev/shm进行读写操作,例如:
#touch/dev/shm/file1既然是基于内存的文件系统,系统重启后/dev/shm下的文件就不存在了。Linux默认(CentOS)/dev/shm分区的大小是系统物理内存的50%,虽说使用/dev/shm对文件操作的效率会高很多。但是目前各发行软件中却很少有使用它的(除了前面提到的Oracle),可以通过ls/dev/shm查看下面是否有文件,如果没有就说明当前系统并没有使用该设备。
因此需要在/etc/fstab文件中加上配置:
DAYTIME=$(date+%Y%m%d)memTotal=$(grepMemTotal/proc/meminfo|awk'{print$2}')shmTotal=$(df-k/dev/shm|awk'{print$2}'|head-n2|tail-n1)if["$(grep-E-c"/dev/shm"/etc/fstab)"-eq0];then[!-f/etc/fstab."${DAYTIME}"]&&cp/etc/fstab/etc/fstab."${DAYTIME}"cat<<EOF>>/etc/fstabtmpfs/dev/shmtmpfssize=${memTotal}k00EOFmount-oremount/dev/shmelseif["$shmTotal"-lt"$memTotal"];thenshmTotal=$memTotal[!-f/etc/fstab."${DAYTIME}"]&&cp/etc/fstab/etc/fstab."${DAYTIME}"line=$(grep-n"/dev/shm"/etc/fstab|awk-F":"'{print$1}')sed-i"${line}d"/etc/fstabcat<<EOF>>/etc/fstabtmpfs/dev/shmtmpfssize=${memTotal}k00EOFmount-oremount/dev/shmfifi本次分享到此结束啦~
公众号:Lucifer三思而后行