Zitat:
Original geschrieben von thb
[b]Einmal muss ich doch noch was dazu sagen:
Ein Glück auch, denn ohne sie wüsste ich nicht, welche Programme alle nach Hause telefonieren wollen. Diese Funktion reicht mir schon völlig aus, die 19 MB auf meiner Festplatte für ein kostenloses Proggi zu opfern. Und 5% CPU-Leistung benötigt es definitiv nicht.
|
Ansichtssache. Es gab da z.b. mal eine bekannte software firewall, deren logging feature via MDAC/ADO realisiert war (d.h. sie loggte alles und jeden Kram in eine Access Datenbank). Nun weiß jeder, dass die mdb engine so ziemlich die mieseste (und langsamste) Datenbank ist, die man sich überhaupt vorstellen kann. Ergebnis waren bis zu 90% CPU Last bei einem Portscan auf einem 600 MHz Pentium 3

Toll, nicht? So eine software firewall ließe sich dann gleich auch noch als Angriffspunkt für eine herrliche DoS Attacke mißbrauchen und würde auch auf einer hochmodernen CPU immer noch spürbare CPU Last erzeugen. Wenn wir schon nicht reinkommen, legen wir die Kiste halt lahm. Der dumme DAU merkt eh nix und jammert dann in irgendwelchen Foren über miese game performance.
Ältere Versionen von ZoneAlarm waren noch schlimmer. Die verbrieten die CPU Leistung bei starkem traffic gleich im Kernelmode - wer sich da nicht zu helfen weiß, ist dann wirklich der ge*rschte, weil es da auch nicht mehr hilft, einfach mal einen Prozess via taskmanager "abzuschießen".
Mag sein, dass diese Programme heute ausgereifter sind - trotzdem - bei wirklich starkem traffic verbraten sie *zwangsläufig* CPU Zeit, denn schließlich müssen sie jedes Datenpaket analysieren (zumindest die IP und TCP header). Diese CPU Last sieht man nicht im taskmanager, weil das filtering auf Kernelebene passiert - packetfilter hängen sich i.a. direkt auf NDIS Ebene zwischen Netzwerkkarte (hardwareseitig) und protocol driver rein (müssen sie, anders gehts gar nicht).
Ob da auf einem modernen System jetzt 5% zusammenkommen können, ist schwer nachzuvollziehen, weil schwer meßbar. Man müsste die performance des Systems im "clean" Zustand genau kennen und dann mit aktiver firewall bei starkem traffic vergleichen. Übliche Methoden wie z.b. der taskmanager nutzen gar nix, weil jene Last, die von *unabhängig laufenden* Kerneltreibern erzeugt wird, dort nicht sichtbar ist. Das feature "show kernel times" im taskmanager zeigt nur den Anteil, den ein usermode Programm im Kernelmode verbringt, an.
Die Berechnung der CPU Zeit im Taskmanager richtet sich nach dem "System idle process". Dem steht im Normalfall die gesamte, verfügbar CPU Zeit zu, also 100%. Die CPU Zyklen die der Kernel samt allen Treibern und Nebenkram für sich beansprucht ist da bereits vorher abgezogen, also nicht mehr sichtbar.
Wenn die Treiber und Filter einigermaßen gut programmiert sind, dann sollten sie im Normalfall (netzwerk mehr oder weniger "idle") so gut wie gar keine CPU Zeit verbrauchen. Bei starkem traffic kann sich das aber ändern, je nachdem wie komplex die Filtermethoden sind.