Glaubst du ein 5 Sekunden .timer verursacht messbaren unterschied im Stromverbrauch und/oder load?TomL hat geschrieben:11.06.2019 17:27:34Mit dem 5-Sekunden-Timer erzeugst Du meiner Meinung nach auf jeden Fall eine unverhältnismäßige Systemlast für den Systemmanager, die permanent die CPU-Last und damit den Stromverbrauch hochhält.
[gelöst] .timer soll alle x sekunden einen service/script ausführen
- Lord_Carlos
- Beiträge: 5578
- Registriert: 30.04.2006 17:58:52
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Dänemark
Re: .timer soll alle x sekunden einen service/script ausführen
Code: Alles auswählen
╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!
Re: .timer soll alle x sekunden einen service/script ausführen
Ich beziehe mich da nur auf meine eigenen Beobachtungen.... insofern kann ich da nicht von "nur glauben" sprechen. Ich habe einen 5-Minuten-Timer und konnte dabei mit htop konkret beobachten, wie die Last bei diesem Prozess mit Laden, Ausführen, Prozess-Verwaltungsoverhead, usw. nachweislich hochgeht. Und weil ich nicht wusste, welche Auswirkung das evtl. auch auf den Sleep der Platte hat, habe ich aus dem Grund und mit gleicher Motivation für diesen Job eine RAM-Disk angelegt, die regelmäßig auf meinen Web-Space gesichert wird, um selbst für diesen langen Zyklus (5 Min.) die Platte (gerade auch die ständig aufgeweckte und neu anlaufende Mechanik) trotzdem rausnehmen zu können. Bei einem so kurzen Zyklus von 5 Sekunden gibts ja faktisch gar keine Entspannungsphasen mehr, deshalb glaube ich also schon, dass solche Überlegungen relevant sind.Lord_Carlos hat geschrieben:12.06.2019 10:33:08Glaubst du ein 5 Sekunden .timer verursacht messbaren unterschied im Stromverbrauch und/oder load?
Bei einem 5-Sekunden-Zyklus halte ich allenfalls noch den Cache für eine reduzierende Einflussgröße... aber ich kann das nicht greifen, oder beeinflussen, oder erklären... insofern verlass ich mich da lieber nicht auf den Cache. Und soweit es den Stromverbrauch (nicht aktuell, sondern auf die Jahressumme bezogen) angeht, entscheide ich mich immer nach der Devise "jede Möglichkeit zur Minimierung des Verbrauchs wird beachtet"
Re: .timer soll alle x sekunden einen service/script ausführen
Ich halte 5 Sekunden Polling auch für eine unglückliche Idee. Wenn irgendwie möglich, sollte man auf Polling verzichten und versuchen, das ereignisgesteuert umzusetzen (was auch immer mit der Datei überwacht werden soll)TomL hat geschrieben:12.06.2019 10:56:20Bei einem so kurzen Zyklus von 5 Sekunden gibts ja faktisch gar keine Entspannungsphasen mehr, deshalb glaube ich also schon, dass solche Überlegungen relevant sind.
Trotzdem gibt es im Linuxkernel eine Möglichkeit, die Festplatte möglichst selten hochzufahren, das geht allerdings auf Kosten der Datensicherheit. Mit dem Kernelparameter /proc/sys/vm/laptop_mode kann man das System dazu bringen, die Platte nur dann hochzufahren, wenn die benötigen Daten nicht im Cache liegen. Bei einer kleinen Datei, die alle 5 Sekunden abgefragt wird, ist die Wahrscheinlichkeit, daß der Inhalt im Cache liegt, fast 100%. Die Datensicherheit ist bei Stromausfall allerdings gefährdet, weil der Cache möglichst selten auf die Platte geflusht wird.
Setzen des Laptopmodes:
Code: Alles auswählen
echo "1" > /proc/sys/vm/laptop_mode
Code: Alles auswählen
echo "0" > /proc/sys/vm/laptop_mode
Code: Alles auswählen
sys.vm.laptop_mode = 1
Re: [gelöst] .timer soll alle x sekunden einen service/script ausführen
Ich habe aus Neugier mal ein bisschen gesucht und was interessantes gefunden:
https://www.computerbase.de/2018-08/cpu ... amd-intel/
Zitat:
"Intels aktuelle Definition der TDP
Intel definiert die TDP aktuell als „die durchschnittliche Leistungsaufnahme (in Watt), die der Prozessor beim Betrieb auf Basisfrequenz ableitet, wenn alle Kerne bei einer von Intel definierten, hochkomplexen Arbeitslast aktiv sind“.
Und wenn ich mir jetzt die TDP-Werte von Intel-CPUs anschaue, dann muss man doch zu dem Schluß kommen, dass hohe CPU-Aktivität aufs Jahr bezogen auch einen hohen Stromverbrauch verursacht:
https://de.wikipedia.org/wiki/Liste_der ... en#Desktop
BTW: häufig wird ja genau darauf auch als Nebeneffekt nach einem Cryptojacking hingewiesen.
https://www.computerbase.de/2018-08/cpu ... amd-intel/
Zitat:
"Intels aktuelle Definition der TDP
Intel definiert die TDP aktuell als „die durchschnittliche Leistungsaufnahme (in Watt), die der Prozessor beim Betrieb auf Basisfrequenz ableitet, wenn alle Kerne bei einer von Intel definierten, hochkomplexen Arbeitslast aktiv sind“.
Und wenn ich mir jetzt die TDP-Werte von Intel-CPUs anschaue, dann muss man doch zu dem Schluß kommen, dass hohe CPU-Aktivität aufs Jahr bezogen auch einen hohen Stromverbrauch verursacht:
https://de.wikipedia.org/wiki/Liste_der ... en#Desktop
BTW: häufig wird ja genau darauf auch als Nebeneffekt nach einem Cryptojacking hingewiesen.
Das ist auch meine Meinung.MSfree hat geschrieben:12.06.2019 11:16:04...und versuchen, das ereignisgesteuert umzusetzen (was auch immer mit der Datei überwacht werden soll)
Re: [gelöst] .timer soll alle x sekunden einen service/script ausführen
Nicht wird so heiß gegessen, wie es gekocht wirdTomL hat geschrieben:12.06.2019 11:23:53Und wenn ich mir jetzt die TDP-Werte von Intel-CPUs anschaue, dann muss man doch zu dem Schluß kommen, dass hohe CPU-Aktivität aufs Jahr bezogen auch einen hohen Stromverbrauch verursacht:
https://de.wikipedia.org/wiki/Liste_der ... en#Desktop
Ich habe alle meine Rechner bisher mit einem Wattmeter untersucht:
Core2-Quad Q9300 (lüfterlos), 95W TDP, Leerlauf 56W, maximale Auslastung 110W
i7-2600, 95W TDP (lüfterlos), Leerlauf 26W, maximale Auslastung 95W
i5-3450, 77W TDP (quasi lüfterlos), durchschnittlich 25W, maximal nicht gemessen
i3-7100, 51W TDP (quasi lüfterlos), Leerlauf 15W, maximale Last 50W
Jeweils ab Steckdose gemessen. Bei (optimistischen) 80% Netzteilwirkungsgrad und abzüglichen Leistungen von Festplatten, Mainboard, RAM etc. komme ich also nicht einmal in die Nähe der von Intel angegebenen TDP.
Ich schätze, daß der
Q9300 maximal 70W
i7-2600 maximal 60W
i3-7100 maximal 30W
verbrauchen. Die TDP-Werte werden vermutlich nur mit Burn-In Werkzeugen erreicht, die alle Rechenwerke und die Onboard-Graphik gleichzeitig maximal Auslasten können.
Re: [gelöst] .timer soll alle x sekunden einen service/script ausführen
Ja, das hatte ich auch so interpretiert... als einen Wert bei maximaler Auslastung. Aber nehmen wir mal Deine CPU
und projizieren das auf meine Anwendung: Meine CPU dümpelt außerhalb des 5-Min-Takts so zwischen 0,7% bis 3% CPU-Last vor sich hin... da laufen im Hintergrund 2 VMs. Im Moment meines 5-Minuten-Zyklus schnellt die CPU-Last allerdings auf 40-60% hoch, was aber wiederum nur 1 Sekunde dauert, wenn "ereignislos" die Grundlage war.i7-2600, 95W TDP (lüfterlos), Leerlauf 26W, maximale Auslastung 95W
Und da stell ich nun die Frage, wie sich möglicherweise 0,7-3% von 95W im Vergleich zu 40-60% von 95W auf den Stromverbrauch auswirken, wenn das im 5-Sekunden-Takt das ganze Jahr über passiert. Ich betrachte das jetzt mangels Sachkenntnis mit Milchmädchen-Logik... und insofern weiss ich natürlich nicht, inwieweit ich das falsch interpretiere... ... aber irgendeinen Zusammenhang mit gemessener CPU-Last und Watt-Leistung und deswegen Einfluss auf Betriebskosten (und damit zwangläufig auch auf die Umwelt) muss es ja geben.
Re: [gelöst] .timer soll alle x sekunden einen service/script ausführen
Alle paar Sekunden einen 50%-Last für vielleicht 0.1s bringt den durchschnittlichen Stromverbrauch nicht siginifikant nach oben. Statt (meiner) 26W im Leerlauf, kommt man dann vielleicht auf 27-28W. Viel problematischer ist, wenn eine rotierenden Platte dann nie mehr abschaltet. Platten ziehen etwa 5-7W aus dem Netzteil, bzw. 7-10W aus der Steckdose.TomL hat geschrieben:12.06.2019 12:04:02und projizieren das auf meine Anwendung: Meine CPU dümpelt außerhalb des 5-Min-Takts so zwischen 0,7% bis 3% CPU-Last vor sich hin... da laufen im Hintergrund 2 VMs. Im Moment meines 5-Minuten-Zyklus schnellt die CPU-Last allerdings auf 40-60% hoch, was aber wiederum nur 1 Sekunde dauert, wenn "ereignislos" die Grundlage war.
10W Mehrverbrauch durch Platte und 5 Sekunden Polling kosten dann halt bei 24/7-Betrieb rund 26 Euro pro Jahr.
Re: [gelöst] .timer soll alle x sekunden einen service/script ausführen
Das ist natürlich jetzt eine optimistische Annahme, dass der Prozess nur 0.1 Sekunde dauert. Klar, das denke ich auch, dann wird das wirklich kaum den Stromverbrauch nach oben triggern.MSfree hat geschrieben:12.06.2019 12:23:53Alle paar Sekunden einen 50%-Last für vielleicht 0.1s bringt den durchschnittlichen Stromverbrauch nicht siginifikant nach oben.
Aus Neugier habe ich mir gerade mal nen Test-Script angelegt... und ja, ich weiss, nen Loop ist auch nicht der wahre Jakob... brauchst also gar nicht erst zu meckern ... ... also, ich war einfach nur mal Neugierig... ob sich das für Rückschlüsse eignet, weiss ich nicht... ich leite aber daraus ab, dass man dem Programm-Design durchaus mehr Beachtung schenken sollte. Der loop simuliert einfach nur mal einen kurzen Job (, mit der Genauigkeit eines Schätzeisens ... )
Meine CPU: Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
Das Script:
Code: Alles auswählen
#!/bin/bash
a=0
for (( c=0; c<=40000; c++ ))
do
a=$a+1
done
echo "Programm gestartet!" | systemd-cat -t "thlu:`basename $0`" -p info
exit 0
Re: [gelöst] .timer soll alle x sekunden einen service/script ausführen
Zumindest das kann man messen:
Code: Alles auswählen
time NameDesScriptes