+ -
当前位置:首页 → 问答吧 → 安装完成后swap分区为什么比指定的分区要大很多

安装完成后swap分区为什么比指定的分区要大很多

时间:2010-06-03

来源:互联网

本帖最后由 zhshfeng_xx 于 2010-06-03 20:19 编辑

今天安装solaris10,我指定swap分区为32G,可安装完成后,查看了一下为什么会是59G呢?

# df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c0t0d0s0       59G   4.6G    54G     8%    /
/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                    59G   664K    59G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
fd                       0K     0K     0K     0%    /dev/fd
swap                    59G    32K    59G     1%    /tmp
swap                    59G    64K    59G     1%    /var/run
/dev/dsk/c0t0d0s3      477M   1.0M   428M     1%    /metadb


# swap -s
total: 184104k bytes allocated + 21872k reserved = 205976k used, 61451456k available
使用format查看了一下,swap使用了s2,确实是32G

partition> p
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  6182       60.00GB    (6183/0/0)  125836416
  1       swap    wu    6183 -  9480       32.01GB    (3298/0/0)   67120896
  2     backup    wm       0 - 14086      136.71GB    (14087/0/0) 286698624
  3 unassigned    wm    9481 -  9531      506.81MB    (51/0/0)      1037952
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

作者: zhshfeng_xx   发布时间: 2010-06-03

solaris swap非常特别,由swap file和部分物理内存组成。当内存减小时,swap会相应变小。且tmp文件系统也是使用的swap空间,所以建议不往/tmp里面存放文件。且在主机重启之后,/tmp中的所有文件会丢失。
     另外,如果在solaris上运行oracle数据库,在oracle 数据库instance启动到nomount阶段,需要分配sga共享内存,oracle为了保证物理内存不够的情况下,内存中的数据能交换到swap空间,所以也会预留分配相同的swap空间,即使不使用也需要分配在那里。
     从solaris 8 update 3开始,solaris推出DISM共享内存管理,即动态共享内存调整。而oracle 9i是第一个支持动态共享内存调整的产品,所以在oracle 9i中新增了动态SGA调整功能。所以如果要在SUN主机上运行oracle数据库,建议swap device至少大于等于物理内存大小(不管主机物理内存是否非常大),否则可能会出现因为swap空间不足而到导致系统无法fork新进程的情况。

作者: asx_liu   发布时间: 2010-06-03

2楼正解

作者: easybegin   发布时间: 2010-06-03

多谢楼上的解答,我的内存是32G,swap划分的也是32G,也是为了跑oracle,swap会不会有些小?

作者: zhshfeng_xx   发布时间: 2010-06-04

不会

作者: easybegin   发布时间: 2010-06-04

如果是512G以上内存呢?

作者: killer911   发布时间: 2010-06-04