Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#15

AW: Speicherlecks in fremdem Code/Programm finden

  Alt 6. Jan 2017, 15:30
Es gibt Neuigkeiten, und zwar gute! Ich habe das Leck schneller als gedacht eingrenzen können: es liegt eindeutig am SpeedFan-Plugin. Ist das Plugin deaktiviert, schwankt der Speicherverbrauch des Munin Node über einige Stunden maximal 12 KB (was ich als normal betrachte). Ist es aktiviert, steigt der Speicherverbrauch zwischen 100 und 800 KB pro 30 Minuten!

Hier mal eine Übersicht der mitgeschriebenen Werte. WS = Working Set, Werte in Kilobyte (KB).
PluginStartwert WSWS nach dem ersten NetzwerkkontaktEndwert nach 5 StundenDiffKommentar
alle außer External, PerfCounter, SMART, HD, SpeedFan3004318831924VM mit XP
alle außer External, PerfCounter, SMART, HD3032326855682300VM mit XP
alle außer External, PerfCounter, SMART, HD, SpeedFan?472447284Host mit Win7
alle außer External, PerfCounter, SMART, SpeedFan43244712472412Host mit Win7
alle außer External, SMART436045605132572Win2k; Wert nach 3 Stunden

Die Speicherzunahme ist auch auf Win2k zu beobachten. Warum ich hier von einem Unterschied zwischen Win2k und XP+ ausging, ist ganz einfach zu erklären: SpeedFan kam bei mir nie auf Win2k zum Einsatz, sondern erst ab XP; die Systeme mit Win2k benutzten ältere Hardware, die noch mit Motherboard Monitor auslesbar war (daher gab's keinen Grund für SpeedFan).

Weitere wichtige Beobachtung: Der Speicherzuwachs ist sogar abhängig davon, wieviele weitere Rechner mit SpeedFan im LAN aktiv sind, d.h. je mehr Systeme desto stärker wächst die Größe des Munin Node!

Nun muss nur noch das Leck selbst gefunden werden. Falls jemand Zeit und Lust hat, kann gern einen Blick auf den Code des Plugins werfen. Ich werde dasselbe tun. Nach einem ersten Blick auf den Code, ist meine Vermutung, dass das Leck irgendwo in der Funktion SpeedFanNodePlugin::ListenerThread::ProcessBuffer( ) steckt.

Grüße
Dalai
  Mit Zitat antworten Zitat