Auslastung einzelner Cores in % [Multicore]
Verfasst: Freitag 19. Dezember 2014, 23:56
Hallo liebe Community,
ich bin neu in der Python Welt, um ehrlich zu sein bin ich seit 2Tagen dabei .
Da ich mich aber schon in diversen anderen Sprachen heimisch fühle, war das Verstehen recht einfach.... Der Syntax hat mir anfangs nur Probleme gemacht -.-
Ich bin von der Firma SQuote UG (haftungsbeschränkt) und wir nutzen und entwickeln die Software easy-PANEL.
easy-PANEL ist für Hoster bestimmt und erfüllt viele Zwecke. z.B. Verwaltung von Gameservern, vServer, Voiceserver etc....
Ich will hier auch keine Werbung machen, nur eben erklären wie ich dazu kam
Wir haben nun auch angefangen Rootserver Skripte zu schreiben. Diese sollen für den Anfang nur Informationen ausliefern...
Freien und Maximalen HDD Speicher, Ram (Total, Free, Used), uptime etc...
Hier wollte ich auch den Durschnittswert der CPU Auslastung ermitteln und ausgeben. Zunächst habe ich (wie alle bis dato geschriebenen Scripte) das in BASH geschrieben.
Naja ich habe was gefunden und das dann umgemodelt Danke an den Coder
Zurück: Nun haben wir festgestellt das die Ladezeit der Seite sehr lange ist... Wir wissen alle... BASH ist nicht gerade der schnellste
Also habe ich mich umgeschaut und dachte mir mit Python das Ganze zu machen. Python ist Tausendmal schneller und es gefällt mir (hihi)
Ich habe mir also vor Zwei Tagen das ganze angeschaut und habe schon das gesamte Rootscript von BASH in Python umgeschrieben
Jetzt kommen wir zu meinem Problem...
Hier erstmal der Code:
Mein Problem besteht nun darin das ich das in einer For-Schleife habe und meine Variable immer überschreibe, somit bekomme ich statt z.B. 8 Werte nur 1 wert zurück....
Wie bekomme ich das nun in eine Liste/Array das ich die Zahlen in der obriegen Funktionen Addieren kann und dann durch die Anzahl der Cores Zeilen kann um den Durchschnitt zu erhalten...
Ich würde mich sehr um Antwort freuen und danke euch nun schon mal für eure Anteilnahme...
Bitte habt aber Nachsicht mit Fachbegriffen und Funktionen... Ich bin erst seit 2tagen am Zug und kenne nicht mal nen Bruchteil.
Ich lerne aber schnell
Mit freundlichem Gruß
Andre
ich bin neu in der Python Welt, um ehrlich zu sein bin ich seit 2Tagen dabei .
Da ich mich aber schon in diversen anderen Sprachen heimisch fühle, war das Verstehen recht einfach.... Der Syntax hat mir anfangs nur Probleme gemacht -.-
Ich bin von der Firma SQuote UG (haftungsbeschränkt) und wir nutzen und entwickeln die Software easy-PANEL.
easy-PANEL ist für Hoster bestimmt und erfüllt viele Zwecke. z.B. Verwaltung von Gameservern, vServer, Voiceserver etc....
Ich will hier auch keine Werbung machen, nur eben erklären wie ich dazu kam
Wir haben nun auch angefangen Rootserver Skripte zu schreiben. Diese sollen für den Anfang nur Informationen ausliefern...
Freien und Maximalen HDD Speicher, Ram (Total, Free, Used), uptime etc...
Hier wollte ich auch den Durschnittswert der CPU Auslastung ermitteln und ausgeben. Zunächst habe ich (wie alle bis dato geschriebenen Scripte) das in BASH geschrieben.
Naja ich habe was gefunden und das dann umgemodelt Danke an den Coder
Zurück: Nun haben wir festgestellt das die Ladezeit der Seite sehr lange ist... Wir wissen alle... BASH ist nicht gerade der schnellste
Also habe ich mich umgeschaut und dachte mir mit Python das Ganze zu machen. Python ist Tausendmal schneller und es gefällt mir (hihi)
Ich habe mir also vor Zwei Tagen das ganze angeschaut und habe schon das gesamte Rootscript von BASH in Python umgeschrieben
Jetzt kommen wir zu meinem Problem...
Hier erstmal der Code:
Code: Alles auswählen
import time
import os
import sys
import multiprocessing
def AverageAusgabe():
wert = Average()
return wert
def Average(tick=""):
CpuCores = multiprocessing.cpu_count()
TOTAL_LAST = range(CpuCores)
BUSY_LAST = range(CpuCores)
for i in range(CpuCores):
TOTAL_LAST[i] = 0
BUSY_LAST[i] = 0
print('Anzahl der CPUs: ' + str(CpuCores))
while True:
for i in xrange(CpuCores):
CPUDATA="grep cpu" + str(i) + " /proc/stat"
CoreTicks = os.popen(CPUDATA).read()
CoreTicks = CoreTicks.split()
BUSY_TICKS = (int(CoreTicks[1]) + int(CoreTicks[2]) + int(CoreTicks[3]) + int(CoreTicks[6]) + int(CoreTicks[7]))
TOTAL_TICKS = (int(CoreTicks[1]) + int(CoreTicks[2]) + int(CoreTicks[3]) + int(CoreTicks[4]) + int(CoreTicks[5]) + int(CoreTicks[6]) + int(CoreTicks[7]))
BUSY_1000 = 1000 *(int(BUSY_TICKS) - int(BUSY_LAST[i])) / (int(TOTAL_TICKS) - int(TOTAL_LAST[i]))
BUSY_GANZZAHL = BUSY_1000 / 10
BUSY_ZEHNTEL = BUSY_1000
AVERAGE = str(BUSY_GANZZAHL) + '.' + str(BUSY_ZEHNTEL)
# return AVERAGE
print AVERAGE
TOTAL_LAST[i] = TOTAL_TICKS
BUSY_LAST[i] = BUSY_TICKS
time.sleep(1)
print
if __name__ == "__main__":
Average()
#AverageAusgabe()
Wie bekomme ich das nun in eine Liste/Array das ich die Zahlen in der obriegen Funktionen Addieren kann und dann durch die Anzahl der Cores Zeilen kann um den Durchschnitt zu erhalten...
Ich würde mich sehr um Antwort freuen und danke euch nun schon mal für eure Anteilnahme...
Bitte habt aber Nachsicht mit Fachbegriffen und Funktionen... Ich bin erst seit 2tagen am Zug und kenne nicht mal nen Bruchteil.
Ich lerne aber schnell
Mit freundlichem Gruß
Andre