Druckermonitor mit Interrupt-Betrieb moeglich (mit SMNP)

15/07/2011 - 19:22 von carlox | Report spam
Hallo allerseits,
1)
Mit Hilfe des Protokolls SMNP kann man Druckermonitoring betreiben,
d.h. Druckerdaten abfrage, wie z.B. die Menge des Toners.
In einem Programm wurde dies mit Hilfe von Polling (laufendes Abfragen
der Druckerdaten) gemacht. Dies hat den Nachteil, daß dadurch die
CPU-Last bzw. die Netzwerklast zu groß wird, wenn der Pollingzyklus zu
klein wird.
Frage:
Waere es nicht möglich statt Polling dies mit dem Interrupt-Betrieb zu
realisieren?
Interrupt-Betrieb bedeutet, daß z.B. auf dem Rechner, wo sich der
Drucker befindet ein Programm die Druckerdaten über das Netz an den
Druckerueberwachungsrechner sendet, dieser dies durch einen
Netzwerkinterrupt (an der Netzwerkkarte) mitbekommt und dann und nur
dann eine Interruptserviceroutine aufruft, die dann z.B. den
Druckerzustand auf dem Bildschirm des Druckerüberwachungsrechner
ausgibt. (Wird dies mit SMNP-Trap realisiert ?)

2)
Nennt man diese Interruptserviceroutine dann einen Task oder wie heißt
dies richtig?

mfg
Ernst
 

Lesen sie die antworten

#1 Ralf Döblitz
15/07/2011 - 19:59 | Warnen spam
Ernst Baumann schrieb:
Hallo allerseits,
1)
Mit Hilfe des Protokolls SMNP kann man Druckermonitoring betreiben,
d.h. Druckerdaten abfrage, wie z.B. die Menge des Toners.
In einem Programm wurde dies mit Hilfe von Polling (laufendes Abfragen
der Druckerdaten) gemacht. Dies hat den Nachteil, daß dadurch die
CPU-Last bzw. die Netzwerklast zu groß wird, wenn der Pollingzyklus zu
klein wird.



Ahemm. Hüstel. Meinst du das ernst? Die Druckleistung aktueller Drucker
mit einer Tonerfüllung liegt im Bereich einiger tausend Seiten. Das
Warnniveau liegt meistens so, daß man noch einige hundert Seiten drucken
kann. Selbst bei einem sehr schnellen Drucker mit 40 Seiten/Minute
dauert es also mehrere Minuten bis man von "Warnung" auf "nichts geht
mehr" ist. Mir reicht da für das Monitoring normlaerweise das 5-Minuten-
Raster von Munin vollkommen aus - und das verursacht keine renrsthafte
Belastung von Netz oder Monitoring-Rechner.

Frage:
Waere es nicht möglich statt Polling dies mit dem Interrupt-Betrieb zu
realisieren?



Nicht wirklich, das hat mit Interrupts im eigentlichen Sinne (so wie man
sie von der CPU her kennt) wenig zu tun.

Interrupt-Betrieb bedeutet, daß z.B. auf dem Rechner, wo sich der
Drucker befindet ein Programm die Druckerdaten über das Netz an den
Druckerueberwachungsrechner sendet, dieser dies durch einen
Netzwerkinterrupt (an der Netzwerkkarte) mitbekommt und dann und nur
dann eine Interruptserviceroutine aufruft, die dann z.B. den
Druckerzustand auf dem Bildschirm des Druckerüberwachungsrechner
ausgibt. (Wird dies mit SMNP-Trap realisiert ?)



Ja. Und dafür richtest du einfach einen Service ein, der bereit ist,
solche SNMP-Traps zu empfangen. Da das auch einfach nur UDP-Pakete sind,
ist das ein Prozeß, der normalerweise blockiert ist (weil er auf dem
geöffneten Socket auf Eingang eines Pakets wartet) und bei Empfang
eines passenden UDP-Pakets dann vom Kernel wieder auf "Running" gesetzt
wird. Das ist àhnlich wie bei Interrupts, die laufen aber normalerweise
nur kernelintern beim Empfang der Daten aus dem Netzwerk und haben mit
der Verarbeitung durch die Applikation dann nicht mehr direkt etwas zu
tun.

Ich lasse mir aber einfach bei Fehlern (und dazu werden auch Meldungen
wegen niedrigem Tonerstand gerechnet) einfach vom Drucker eine EMail
schicken. Funktioniert auch sehr gut.

Ralf
Eine GABELN heißt im Fido nàmlich "Echo", weil da reingegatete Artikel
öfters mit anderer Message-ID wieder rauskommen.
  – Oliver B. Warzecha

Ähnliche fragen