+ -
当前位置:首页 → 问答吧 → 这个问题比较怪异,关于/tmp空间问题

这个问题比较怪异,关于/tmp空间问题

时间:2010-07-21

来源:互联网

本帖最后由 淡定再淡定 于 2010-07-21 15:00 编辑

新装的系统,文件系统是ZFS的,打EIS补丁的时候提示空间不足

bash-3.00# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
rpool              23.4G   110G    97K  /rpool
rpool/ROOT         4.39G   110G    21K  legacy
rpool/ROOT/newBE   4.39G   110G  4.39G  /
rpool/dump         6.00G   110G  6.00G  -
rpool/export       6.96G   110G    23K  /export
rpool/export/home  6.96G   110G  6.96G  /export/home
rpool/swap         6.07G   110G  6.07G  -
bash-3.00#



bash-3.00# df -h
Filesystem             size   used  avail capacity  Mounted on
rpool/ROOT/newBE       134G   4.4G   110G     4%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   2.5G   520K   2.5G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1
                       115G   4.4G   110G     4%    /platform/sun4u-us3/lib/libc_psr.so.1
/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1
                       115G   4.4G   110G     4%    /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
fd                       0K     0K     0K     0%    /dev/fd
swap                   6.1G   3.6G   2.5G    60%    /tmp
swap                   2.5G    64K   2.5G     1%    /var/run
rpool/export           134G    23K   110G     1%    /export
rpool/export/home      134G   7.0G   110G     6%    /export/home
rpool                  134G    97K   110G     1%    /rpool
/dev/lofi/1            7.0G   7.0G     0K   100%    /mnt
bash-3.00#


可以看到这时候tmp分区只用了2.5G,空余的还很多,但是

bash-3.00# cd /tmp/
bash-3.00# pwd
/tmp
bash-3.00# touch hello
touch: cannot create hello: No space left on device
bash-3.00#


为什么会这样呢

作者: 淡定再淡定   发布时间: 2010-07-21

本帖最后由 淡定再淡定 于 2010-07-21 14:24 编辑

bash-3.00# zfs get all rpool/swap
NAME        PROPERTY              VALUE                  SOURCE
rpool/swap  type                  volume                 -
rpool/swap  creation              Wed Jul 21 18:43 2010  -
rpool/swap  used                  6.07G                  -
rpool/swap  available             110G                   -
rpool/swap  referenced            6.07G                  -
rpool/swap  compressratio         1.00x                  -
rpool/swap  reservation           none                   default
rpool/swap  volsize               6G                     -
rpool/swap  volblocksize          8K                     -
rpool/swap  checksum              on                     default
rpool/swap  compression           off                    default
rpool/swap  readonly              off                    default
rpool/swap  shareiscsi            off                    default
rpool/swap  copies                1                      default
rpool/swap  refreservation        6G                     local
rpool/swap  primarycache          all                    default
rpool/swap  secondarycache        all                    default
rpool/swap  usedbysnapshots       0                      -
rpool/swap  usedbydataset         6.07G                  -
rpool/swap  usedbychildren        0                      -
rpool/swap  usedbyrefreservation  0                      -
bash-3.00#


俺知道加大swap就可以解决这个问题,但是这个是为啥显示不是100%呢

作者: 淡定再淡定   发布时间: 2010-07-21

先弄清楚swap与/tmp的关系。

作者: minechina   发布时间: 2010-07-21

回复 minechina


    俺这么理解:swap交换空间,内存不够的时候使用,tmp默认是用内存,内存不够的时候使用swap


    俺的问题是df看的tmp为什么不准确?并且差距这么大

作者: 淡定再淡定   发布时间: 2010-07-21

你这样理解就错了。
下面引用蜘蛛大侠的原话:
首先,我们从df -k就可以看出/tmp用的是swap空间,而swap空间是tmpfs,如果你单独把他做为一个分区来装OS岂不是变成了ufs?!

/var/run和/tmp都是swap,它们都是mount在同一swap上的。tmpfs是允许多次mount的,可做试验如下:
# mkdir /swaptest
# /sbin/mount -f tmpfs swap /swaptest
# df -k /swaptest
Filesystem            kbytes    used   avail capacity  Mounted on
swap                 47081784       0 47081784     0%    /wdhtest

因此/var/run和/tmp都是在使用swap -l看到的设备。

不同区别的是/tmp是用来给OS用户放置临时文件的,而/var/run是用来给系统进程放置临时文件的(如pid等信息)。

vi一下/etc/rcS.d/S70buildmnttab.sh,看看系统的mount步骤是怎样的,你也会发现swap在被/tmp mount之后,最后又被/var/run mount了一次

作者: minechina   发布时间: 2010-07-21

回复 minechina


    多谢鸟哥回复


   俺其实最想知道的是:  现在怎么准确知道/tmp有多大 ? 真实使用率是多少?

作者: 淡定再淡定   发布时间: 2010-07-21

你用的是EIS镜像,放在tmp,mount到/mnt了吧? 先umount,把镜像放到别的目录去,然后再试一下。

作者: easybegin   发布时间: 2010-07-21

自己先计算一下swap大小,物理内存+swap分区。然后swap -s看一下。

作者: easybegin   发布时间: 2010-07-21



QUOTE:
你用的是EIS镜像,放在tmp,mount到/mnt了吧? 先umount,把镜像放到别的目录去,然后再试一下。
easybegin 发表于 2010-07-21 16:45




    我晕,你咋知道的呢?这个有问题吗?我记得上次就这么干的没问题啊

作者: 淡定再淡定   发布时间: 2010-07-21



QUOTE:
我晕,你咋知道的呢?这个有问题吗?我记得上次就这么干的没问题啊
淡定再淡定 发表于 2010-07-21 16:48




    没问题,只是EIS光盘镜像实在太大了,放在tmp太占地方。你试试吧,也可能不是这个问题。

作者: easybegin   发布时间: 2010-07-21



QUOTE:
没问题,只是EIS光盘镜像实在太大了,放在tmp太占地方。你试试吧,也可能不是这个问题。
easybegin 发表于 2010-07-21 16:50




    ok,我试试看。另外,为什么df看tmp空间使用率不对呢? 这是最困惑的地方,以前没注意

作者: 淡定再淡定   发布时间: 2010-07-21

热门下载

更多