Chinaunix

标题: 这个问题比较怪异,关于/tmp空间问题 [打印本页]

作者: 淡定再淡定    时间: 2010-07-21 14:16
标题: 这个问题比较怪异,关于/tmp空间问题
本帖最后由 淡定再淡定 于 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 14:22
本帖最后由 淡定再淡定 于 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%呢
作者: minechina    时间: 2010-07-21 15:19
先弄清楚swap与/tmp的关系。
作者: 淡定再淡定    时间: 2010-07-21 15:30
回复 3# minechina


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


    俺的问题是df看的tmp为什么不准确?并且差距这么大
作者: minechina    时间: 2010-07-21 15:33
你这样理解就错了。
下面引用蜘蛛大侠的原话:
首先,我们从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了一次
作者: 淡定再淡定    时间: 2010-07-21 16:32
回复 5# minechina


    多谢鸟哥回复


   俺其实最想知道的是:  现在怎么准确知道/tmp有多大 ? 真实使用率是多少?
作者: easybegin    时间: 2010-07-21 16:45
你用的是EIS镜像,放在tmp,mount到/mnt了吧? 先umount,把镜像放到别的目录去,然后再试一下。
作者: easybegin    时间: 2010-07-21 16:47
自己先计算一下swap大小,物理内存+swap分区。然后swap -s看一下。
作者: 淡定再淡定    时间: 2010-07-21 16:48
你用的是EIS镜像,放在tmp,mount到/mnt了吧? 先umount,把镜像放到别的目录去,然后再试一下。
easybegin 发表于 2010-07-21 16:45



    我晕,你咋知道的呢?这个有问题吗?我记得上次就这么干的没问题啊 {:3_198:}
作者: easybegin    时间: 2010-07-21 16:50
我晕,你咋知道的呢?这个有问题吗?我记得上次就这么干的没问题啊
淡定再淡定 发表于 2010-07-21 16:48



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



    ok,我试试看。另外,为什么df看tmp空间使用率不对呢? 这是最困惑的地方,以前没注意 {:3_190:}
作者: 淡定再淡定    时间: 2010-07-21 17:22
本帖最后由 淡定再淡定 于 2010-07-21 17:23 编辑
没问题,只是EIS光盘镜像实在太大了,放在tmp太占地方。你试试吧,也可能不是这个问题。
easybegin 发表于 2010-07-21 16:50



    EIS挂到别的地方还是不行啊,真见鬼,同一个机器,前几天这么搞,加了swap后没有问题,今天咋都不行。唯一的区别就是SUNWCall换成了SUNWCXall

   只能unpack-patches 到其他目录了,比如 /var/tmp/

   这是为啥呢 {:3_190:}



root@sasuke # swap -s
total: 3961800k bytes allocated + 20840k reserved = 3982640k used, 8965640k available

root@sasuke # df -h /tmp/
Filesystem             size   used  avail capacity  Mounted on
swap                    12G   3.6G   8.5G    30%    /tmp
root@sasuke #
作者: easybegin    时间: 2010-07-21 17:24
那就reboot吧
作者: 淡定再淡定    时间: 2010-07-21 17:39
那就reboot吧
easybegin 发表于 2010-07-21 17:24



    reboot了一次,还是不行,俺现在发现tmp到了3.6G就满了,加了swap还是这样 {:3_191:}
作者: easybegin    时间: 2010-07-21 17:46
reboot了一次,还是不行,俺现在发现tmp到了3.6G就满了,加了swap还是这样
淡定再淡定 发表于 2010-07-21 17:39



   不知道你咋做的系统
作者: 淡定再淡定    时间: 2010-07-21 17:48
不知道你咋做的系统
easybegin 发表于 2010-07-21 17:46



    {:3_190:}  jumpstart装的


bash-2.05b# more profile35
install_type    initial_install
#install_type   upgrade

system_type     standalone
pool rpool auto 6G 6G c0t0d0s0
#pool rpool - - - c0t0d0s0
bootenv installbe bename newBE
#cluster                SUNWCall
cluster         SUNWCXall




bash-2.05b# more sysidcfg
network_interface=primary {hostname=sasuke35
                           default_route=10.101.0.1
                           ip_address=10.101.0.35
                           netmask=255.255.248.0
                           protocol_ipv6=no
                           }

keyboard=US-English
timezone=PRC
#system_locale=en_US
terminal=vt100
timeserver=localhost
security_policy=none
root_password=G9K4D6KW8baS2
name_service=none
nfs4_domain=dynamic
security_policy=none
system_locale=C
timeserver=localhost
#timezone=US/Central
timezone=Asia/Shanghai

bash-2.05b#
作者: yidou    时间: 2010-07-21 18:25
不懂。帮顶
作者: easybegin    时间: 2010-07-21 19:04
EIS挂到别的地方还是不行啊,真见鬼,同一个机器,前几天这么搞,加了swap后没有问题,今天咋都不 ...
淡定再淡定 发表于 2010-07-21 17:22



    如果你装了一个纯系统,tmp不可能用到3.6G,你可以先观察纯系统
作者: 淡定再淡定    时间: 2010-07-21 20:49
如果你装了一个纯系统,tmp不可能用到3.6G,你可以先观察纯系统
easybegin 发表于 2010-07-21 19:04



    纯系统没有问题。刚装完的系统,装eis的时候,解压缩到tmp,tmp的利用率只要到了3.6G必然占满,写不进任何文件。这时候通过df看还是有空间的
作者: easybegin    时间: 2010-07-21 21:37
纯系统没有问题。刚装完的系统,装eis的时候,解压缩到tmp,tmp的利用率只要到了3.6G必然占满,写 ...
淡定再淡定 发表于 2010-07-21 20:49



    为什么要解压缩? 你的eis不是iso格式?
作者: dskedou    时间: 2010-07-22 01:35
学习~~
作者: 淡定再淡定    时间: 2010-07-22 09:06
为什么要解压缩? 你的eis不是iso格式?
easybegin 发表于 2010-07-21 21:37



    是ISO啊,unpack-patches的时候 默认 是先解压缩到/tmp/10 这个目录下 {:3_184:}
作者: easybegin    时间: 2010-07-22 09:11
是ISO啊,unpack-patches的时候 默认 是先解压缩到/tmp/10 这个目录下
淡定再淡定 发表于 2010-07-22 09:06



    只能祝你顺利了
作者: 淡定再淡定    时间: 2010-07-22 09:17
只能祝你顺利了
easybegin 发表于 2010-07-22 09:11



    {:3_186:} {:3_186:} {:3_186:}   为嘛这个tmp的使用率上不去呢
作者: 淡定再淡定    时间: 2010-07-22 10:29
大爷的,用 dd if=/dev/zero of=/tmp/dd.log 往tmp里写文件可以超过3.6G,就是用EIS打补丁的时候,到3.6G就崩溃




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2