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: 694

Hi,
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

exit 0

 



© Oracle Blogs or respective owner

Related posts about 10g

Related posts about hp-ux 11.23