![]() |
CPU Auslastung bei 10% und bei XP Home bei 70%
Hi,
kurz zum Programm, das Programm fragt alle paar Sekunden eine SQL Datenbank ab ob neue Aufgaben da sind. Es überwacht unsere Server und prüft bestimmte Prozesse. Da wir keinen Server verwenden wollten und einen kleinen Rechner wollten, haben wir uns eine Box von Asus angeschafft. Intel Atom N270 2 x 1.60GHz, 1GB Ram, XP Home. SP3 CPU Auslastung liegt hier bei 70 - 90%. Habe die Anzahl der Threads schon verkleinert, jetzt liegt die Auslastung bei 50-70%, was immer noch recht hoch ist. Eigentlich sollte das System doch reichen. Habe das Programm dann eben mal auf einen anderen Rechner probiert. Intel Pentium 4 2.4 GHz, 500MB Ram, XP Prof. SP1 Auslastung liegt hier bei 10-30%. Ist die CPU doch zu schwach, oder stöst Home da an seine grenzen? Weis nicht wie ich das noch genauer prüfen kann. Mfg |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Wenn die CPU-Auslastung 70 bis 90 Prozent beträgt ist doch alles in Ordnung. Oder habt ihr den Rechner angeschafft, damit er 90 Prozent der Zeit nichts tut?
|
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
lol ok, ist dann nur schlecht wenn man per Web auf die Daten zugreifen möchte und es dauert
bis der Browser die Daten geladen hat. |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Es ist so ne Sache ....
...weil die Art wie die CPU Auslastug ermittelt wird scheinbar nicht immer Sinn macht. Da werden schon mal 100 % angezeigt obwohl ich die Maus noch bewegen kann und alle Fenster sich flüssig verschieben und bedienen lassen....alles obwohl ein anderes Programm den Prozessor zu 100% auslastet..... |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Hallo,
welche DB ? welche Abfragen werden durchgeführt ? Select * keine Indizes und die anderen üblichen Verdächtigen beim SQL-Zugriff. Heiko |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Zitat:
Gruss wo [edit] Ha, wieder mal zu langsam [/edit] |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Benutze Xampp. Das sind einige Abfragen.
Hier wird geprüft ob es neue Arbeit gibt.
Delphi-Quellcode:
Wenn ja wird ein Thread gestartet der diese Abarbeitet.
sql := 'SELECT * FROM tabelle '+
'INNER JOIN tabellen '+ 'WHERE check_start_next < '''+FloatToStr(now)+''' AND '+ 'check_device_id = '''+DeviceID+''''; Noch eine Abfrage
Delphi-Quellcode:
Das sind so zwei Abfragen die alle paar Sekunden duchgeführt werden.
sql := 'SELECT * FROM netzwerk_gerate WHERE gerat_is_inscan = ''1''';
|
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Ein Atom N270 ist glaube ich Single-Core. Also nur 1x 1.6 GHz.
|
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Hallo,
ein Select * plus Join liefert alle Felder beider Tabellen. Bist du dir sicher, dass du wirklich alle Feld-Werte beider Tabellen brauchst ? Heiko |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Zitat:
Zitat:
Mfg |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Zitat:
![]() |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Vielleicht solltest du, um das Problem zu lösen, einfach das Konzept der Abfragen etwas abändern.
Wie hoika schon bemerkt hat, ist es bestimmt in den meisten Fällen nicht notwendig, alle paar Sekunden die kompletten Daten zweier gejointer Tabellen zu holen, um zu prüfen, ob eine neue Aufgabe ansteht. Ich habe so etwas Ähnliches auch schon gemacht und gehe dabei eigentlich meist so vor: 1) Wenn eine neue Aufgabe eingefügt wird, wird für das entsprechende "device" einfach nur ein boolsches Flag in einer Tabelle auf "1" gesetzt. (Beispiel: Feld "task_available" in einer Tabelle Namens "tasks" als Boolean-Type) 2) Dieses Flag (und zwar nur dieses) wird vom Client alle paar Sekunden abgefragt: ('SELECT task_available FROM tasks WHERE device_id='+MY_DEVICE_ID) 3) Ist das Flag "1", holt sich der Client die relevanten Daten (in deinem Fall die gejointen Tables) und setzt das Flag wieder auf "0". Somit ist der "Check-Aufwand" minimal und die CPU-Auslastung dürfte nichtmal zu spüren sein. Vielleicht bringt dir das ja was :) grüssle, Fin |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Wenn du die CPU last senken willst installiere LAMP da MySQL unter Linux weniger last erzeugt.
|
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
@blackfin, werde ich mir mal ein paar gedanken zu machen. Aber so kann ich das eigentlich nicht machen, weil die Jobs immer gleich bleiben und nur alle x Sekunden abgearbeitet werden.
@franktron, habe aber kein Linux. |
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Ich spendiere bei sowas den Tabellen einen Zeitstempel. Mit Select Max(Stempel) kann ich erst mal abfragen, ob überhaupt was getan werden muß
|
Re: CPU Auslastung bei 10% und bei XP Home bei 70%
Habe ja einen Zeitstempel.
40297,5131740972 und frage den so ab
Delphi-Quellcode:
Habe meine Sourcen jetzt ein wenig angepast.
sql := 'SELECT check_id, check_device_id FROM tabelle '+
'WHERE check_start_next < '''+FloatToStr(now)+''''+ 'GROUP BY check_device_id'; Mit den Tipps oben und habe die Sourcen ein wenig optimiert. Jetzt liegt die Auslastung bei 8% - 30%. Und wenn es was zu tun gibt bei ca. 60%. Aber ich konnte eine Aufgabe von 4 schon mal verbessern. Hier auf den schnellen Rechner habe ich das ganze wohl nicht so mitbekommen :D. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz