systeminformationen auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gorba
User
Beiträge: 100
Registriert: Freitag 28. Juli 2006, 14:58

hallo, ich möchte auf windows und linux die cpu last (user, system, idle) und das memory usage (free, allocated, buffers) auslesen. geht das?

Alles was ich bi jetzt gefunden habe ist:
for line in os.popen("free -m").readlines():

und das geht nur für linux..

Danke für die Hilfe
Sinn und Unsinn meiner Worte kommt nie von ungefähr. Das nämlich bin ich, nicht mehr.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich denke das müsste über WMI gehen, musst du mal in MSDN nachschlagen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Ich koennte dir alles nur erdenkliche an Systemauslastungs-Auslesereien geben... aber nur fuer Linux. Wenn du es trotzdem haben moechtest (ein ehemaliges Projekt von mir, dessen Aufgabe darin bestand, Modular irgendwelche Informationen anzuzeigen. Darunter sind neben dem Mailchecker-Modul eben auch ein haufen Module fuer Systeminfo's), sag einfach bescheid ;)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

unter windows ist das recht einfach, denn du hast mittels des win32 kits die möglichkeit das komplette win32pdh zu benutzen.

hier mal ein beispiel für den cpu load eines processes.

Unter linux gehts per /proc, da hab ich aber gerad den sample code nicht da. Habe ebenfalls mal was geschrieben was nur soviele worker genutzt hat, das das programm nie über 60 % cpu load geht ;)

Code: Alles auswählen

class LoadWatch(threading.Thread):

    def GetProcessLoad(self, Processname):
        #path = win32pdh.MakeCounterPath( (None,"Process","Idle", None, -1, "% Processor Time") )
        path = win32pdh.MakeCounterPath(  (None,"Process", Processname, None, -1, "% Processor Time") )
        #print path
        # open the query, and add the counter to the query
        base = win32pdh.OpenQuery()
        counter = win32pdh.AddCounter(base, path)

        # collect the data for the query object. We need to collect the query data
        # twice to be able to calculate the % Processor Time 
        win32pdh.CollectQueryData(base)
        time.sleep(1)
        win32pdh.CollectQueryData(base)

        # Get the formatted value of the counter
        print "Average CPU Load for process %s is : %d" %(Processname, win32pdh.GetFormattedCounterValue(counter, win32pdh.PDH_FMT_LONG)[1])
        self.load = win32pdh.GetFormattedCounterValue(counter, win32pdh.PDH_FMT_LONG)[1]

    def run(self):
        i =0
        while i < 60:
            i = i + 1
            self.GetProcessLoad("PythonWin")
gorba
User
Beiträge: 100
Registriert: Freitag 28. Juli 2006, 14:58

danke für den windows sample code. da kann ich sicher darauf aufbauen!

@ nkoehring:
Währe dir sehr dankbar, wenn ich dein Projekt anschauen könnte! Gibt weiteren input, und den kann ich immer gebrauchen =)
Sinn und Unsinn meiner Worte kommt nie von ungefähr. Das nämlich bin ich, nicht mehr.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

gorba hat geschrieben:Währe dir sehr dankbar, wenn ich dein Projekt anschauen könnte! Gibt weiteren input, und den kann ich immer gebrauchen =)
Ja klar kannst du ihn haben. Ich schicke dir in ein paar Minuten eine PM mit der URL... ich muss erstmal packen und hochladen, da es die urspruengliche URL nicht mehr gibt...

Gruß

EDIT:Oh... da hab ich wohl was vergessen... :oops:
Ich schickes diesmal sofort ...sorry... aber irgendwie bin ich manchmal ne Schlampe *hrhr*
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
gorba
User
Beiträge: 100
Registriert: Freitag 28. Juli 2006, 14:58

hehe np. danke!
Sinn und Unsinn meiner Worte kommt nie von ungefähr. Das nämlich bin ich, nicht mehr.
Antworten