On checking kernel parms HP-UX & Oracle 10.2
Posted
by [email protected]
on Oracle Blogs
See other posts from Oracle Blogs
or by [email protected]
Published on Fri, 21 May 2010 11:43:01 +0100
Indexed on
2010/05/21
11:02 UTC
Read the original article
Hit count: 699
Just did this little script for a customer wanting to investigate if the kernel parameters of their HP-UX machines fits or not the Oracle 10.2 specifications ( looks like someone checked the "User Verified" at database installation time on some prerequisites)
Just want to share ( its in Spanish)
Hope it helps!
--L
###
### check_kernel_parms.sh
###
###
###
### NAME
### check_kernel_parms.sh
###
###
DESCRIPTION
###
Comprueba los parametros de kernel
###
### NOTES
###
Valido para versiones de SO HP-UX y Oracle 10.2
###
###
###
MODIFIED (MM/DD/YY)
###
lvelasco 05/20/10 - Creacion
V_DATE=`/usr/bin/date
+%Y%m%d_%H%M%S`
if [ "${1}" !=
'sin_traza' ]; then
V_FICHERO_LOG=`dirname $0`/`basename
$0`.${V_DATE}.log
exec 4>&1
tee ${V_FICHERO_LOG} >&4 |&
exec 1>&p 2>&1
fi
echo "${V_DATE}-
check_params.sh *******************************************"
echo "Comenzado ejecucion de chequeo de
parametros de kernel en maquina `hostname`"
echo
"****************************************************************************"
UX_VERS=`uname -a | awk
'{print $3}'`
KCTUNE=/usr/sbin/kctune
MEM_TOTAL_MB=`./check_mem`
<-- This should return the physical mem of the machine on bytes
MEM_TOTAL=$((MEM_TOTAL_MB*1024))
NPROC=$(${KCTUNE} | grep nproc
| grep -v '(nproc' | grep -v *nproc | awk '{print $2}')
if [ ${NPROC} -lt 4096 ]
then
echo
"[FAILED] Information: El parametro nproc con valor actual ${NPROC} debe
tener una valor superior a 4096"
else
echo
"[OK] Information: El parametro nproc con valor actual ${NPROC} debe tener
una valor superior a 4096"
fi
KSI_ALLOC_MAX_T=$(${KCTUNE} | grep ksi_alloc | awk
'{print $2}')
KSI_ALLOC_MAX=$((NPROC*8))
if [ ${KSI_ALLOC_MAX_T} -lt ${KSI_ALLOC_MAX} ]
then
echo
"[FAILED] Information: El parametro ksi_alloc_max con valor actual
${KSI_ALLOC_MAX_T} debe tener una valor superior a ${KSI_ALLOC_MAX}"
else
echo
"[OK] Information: El parametro ksi_alloc_max con valor actual
${KSI_ALLOC_MAX_T} debe tener una valor superior a ${KSI_ALLOC_MAX}"
fi
EXECUTABLE_STACK=$(${KCTUNE} |
grep executable_stack | awk '{print $2}')
if [ ${EXECUTABLE_STACK} -ne 0
]
then
echo "[FAILED] Information: El parametro executable_stack
con valor actual ${EXECUTABLE_STACK} debe tener una valor igual a 0"
else
echo
"[OK] Information: El parametro executable_stack con valor actual
${EXECUTABLE_STACK} debe tener una valor igual a 0"
fi
MAX_THREAD_PROC=$(${KCTUNE} |
grep max_thread_proc | awk '{print $2}')
if [ ${MAX_THREAD_PROC} -lt
1024 ]
then
echo
"[FAILED] Information: El parametro max_thread_proc con valor actual
${MAX_THREAD_PROC} debe tener una valor superior a 1024"
else
echo
"[OK] Information: El parametro max_thread_proc con valor actual
${MAX_THREAD_PROC} debe tener una valor superior a 1024"
fi
MAXDSIZ=$(${KCTUNE} | grep 'maxdsiz ' | awk '{print
$2}')
if [ ${MAXDSIZ} -lt 1073741824 ]
then
echo
"[FAILED] Information: El parametro maxdsiz con valor actual ${MAXDSIZ}
debe tener una valor superior a 1073741824"
else
echo
"[OK] Information: El parametro maxdsiz con valor actual ${MAXDSIZ} debe
tener una valor superior a 1073741824"
fi
MAXDSIZ_64BIT=$(${KCTUNE} | grep maxdsiz_64bit |
awk '{print $2}')
if [ ${MAXDSIZ} -lt 2147483648 ]
then
echo
"[FAILED] Information: El parametro maxdsiz_64bit con valor actual
${MAXDSIZ_64BIT} debe tener una valor superior a 2147483648"
else
echo
"[OK] Information: El parametro maxdsiz_64bit con valor actual
${MAXDSIZ_64BIT} debe tener una valor superior a 2147483648"
fi
MAXSSIZ=$(${KCTUNE} | grep 'maxssiz ' | awk '{print
$2}')
if [ ${MAXSSIZ} -lt 134217728 ]
then
echo
"[FAILED] Information: El parametro maxssiz con valor actual ${MAXSSIZ}
debe tener una valor superior a 134217728"
else
echo
"[OK] Information: El parametro maxssiz con valor actual ${MAXSSIZ} debe
tener una valor superior a 134217728"
fi
MAXSSIZ_64BIT=$(${KCTUNE} | grep maxssiz_64bit |
awk '{print $2}')
if [ ${MAXSSIZ} -lt 1073741824 ]
then
echo
"[FAILED] Information: El parametro maxssiz_64bit con valor actual
${MAXSSIZ} debe tener una valor superior a 1073741824"
else
echo
"[OK] Information: El parametro maxssiz_64bit con valor actual ${MAXSSIZ}
debe tener una valor superior a 1073741824"
fi
MAXUPRC_T=$(${KCTUNE} | grep maxuprc | awk '{print
$2}')
MAXUPRC=$(((NPROC*9)/10))
if [ ${MAXUPRC_T} -lt ${MAXUPRC} ]
then
echo
"[FAILED] Information: El parametro maxuprc con valor actual ${MAXUPRC_T}
debe tener una valor superior a ${MAXUPRC}"
else
echo
"[OK] Information: El parametro maxuprc con valor actual ${MAXUPRC_T} debe
tener una valor superior a ${MAXUPRC}"
fi
MSGMNI=$(${KCTUNE} | grep msgmni | awk '{print
$2}')
if [ ${MSGMNI} -lt ${NPROC} ]
then
echo
"[FAILED] Information: El parametro msgni con valor actual ${MSGMNI} debe
tener una valor superior a ${NPROC}"
else
echo
"[OK] Information: El parametro msgni con valor actual ${MSGMNI} debe
tener una valor superior a ${NPROC}"
fi
if [ ${UX_VERS} =
"B.11.23" ]
then
MSGSEG=$(${KCTUNE} | grep msgseg | awk '{print $2}')
if [ ${MSGSEG} -lt
32767 ]
then
echo
"[FAILED] Information: El parametro msgseg con valor actual ${MSGSEG} debe
tener una valor superior a 32767"
else
echo
"[OK] Information: El parametro msgseg con valor actual ${MSGSEG} debe
tener una valor superior a 32767"
fi
fi
MSGTQL=$(${KCTUNE} | grep msgtql | awk '{print
$2}')
if [ ${MSGTQL} -lt ${NPROC} ]
then
echo
"[FAILED] Information: El parametro msgtql con valor actual ${MSGTQL} debe
tener una valor superior a ${NPROC}"
else
echo
"[OK] Information: El parametro msgtql con valor actual ${MSGTQL} debe
tener una valor superior a ${NPROC}"
fi
if [ ${UX_VERS} =
"B.11.23" ]
then
NFILE_T=$(${KCTUNE} | grep nfile | awk '{print $2}')
NFILE=$((15*NPROC+2048))
if [ ${NFILE_T} -lt ${NFILE} ]
then
echo
"[FAILED] Information: El parametro nfile con valor actual ${NFILE_T} debe
tener una valor superior a ${NFILE}"
else
echo
"[OK] Information: El parametro nfile con valor actual ${NFILE_T} debe
tener una valor superior a ${NFILE}"
fi
fi
NFLOCKS=$(${KCTUNE} | grep nflocks | awk '{print
$2}')
if [ ${NFLOCKS} -lt ${NPROC} ]
then
echo
"[FAILED] Information: El parametro nflocks con valor actual ${NFLOCKS}
debe tener una valor superior a ${NPROC}"
else
echo
"[OK] Information: El parametro nflocks con valor actual ${NFLOCKS} debe
tener una valor superior a ${NPROC}"
fi
NINODE_T=$(${KCTUNE} | grep ninode | grep -v vx |
awk '{print $2}')
NINODE=$((8*NPROC+2048))
if [ ${NINODE_T} -lt ${NINODE} ]
then
echo
"[FAILED] Information: El parametro ninode con valor actual ${NINODE_T}
debe tener una valor superior a ${NINODE}"
else
echo
"[OK] Information: El parametro ninode con valor actual ${NINODE_T} debe
tener una valor superior a ${NINODE}"
fi
NCSIZE_T=$(${KCTUNE} | grep ncsize | awk '{print
$2}')
NCSIZE=$((NINODE+1024))
if [ ${NCSIZE_T} -lt ${NCSIZE}
]
then
echo
"[FAILED] Information: El parametro ncsize con valor actual ${NCSIZE_T}
debe tener una valor superior a ${NCSIZE}"
else
echo
"[OK] Information: El parametro ncsize con valor actual ${NCSIZE_T} debe
tener una valor superior a ${NCSIZE}"
fi
if [ ${UX_VERS} =
"B.11.23" ]
then
MSGMAP_T=$(${KCTUNE} | grep msgmap | awk '{print $2}')
MSGMAP=$((MSGTQL+2))
if [ ${MSGMAP_T} -lt ${MSGMAP} ]
then
echo
"[FAILED] Information: El parametro msgmap con valor actual ${MSGMAP_T}
debe tener una valor superior a ${MSGMAP}"
else
echo
"[OK] Information: El parametro msgmap con valor actual ${MSGMAP_T} debe
tener una valor superior a ${MSGMAP}"
fi
fi
NKTHREAD_T=$(${KCTUNE} | grep nkthread | awk
'{print $2}')
NKTHREAD=$((((NPROC*7)/4)+16))
if [ ${NKTHREAD_T} -lt
${NKTHREAD} ]
then
echo
"[FAILED] Information: El parametro nkthread con valor actual
${NKTHREAD_T} debe tener una valor superior a ${NKTHREAD}"
else
echo
"[OK] Information: El parametro nkthread con valor actual ${NKTHREAD_T}
debe tener una valor superior a ${NKTHREAD}"
fi
SEMMNI=$(${KCTUNE} | grep semmni | grep -v '(semm'
| awk '{print $2}')
if [ ${SEMMNI} -lt ${NPROC} ]
then
echo
"[FAILED] Information: El parametro semmni con valor actual ${SEMMNI} debe
tener una valor superior a ${NPROC}"
else
echo
"[OK] Information: El parametro semmni con valor actual ${SEMMNI} debe
tener una valor superior a ${NPROC}"
fi
SEMMNS_T=$(${KCTUNE} | grep semmns | awk '{print
$2}')
SEMMNS=$((SEMMNI+2))
if [ ${SEMMNS_T} -lt ${SEMMNI} ]
then
echo
"[FAILED] Information: El parametro semmns con valor actual ${SEMMNS_T}
debe tener una valor superior a ${SEMMNS}"
else
echo
"[OK] Information: El parametro semmns con valor actual ${SEMMNS_T} debe
tener una valor superior a ${SEMMNS}"
fi
SEMMNU_T=$(${KCTUNE} | grep semmnu | awk '{print
$2}')
SEMMNU=$((NPROC-4))
if [ ${SEMMNU_T} -lt ${SEMMNU} ]
then
echo
"[FAILED] Information: El parametro semmnu con valor actual ${SEMMNU_T}
debe tener una valor superior a ${SEMMNU}"
else
echo
"[OK] Information: El parametro semmnu con valor actual ${SEMMNU_T} debe
tener una valor superior a ${SEMMNU}"
fi
if [ ${UX_VERS} =
"B.11.23" ]
then
SEMVMX=$(${KCTUNE} | grep msgseg | awk '{print $2}')
if [ ${SEMVMX} -lt
32767 ]
then
echo
"[FAILED] Information: El parametro semvmx con valor actual ${SEMVMX} debe
tener una valor superior a 32767"
else
echo
"[OK] Information: El parametro semvmx con valor actual ${SEMVMX} debe
tener una valor superior a 32767"
fi
fi
SHMMNI=$(${KCTUNE} | grep shmmni | awk '{print
$2}')
if [ ${SHMMNI} -lt 512 ]
then
echo
"[FAILED] Information: El parametro shmmni con valor actual ${SHMMNI} debe
tener una valor superior a 512"
else
echo
"[OK] Information: El parametro shmmni con valor actual ${SHMMNI} debe
tener una valor superior a 512"
fi
SHMSEG=$(${KCTUNE} | grep shmseg | awk '{print
$2}')
if [ ${SHMSEG} -lt 120 ]
then
echo
"[FAILED] Information: El parametro shmseg con valor actual ${SHMSEG} debe
tener una valor superior a 120"
else
echo
"[OK] Information: El parametro shmseg con valor actual ${SHMSEG} debe
tener una valor superior a 120"
fi
VPS_CEILING=$(${KCTUNE} | grep vps_ceiling | awk
'{print $2}')
if [ ${VPS_CEILING} -lt 64 ]
then
echo
"[FAILED] Information: El parametro vps_ceiling con valor actual
${VPS_CEILING} debe tener una valor superior a 64"
else
echo
"[OK] Information: El parametro vps_ceiling con valor actual
${VPS_CEILING} debe tener una valor superior a 64"
fi
SHMMAX=$(${KCTUNE} | grep shmmax | awk '{print
$2}')
if [ ${SHMMAX} -lt
${MEM_TOTAL} ]
then
echo
"[FAILED] Information: El parametro shmmax con valor actual ${SHMMAX} debe
tener una valor superior a ${MEM_TOTAL}"
else
echo
"[OK] Information: El parametro shmmax con valor actual ${SHMMAX} debe
tener una valor superior a ${MEM_TOTAL}"
fi
© Oracle Blogs or respective owner