Kernel Samepage Merging (KSM) erlaubt eine Deduplizierung des Memory unter Linux und wurde mit der Kernel Version 2.6.32 eingeführt. KSM versucht gleiche Memory Pages zu erkennen und diese zusammenzuführen um den doppelt belegten Memory freizugeben. Ursprünglich für Virtualisierung vorgesehen kann es nun auch von allen Programmen genutzt werden, die viele Instanzen mit gleichen Daten erzeugen.
Die Werte dazu kann man schön unter /sys/kernel/mm/ksm/ abfragen und in Zabbix integrieren. Bei Hostsystemen mit vielen Gästen ist es sicher interessant sich das mal in Form von Graphen im Frontend anzuschauen. Die Werte sind die folgenden:
pages_to_scan Zu scannende Shared pages
sleep_millisecs Zeit bis zum nächsten Scan
run 0 = stop ksmd, 1 = start/running ksmd, 2 = stop ksmd und unmerge
pages_shared how many shared pages are being used
pages_sharing how many more sites are sharing them i.e. how much saved
pages_unshared how many pages unique but repeatedly checked for merging
pages_volatile how many pages changing too fast to be placed in a tree
full_scans how many times all mergeable areas have been scanned
Dazu hab ich kleines Paket gebaut, was im Grund eigentlich nur aus einem Einzeiler besteht. Zu finden unter:
Sourcecode: Github
Repository: repository.chr.istoph.de