Wanneer je Splunk installeert op een Linux systeem is het in bijna alle gevallen aan te raden om specifieke settings op Linux aan te passen voor een betere performance van Splunk.
In deze post noemen we twee van deze settings, die belangrijk zijn om aan te passen op een Linux systeem: THP en Ulimit.
“THP has been associated with degradation of Splunk Enterprise performance in at least some Linux kernel versions (for example, the 2.6.32 kernel used in Red Hat Enterprise Linux 6). When enabled, THP can significantly degrade overall system performance on systems that run Splunk Enterprise because of several issues:”
Deze quote uit de Splunk documentatie zegt genoeg. Voor een betere performance zullen we THP dus moeten disablen.
Meer over Transparent Huge Pages vind je via de volgende link: THP
Volg onderstaande stappen om de settings voor THP persistent te maken:
rc.local
touch /var/lock/subsys/local
if test -f /sys/kernel/mm/transparent_hugepage/enabled;
then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;
then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
Vergeet niet om het bestand rc.local executable te maken →
chmod ug+x rc.local
Na een reboot van het Linux systeem staan deze waardes nu goed voor Splunk.
Mochten de waardes (nog) niet goed staan, dan kun je deze dynamisch aanpassen. Je hoeft Splunk dus niet te herstarten.
Vanaf de CLI:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
16 Oktober 2018
In Data
By CINQ
Wanneer je Splunk installeert op een Linux systeem is het in bijna alle gevallen aan te raden om specifieke settings op Linux aan te passen voor een betere performance van Splunk.
In deze post noemen we twee van deze settings, die belangrijk zijn om aan te passen op een Linux systeem: THP en Ulimit.
“THP has been associated with degradation of Splunk Enterprise performance in at least some Linux kernel versions (for example, the 2.6.32 kernel used in Red Hat Enterprise Linux 6). When enabled, THP can significantly degrade overall system performance on systems that run Splunk Enterprise because of several issues:”
Deze quote uit de Splunk documentatie zegt genoeg. Voor een betere performance zullen we THP dus moeten disablen.
Meer over Transparent Huge Pages vind je via de volgende link: THP
Volg onderstaande stappen om de settings voor THP persistent te maken:
rc.localtouch /var/lock/subsys/localif test -f /sys/kernel/mm/transparent_hugepage/enabled;thenecho never > /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag;thenecho never > /sys/kernel/mm/transparent_hugepage/defragfi
Vergeet niet om het bestand rc.local executable te maken →
chmod ug+x rc.local
Na een reboot van het Linux systeem staan deze waardes nu goed voor Splunk.
Mochten de waardes (nog) niet goed staan, dan kun je deze dynamisch aanpassen. Je hoeft Splunk dus niet te herstarten.
Vanaf de CLI:
echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag
Controle doe je door het uitvoeren van een cat op de files:
[root@machineXYZ rc.d]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@machineXYZ rc.d]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
De setting tussen de [ ] geeft de huidige waarde aan en deze is per direct actief.
Daarnaast is het van belang om er voor te zorgen dat je de ulimits van Linux juist instelt voor betere performance van je Splunk omgeving.
Voor meer info over ulimits uit de Splunk documentatie: klik hier
Om hier persistent de juiste waarde voor je systemen aan toe te kennen voer je de volgende acties uit:
Maak een file aan in de directory /etc/security/limits.d/ met de naam 99-splunk.conf (of een andere naam) met de volgende inhoud:
99-splunk.conf
splunk hard core 0
splunk hard maxlogins 10
splunk soft nofile 65535
splunk hard nofile 65535
splunk soft nproc 20480
splunk hard nproc 20480
splunk soft fsize unlimited
splunk hard fsize unlimited
Let op, wanneer je een andere user gebruikt dan Splunk, dan moet je uiteraard de naam van deze user hier invullen! Believe me it happens…
Je maakt deze file aan in limits.d in plaats van het aanpassen van de limits.conf in /etc/security, dit in verband met eventuele automatisering van het bestand. De waardes zijn aanbevolen waardes vanuit Splunk Professional Services.
Een bekend probleem is dat deze settings niet altijd worden overgenomen.
Zoals ik al zei je komt een heel eind met Google 😉
Om dit werkend te krijgen is een aanpassing nodig in het start script voor Splunk in de init.d directory.
/etc/init.d/splunk aanpassen met de volgende waardes:
splunk start script
#!/bin/sh
#
# /etc/init.d/splunk
# init script for Splunk.
# generated by 'splunk enable boot-start'.
#
# chkconfig: 2345 90 60
# description: Splunk indexer service
#
RETVAL=0
. /etc/init.d/functions
splunk_start() {
echo Starting Splunk...
ulimit -Hn 65535
ulimit -Sn 65535
"/opt/splunk/bin/splunk" start --no-prompt --answer-yes
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/splunk
}
splunk_stop() {
echo Stopping Splunk...
"/opt/splunk/bin/splunk" stop
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/splunk
}
splunk_restart() {
echo Restarting Splunk...
"/opt/splunk/bin/splunk" restart
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/splunk
}
splunk_status() {
echo Splunk status:
"/opt/splunk/bin/splunk" status
RETVAL=$?
}
case "$1" in
start)
splunk_start
;;
stop)
splunk_stop
;;
restart)
splunk_restart
;;
status)
splunk_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit $RETVAL
In bovenstaand script is het volgende aangepast:
echo Starting Splunk...
ulimit -Hn 65535
ulimit -Sn 65535
Door bovenstaande wijziging staan de ulimits bij een restart van Splunk goed voor Splunk. Let op!! Je moet eerst de betreffende Splunk instantie stoppen en daarna starten. Splunk restart werkt niet. De overige settings uit limits.d worden alleen actief bij een reboot, dit kun je plannen.
We hopen dat we je Splunk omgeving hiermee weer een beetje beter en sneller hebben gemaakt. Je kunt de toegepaste settings opnieuw controleren in de health check op de master, deze zouden nu allemaal een positief resultaat laten zien.
Wil je hier meer over weten of kom je er niet helemaal uit? Laat een reactie achter in de comments of stuur een berichtje naar Bob of Matthias!