ZFS swap increase

Moderator: cah

Post Reply
cah
General of the Army / Fleet Admiral / General of the Air Force
General of the Army / Fleet Admiral / General of the Air Force
Posts: 1342
Joined: Sun Aug 17, 2008 5:05 am

ZFS swap increase

Post by cah »

Mats asked for help to increase swar space because the nightly build complained about not enough space.

I took a look but the swap showed sufficient space. It may be short of swap when lots of activities are going on.
Following is what I investigated, discovered and changed to increase the swap space.

First, check zfs settings. Swap is using 2 GB:

Code: Select all

bldint01:%zfs list rpool/swap
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool/swap  2.06G  50.5G   391M  -
Get all properties from rpool/swap:

Code: Select all

bldint01:%zfs get all rpool/swap
NAME        PROPERTY              VALUE                  SOURCE
rpool/swap  type                  volume                 -
rpool/swap  creation              Tue Dec 13 17:02 2011  -
rpool/swap  used                  2.06G                  -
rpool/swap  available             50.5G                  -
rpool/swap  referenced            391M                   -
rpool/swap  compressratio         1.00x                  -
rpool/swap  reservation           none                   default
rpool/swap  volsize               2G                     local
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        2.06G                  local
rpool/swap  primarycache          metadata               local
rpool/swap  secondarycache        all                    default
rpool/swap  usedbysnapshots       0                      -
rpool/swap  usedbydataset         391M                   -
rpool/swap  usedbychildren        0                      -
rpool/swap  usedbyrefreservation  1.68G                  -
rpool/swap  logbias               latency                default
rpool/swap  sync                  standard               default
Check volume size of rpool/swap:

Code: Select all

bldint01:%zfs get volsize rpool/swap
NAME        PROPERTY  VALUE    SOURCE
rpool/swap  volsize   2G       local
Set swap size to 4 GB:

Code: Select all

bldint01:%zfs set volsize=4G rpool/swap
Check swap size again:

Code: Select all

bldint01:%zfs get volsize rpool/swap   
NAME        PROPERTY  VALUE    SOURCE
rpool/swap  volsize   4G       local
Using zfs list to show swap size:

Code: Select all

bldint01:%zfs list rpool/swap          
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool/swap  4.13G  50.5G   391M  -
Check current swap:

Code: Select all

Cbldint01:%swap -l
swapfile                   dev  swaplo  blocks    free
/dev/zvol/dsk/rpool/swap 256,1      16 4194288 3511200
Add additional 2 GB to swap (in blocks). Not sure why "env NOINUSE_CHECK=1" is needed.

Code: Select all

bldint01:%env NOINUSE_CHECK=1 swap -a /dev/zvol/dsk/rpool/swap $((8+4194288))
Check swap again:

Code: Select all

bldint01:%swap -l                                         
swapfile                   dev   swaplo  blocks    free
/dev/zvol/dsk/rpool/swap 256,1       16 4194288 3511200
/dev/zvol/dsk/rpool/swap 256,1  4194304 4194304 4194304
From top:

Code: Select all

Memory: 8192M real, 2332M free, 3257M swap in use, 4970M swap free
From vmstat:

Code: Select all

bldint01:/export/home/hsiaoc1%vmstat 1
kthr      memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr s3 s4 s5 s6   in   sy   cs us sy id
0 0 0 5090936 2388112 8 17  0  0  0  0  0  0  0  0  0  428  321  441  0  0 100
0 0 0 5090936 2388168 0  0  0  0  0  0  0  0  0  0  0  436  300  443  0  1 99
Extra 2 GB has been added to swap.
CAH, The Great
cah
General of the Army / Fleet Admiral / General of the Air Force
General of the Army / Fleet Admiral / General of the Air Force
Posts: 1342
Joined: Sun Aug 17, 2008 5:05 am

ZFS swap increase on orazone01

Post by cah »

Ken was trying to install Oracle 11GR2 but it stopped at step 8 because it needs 16 GB swap space but oradev05 just has 2 GB.

I tried to increase from 2 GB to 16 GB like I did for bldint01 but the steps somehow didn't work.
I had to create a new swap file and add to it differently.

Code: Select all

% zfs create -V 16G rpool/swap2

Code: Select all

% zfs get all rpool/swap2
NAME         PROPERTY              VALUE                  SOURCE
rpool/swap2  type                  volume                 -
rpool/swap2  creation              Wed Aug  8 10:28 2012  -
rpool/swap2  used                  16.5G                  -
rpool/swap2  available             260G                   -
rpool/swap2  referenced            16K                    -
rpool/swap2  compressratio         1.00x                  -
rpool/swap2  reservation           none                   default
rpool/swap2  volsize               16G                    local
rpool/swap2  volblocksize          8K                     -
rpool/swap2  checksum              on                     default
rpool/swap2  compression           off                    default
rpool/swap2  readonly              off                    default
rpool/swap2  shareiscsi            off                    default
rpool/swap2  copies                1                      default
rpool/swap2  refreservation        16.5G                  local
rpool/swap2  primarycache          all                    default
rpool/swap2  secondarycache        all                    default
rpool/swap2  usedbysnapshots       0                      -
rpool/swap2  usedbydataset         16K                    -
rpool/swap2  usedbychildren        0                      -
rpool/swap2  usedbyrefreservation  16.5G                  -
rpool/swap2  logbias               latency                default

Code: Select all

% swap -a /dev/zvol/dsk/rpool/swap2

Code: Select all

% swap -l
swapfile             dev  swaplo blocks   free
/dev/zvol/dsk/rpool/swap 256,1      16 4194288 4194288
/dev/zvol/dsk/rpool/swap2 256,3      16 33554416 33554416

Code: Select all

% top -s 1

Memory: 64G real, 4236M free, 20G swap in use, 17G swap free
Add new swap filesystem in /etc/vfstab so that next reboot will pick up this filesystem for swap use:

Code: Select all

/dev/zvol/dsk/rpool/swap2       -       -       swap    -       no      -
CAH, The Great
Post Reply