[root@oracle11g ~]# df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
none 257220 157504 99716 62% /dev/shm
[root@oracle11g ~]#
[root@oracle11g ~]# umount /dev/shm
umount: /dev/shm: device is busy
umount: /dev/shm: device is busy
[root@oracle11g ~]#
umount: /mnt: device is busy
umount: /mnt: device is busy
SQL> show parameter memory_target
NAME TYPE VALUE
----------------------------------------------- ------------------------------
memory_target big integer 1344M
--这里的memory_target 有1344M。
[root@rac1 ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 14G 11G 2.4G 83% /
tmpfs 978M 88K 978M 1% /dev/shm
/dev/sda1 194M 46M 139M 25% /boot
--这里可以看到tmpfs 只有978M。 这个参数我在安装DB的时候已经修改过:
[root@rac1 ~]# cat /etc/fstab
UUID=b1d2de8e-de31-4deb-b4e8-755c0ed01616/ ext4 defaults 1 1
UUID=4df5aa5f-8ef0-473a-931a-51d11e21aa53/boot ext4 defaults 1 2
UUID=82085104-5021-4aaf-8e85-f213998107b6swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=3G 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
--只是这里的配置在启动的时候没有生效。
--把tmpfs 重新mount 一下:
[root@rac1 ~]# umount /dev/shm
umount: /dev/shm: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
--设备忙,用fuser处理一下:
[root@rac1 ~]# fuser -km /dev/shm
/dev/shm: 1805m
[root@rac1 ~]# umount /dev/shm
[root@rac1 ~]# mount /dev/shm
[root@rac1 ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 14G 11G 2.4G 83% /
/dev/sda1 194M 46M 139M 25% /boot
tmpfs 3.0G 0 3.0G 0% /dev/shm
--现在已经正常了。
假设无法卸载的设备为/mnt,运行下列命令即可:
# fuser -m -v /mnt用户 进程号 权限 命令
/mnt: galeki 335 ..c.. gqview
-m参数显示所有使用指定文件系统的进程,后面可以跟挂载点,或是dev设备,-v参数给出详细的输出,可以看出,原来是gqview这个程序还在霸占着移动设备,
fuser还给出了程序的进程号,知道了进程号,你就可以随便怎么处置这个程序了。
另外你也可以添加一个-k参数:
fuser -m -k /mnt
这招自动把霸占着/mnt/的程序杀死。如果你不是很明确是否要杀死所有霸占设备的程序,你还可以加一个-i参数,这样每杀死一个程序前,都会询问:
# fuser -m -v -i -k /mnt
用户 进程号 权限命令
/mnt: galeki 371 ..c.. gqview
杀死进程371 ? (y/N)
[root@oracle11g ~]# df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
none 257220 157504 99716 62% /dev/shm
[root@oracle11g ~]# vi /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/hdc /media/cdrom auto pamconsole,exec,noauto,managed 0 0
/dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0
例如:为了将/dev/shm的大小增加到1GB,修改/etc/fstab的这行:默认的:
none /dev/shm tmpfs defaults 0 0
改成:
none /dev/shm tmpfs defaults,size=1024M 0 0
size参数也可以用G作单位:size=1G
重新mount /dev/shm使之生效:
# mount -o remount /dev/shm
马上可以用"df -h"命令检查变化。
也可以用下面的方式
1.# mkdir /mnt/tmp
2.# mount -t tmpfs -o size=800m,mode=1777 tmpfs /mnt/tmp
卸载:
1.# umount /mnt/tmp
当然也可以添加相应的设置到 /etc/fstab 里。
编辑 /etc/fstab,加入或修改 /tmp 这行:
tmpfs /tmp tmpfs size=800m,mode=1777 0 0
直接使用 /dev/shm 的 tmpfs 应该是最方便的。/dev/shm 预设是挂载 ram的一半大小 。