黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述Linux 一键配置 Oracle 主机 /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
既然是基于内存的文件系统,系统重启后/dev/shm下的文件就不存在了。Linux默认(CentOS)/dev/shm分区的大小是系统物理内存的50%, 虽说使用/dev/shm对文件操作的效率会高很多。但是目前各发行软件中却很少有使用它的(除了前面提到的Oracle), 可以通过ls /dev/shm查看下面是否有文件, 如果没有就说明当前系统并没有使用该设备。
因此需要在 /etc/fstab 文件中加上配置:
DAYTIME=$(date +%Y%m%d)
memTotal=$(grep MemTotal /proc/meminfo | awk \'{print $2}\')
shmTotal=$(df -k /dev/shm | awk \'{print $2}\' | head -n 2 | tail -n 1)
if [ "$(grep -E -c "/dev/shm" /etc/fstab)" -eq 0 ]; then
[ ! -f /etc/fstab."${DAYTIME}" ] & & cp /etc/fstab /etc/fstab."${DAYTIME}"
cat < < EOF > > /etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
mount -o remount /dev/shm
else
if [ "$shmTotal" -lt "$memTotal" ]; then
shmTotal=$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/fstab
cat < < EOF > > /etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
mount -o remount /dev/shm
fi
fi
【Linux 一键配置 Oracle 主机 /dev/shm】
本次分享到此结束啦~
关注公众号:Lucifer三思而后行
推荐阅读
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Util-linux-2.37.2
- MAC环境变量的配置小笔记
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Man-DB-2.9.4
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Procps-ng-3.3.17
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Bash-5.1.8
- 使用Hi3861驱动交流电机变频器方法简介
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Sed-4.8
- Linux From Scratch(LFS11.0)构建 LFS 系统 - GCC-11.2.0
- Linux From Scratch(LFS11.0)构建 LFS 系统 - Grep-3.7