Solaris OracleDB zone: Difference between revisions
No edit summary |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
Line 5: | Line 5: | ||
==Limit ZFS ARC== | ==Limit ZFS ARC== | ||
Add to /etc/system: | Add to /etc/system: | ||
< | <syntaxhighlight lang=bash> | ||
set zfs:zfs_arc_max = <bytes as hex value> | set zfs:zfs_arc_max = <bytes as hex value> | ||
</source> | </source> | ||
To calculate your own value: | To calculate your own value: | ||
< | <syntaxhighlight lang=bash> | ||
# LIMIT_GB=8 ; printf "*\n** Limit ZFS ARC to %dGB\n*\nset zfs:zfs_arc_max = 0x%x\n" ${LIMIT_GB} $[${LIMIT_GB} * 1024 * 1024 * 1024] | # LIMIT_GB=8 ; printf "*\n** Limit ZFS ARC to %dGB\n*\nset zfs:zfs_arc_max = 0x%x\n" ${LIMIT_GB} $[${LIMIT_GB} * 1024 * 1024 * 1024] | ||
* | * | ||
Line 20: | Line 20: | ||
==Create Zone== | ==Create Zone== | ||
Set values: | Set values: | ||
< | <syntaxhighlight lang=bash> | ||
ZONENAME=oracle | ZONENAME=oracle | ||
ZONEPOOL=rpool | ZONEPOOL=rpool | ||
Line 32: | Line 32: | ||
Create zone with | Create zone with | ||
< | <syntaxhighlight lang=bash> | ||
zfs create -o mountpoint=none ${ZONEPOOL}/zones | zfs create -o mountpoint=none ${ZONEPOOL}/zones | ||
zfs create -o compression=on -o mountpoint=${ZONEBASE}/${ZONENAME} ${ZONEPOOL}/zones/${ZONENAME} | zfs create -o compression=on -o mountpoint=${ZONEBASE}/${ZONENAME} ${ZONEPOOL}/zones/${ZONENAME} | ||
Line 57: | Line 57: | ||
Enable dynamic pool service to add support for dedicated-cpus: | Enable dynamic pool service to add support for dedicated-cpus: | ||
< | <syntaxhighlight lang=bash> | ||
svcadm enable svc:/system/pools/dynamic | svcadm enable svc:/system/pools/dynamic | ||
</source> | </source> | ||
Install and boot: | Install and boot: | ||
< | <syntaxhighlight lang=bash> | ||
zoneadm -z ${ZONENAME} install | zoneadm -z ${ZONENAME} install | ||
zoneadm -z ${ZONENAME} boot | zoneadm -z ${ZONENAME} boot | ||
Line 70: | Line 70: | ||
CPU-check: | CPU-check: | ||
< | <syntaxhighlight lang=bash> | ||
-bash-3.2# psrinfo -pv | -bash-3.2# psrinfo -pv | ||
The physical processor has 2 virtual processors (0 1) | The physical processor has 2 virtual processors (0 1) | ||
Line 81: | Line 81: | ||
Values are for Solaris 10. | Values are for Solaris 10. | ||
< | <syntaxhighlight lang=bash> | ||
DATABASEPOOL=dbpool | DATABASEPOOL=dbpool | ||
DATABASEPOOL_DATA_VDEV="mirror c1t1d0 c1t2d0" | DATABASEPOOL_DATA_VDEV="mirror c1t1d0 c1t2d0" | ||
Line 97: | Line 97: | ||
</source> | </source> | ||
< | <syntaxhighlight lang=bash> | ||
zpool create ${DATABASEPOOL} ${DATABASEPOOL_DATA_VDEV} log ${DATABASEPOOL_ZIL_VDEV} | zpool create ${DATABASEPOOL} ${DATABASEPOOL_DATA_VDEV} log ${DATABASEPOOL_ZIL_VDEV} | ||
Line 113: | Line 113: | ||
</source> | </source> | ||
< | <syntaxhighlight lang=bash> | ||
zpool create ${REDOPOOL} ${REDOPOOL_DATA_VDEV} log ${REDOPOOL_ZIL_VDEV} | zpool create ${REDOPOOL} ${REDOPOOL_DATA_VDEV} log ${REDOPOOL_ZIL_VDEV} | ||
Line 120: | Line 120: | ||
</source> | </source> | ||
< | <syntaxhighlight lang=bash> | ||
zpool create ${ARCHIVEBASEPOOL} ${ARCHIVEPOOL_DATA_VDEV} | zpool create ${ARCHIVEBASEPOOL} ${ARCHIVEPOOL_DATA_VDEV} | ||
Revision as of 16:31, 25 November 2021
Setup Oracle Database on a Solaris zone with CPU limit
Our setup is a 48GB x86-Server
Limit ZFS ARC
Add to /etc/system: <syntaxhighlight lang=bash> set zfs:zfs_arc_max = <bytes as hex value> </source>
To calculate your own value: <syntaxhighlight lang=bash>
- LIMIT_GB=8 ; printf "*\n** Limit ZFS ARC to %dGB\n*\nset zfs:zfs_arc_max = 0x%x\n" ${LIMIT_GB} $[${LIMIT_GB} * 1024 * 1024 * 1024]
-
- Limit ZFS ARC to 8GB
set zfs:zfs_arc_max = 0x200000000 </source>
Create Zone
Set values: <syntaxhighlight lang=bash> ZONENAME=oracle ZONEPOOL=rpool ZONEBASE=/var/zones MAX_SHM_MEMORY=30G LOCKED_MEMORY=30G MAX_PHYS_MEMORY=34G SWAP=${MAX_PHYS_MEMORY} NUMBER_OF_CPUS=2 </source>
Create zone with <syntaxhighlight lang=bash> zfs create -o mountpoint=none ${ZONEPOOL}/zones zfs create -o compression=on -o mountpoint=${ZONEBASE}/${ZONENAME} ${ZONEPOOL}/zones/${ZONENAME} chmod 700 ${ZONEBASE}/${ZONENAME} printf " create set autoboot=true set zonepath=${ZONEBASE}/${ZONENAME} add dedicated-cpu set ncpus=${NUMBER_OF_CPUS} end add capped-memory set swap=${SWAP} set physical=${MAX_PHYS_MEMORY} set locked=${LOCKED_MEMORY} end set scheduling-class=FSS set max-shm-memory=${MAX_SHM_MEMORY} verify commit " | zonecfg -z ${ZONENAME} -f -
</source>
Enable dynamic pool service to add support for dedicated-cpus: <syntaxhighlight lang=bash> svcadm enable svc:/system/pools/dynamic </source>
Install and boot: <syntaxhighlight lang=bash> zoneadm -z ${ZONENAME} install zoneadm -z ${ZONENAME} boot zlogin ${ZONENAME} usermod -s /bin/bash root zlogin ${ZONENAME} </source>
CPU-check: <syntaxhighlight lang=bash> -bash-3.2# psrinfo -pv The physical processor has 2 virtual processors (0 1)
x86 (chipid 0x0 GenuineIntel family 6 model 44 step 2 clock 3059 MHz)
Intel(r) Xeon(r) CPU X5675 @ 3.07GHz </source>
Create ZPools
I used this paper: [1] Values are for Solaris 10.
<syntaxhighlight lang=bash> DATABASEPOOL=dbpool DATABASEPOOL_DATA_VDEV="mirror c1t1d0 c1t2d0" DATABASEPOOL_ZIL_VDEV="mirror c1t3d0 c1t4d0"
REDOPOOL_NAME=redopool REDOPOOL_DATA_VDEV="mirror c1t5d0 c1t6d0" REDOPOOL_ZIL_VDEV="mirror c1t7d0 c1t8d0"
ARCHIVEPOOL=archivepool ARCHIVEPOOL_DATAV_DEV="mirror c1t9d0 c1t10d0"
DB_BASEPATH=/database DB_BLOCK_SIZE=8192 </source>
<syntaxhighlight lang=bash> zpool create ${DATABASEPOOL} ${DATABASEPOOL_DATA_VDEV} log ${DATABASEPOOL_ZIL_VDEV}
zfs create -o recordsize=${DB_BLOCK_SIZE} -o mountpoint=${DB_BASEPATH}/data ${DATABASEPOOL}/data zfs set logbias=throughput ${DATABASEPOOL}/data
zfs create -o recordsize=${DB_BLOCK_SIZE} -o mountpoint=${DB_BASEPATH}/index ${DATABASEPOOL}/index zfs set logbias=throughput ${DATABASEPOOL}/index
zfs create -o mountpoint=${DB_BASEPATH}/temp ${DATABASEPOOL}/temp zfs set logbias=throughput ${DATABASEPOOL}/temp
zfs create -o mountpoint=${DB_BASEPATH}/undo ${DATABASEPOOL}/undo zfs set logbias=throughput ${DATABASEPOOL}/undo </source>
<syntaxhighlight lang=bash> zpool create ${REDOPOOL} ${REDOPOOL_DATA_VDEV} log ${REDOPOOL_ZIL_VDEV}
zfs create -o mountpoint=${DB_BASEPATH}/redo ${REDOPOOL}/redo zfs set logbias=latency ${REDOPOOL}/redo </source>
<syntaxhighlight lang=bash> zpool create ${ARCHIVEBASEPOOL} ${ARCHIVEPOOL_DATA_VDEV}
zfs create -o compression=on -o mountpoint=${DB_BASEPATH}/archive ${ARCHIVEBASEPOOL}/archive zfs set primarycache=metadata ${ARCHIVEBASEPOOL}/archive </source>