-
-
Save DarkAngelStrike/94b5ef44dc0ec84dba9b5955002ded29 to your computer and use it in GitHub Desktop.
Simple script to calculate huge pages for PostgreSQL. Please note that this is baseline and require further tunning.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
[ -z "$PGDATA" ] && echo "PGDATA is not defined!" && exit 1 | |
[ ! -e $PGDATA/postmaster.pid ] && echo "Cannot find $PGDATA/postmaster.pid is PostgreSQL server running?" && exit 1 | |
PG_PID=$(head -1 $PGDATA/postmaster.pid) | |
PG_MEM_U=$(grep ^VmPeak /proc/$PG_PID/status | awk '{print $3}') | |
HP_MEM_U=$(grep ^Hugepagesize /proc/meminfo | awk '{print $3}') | |
[ "$PG_MEM_U" != "$HP_MEM_U" ] && echo "The units differ please calculate the Huge Pages manually" && exit 1 | |
PG_MEM=$(grep ^VmPeak /proc/$PG_PID/status | awk '{print $2}') | |
HP_MEM=$(grep ^Hugepagesize /proc/meminfo | awk '{print $2}') | |
echo "Advised number of HugePages $((PG_MEM/HP_MEM))" | |
echo "You can use: sysctl -w vm.nr_hugepages=$((PG_MEM/HP_MEM))" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment