Skip to content

Instantly share code, notes, and snippets.

@thewellington
Created October 10, 2013 20:50
Show Gist options
  • Save thewellington/6925444 to your computer and use it in GitHub Desktop.
Save thewellington/6925444 to your computer and use it in GitHub Desktop.
Modify sysctl.conf for Oracle
#!/bin/bash
#
# Change Linux kernel parameters prior to installing Oracle 11g R2 on RHEL 6.3
# v2.0 by bwellington@fulcrum.net 2012.11.20
#
f='/etc/sysctl.conf'
# Get Total Memory in KB
memk=$(free|grep Mem|awk '{print$2}')
# Convert Memory to GB
memg=$(echo "$memk/1024/1024"|bc)
#Get page size
pagesizeb=$(getconf PAGE_SIZE)
# Calculate kernel.shmall and kernel.shmax
shmall=$(echo "$memg*1024^3/$pagesizeb"|bc)
shmmax=$(echo "$memg*1024^3/2"|bc)
## Calculate number of huge pages to allocate
hugepagesize=$(grep Hugepagesize /proc/meminfo|awk '{print$2}')
# create 1GB of huge pages
nr_hugepages=$(echo "1*1024^2/$hugepagesize"|bc)
## Begin making changes to sysctl.conf
# replace existing values for shmmall and shmax in sysctl.conf, and create bkup file
sed -i.bkup -e 's:\(kernel.shmmax = \)\([0-9]*\):\1'$shmmax':' \
-e 's:\(kernel.shmall = \)\([0-9]*\):\1'$shmall':' $f
echo "
#### ORACLE Specific Info Below ####
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.swappiness = 0
vm.dirty_background_ration = 3
vm.dirty_ratio = 15
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.nr_hugepages = "$nr_hugepages >> $f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment