孙猴子的水帘洞

« 在Solaris10上按部就班地创建一个... | Main | 非常感谢FreeBSD »

http://blogs.163jsp.com/monkeysun/date/20080108 星期二 2008年01月08日

Solaris10上交换空间(swap)的管理

添加裸分区到swap空间

添加一个裸交换分区,你需要在系统上执行如下的步骤:

1. 确定一个空的磁盘分区.

2. 在/etc/vfstab中添加一条记录,把裸分区作为一个交换分区:

/dev/dsk/c0t1d0s0   -   -   swap   -   no   -

3. 执行下面的命令,启用这个交换分区:

#swap -a /dev/desk/c0t1d0s0

4. 使用下面的命令查看交换分区的情况:

#swap -l

添加文件系统到swap
  Solaris支持使用文件来增加交换空间。把一个文件添加到交换空间你需要执行如下步骤:

1. 使用mkfile创建一个文件:

#mkfile 250m /opt/myswapfile

这里创建了一个250M的文件。

2. 为了使用这个交换文件,执行如下命令:

#swap -a /opt/myswapfile

3. 检查变化:

#swap -l

提示: 为了在下次系统启动后也使用这个交换文件,你需要在/etc/vfstab添加如下记录:

/opt/swapfile   -   -   swap   -   no   -

禁用交换空间
  Solaris OS提供了在系统运行时禁用一个交换文件的能力。使用swap命令的-d选项。所有已经分配的块被拷贝到其它交换区域。

solaris# swap -d /opt/myswapfile

检查变化:

solaris# swap -l

监视交换空间
  为交换空间配置合适的大小是很重要的: 太小会影响性能,太大会浪费磁盘空间。
  如果物理内存不够用,Solaris会使用swap空间。这叫做分页。

  这里是一个交换空间的概要:

solaris#swap -s
total: 3500744k bytes allocated + 3048720k reserved = 6549464k used,
23869824k available

  这里是交换空间包含的设备或者文件:

solaris#swap -l
swapfile             dev      swaplo     blocks        free
/dev/md/dsk/d1       85,1         16     41945456      41945456

  如果你的交换空间不够用,你会看到如下的错误信息:

Not Enough Space

or

WARNING /tmp: File system full, swap space limit exceeded

  查看运行的系统是否物理内存不足,可以使用vmstat 和 iostat。

solaris#vmstat
kthr      memory            page            disk          faults      cpu
 r b w   swap  free    re  mf pi po fr de sr m0 m1 m3 m4   in   sy   cs us sy id
 0 0 0 24137360 6421168 70 179 21 14 14 0 0 0  0  0  0  472 3363 1776  4  2 94
 0 0 0 23869912 5953040 11 13  0 0 0  0  0  0  0  0  0  430 1071 1545  7  1 92
 0 0 0 23870896 5953904 58 313 0 2 2  0  0  0  0  0  0  578 2369 1798 20  1 78
 0 0 0 23874712 5957216 11 11  0 0 0  0  0  0  0  0  0  417 1325 1648  0  0 100
 0 0 0 23874744 5957248 22 64  0 3 3  0  0  0  0  0  0  423 1578 1629  1  2 97

  在vmstat输出中查看列sr (Scan Rate)。

solaris#iostat -Pxn
                    extended device statistics
    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
    0.1    2.7    1.1    5.6  0.0  0.1    0.2   25.5   0   2 c1t0d0s0
    0.0    0.0    0.0    0.0  0.0  0.0    0.0    9.7   0   0 c1t0d0s1
    0.0    0.0    0.0    0.0  0.0  0.0    0.0    1.2   0   0 c1t0d0s2

  在iostat的输出中看r/s 和 w/s c列,如果这些值高,意味着为了释放空间产生了大量的I/O操作。

  如果物理内存太小,系统会频繁地使用交换设备而产生大量的I/O操作。在这个状态下,CPU的使用率也会增加。所以应该增加物理内存了。

评论:

发表一条评论:
  • HTML语法: 启用

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.