Merkwürdiges Clientverhalten im Zusammenspiel mit cups (Mauszeiger verschwunden, System hängt)

Hallo zusammen!

Ich betreue seit September eine Linux-Lösung an einer größeren Schule in Berlin. In unregelmäßigen Abständen haben wir das Problem, dass unsere Linux-Clients (Ubuntu 16.04) nach der Anmeldung mit verschiedenen Problemen hängen (Mauszeiger wird nicht angezeigt, LibreOffice Impress braucht lange zum Starten einer Präsentation oder hängt vollständig, etc.).

Über die Überwachungskonsole Nagios konnten wir häufig zeitgleich Probleme mit dem cups-Dienst identifizieren. Ein Neustart des cups-Dienstes auf dem Server hat dann für eine Weile Abhilfe geschaffen, manchmal musste der Dienst dann aber mehrmals in der Woche neu gestartet werden - eine unbefriedigende Situation.

Im März sind wir dann dazu gekommen, zum Ausfallzeitpunkt die Logdateien zu sichern und auszuwerten. Dabei finden sich in diesem Zeitraum bis zum Neustart die folgenden Fehlermeldungen mehrmals hintereinander:

W [12/Mar/2018:08:25:41 +0100] Max clients reached, holding new connections...
I [12/Mar/2018:08:25:41 +0100] Resuming new connection processing...

Wir haben daraufhin in den Parametern die maximale Anzahl der Clients (ursprünglich nicht gesetzt) auf 500 erhöht und einige Wochen Ruhe gehabt. Nachdem das Problem wieder auftrat, haben wir den Parameter auf den Maximalwert gesetzt. Aber theoretisch könnte es ja wahrscheinlich auch mit der aktuellen Konfiguration wieder zu so einem Problem kommen.

Hier meine Fragen, die sich aus diesem Zustand ergeben:

  • Kann mir jemand erklären, wie ein Fehler im Druckdienst auf dem Server solche Auswirkungen auf den Clients haben kann?
  • Weiß jemand, wie es ca. 200 Clients, die vermutlich in unserer Schule regelmäßig genutzt werden, 500 Cups-Client-Verbindungen belegen können?
  • Gibt es neben der Erhöhung der Anzahl der Clients noch andere Maßnahmen, mit denen wir die Erreichung der Grenze der maximalen Clients verhindern können? Kann man irgendwo die aktuelle Anzahl an registrierten cups-Clients herauslesen?
  • Kann man die Linux-Clients so konfigurieren, dass sie weniger vom cups-Dienst des Linuxmuster-Server abhängig sind?

Vielen Dank für Eure Hilfe hier!

Liebe Grüße aus Berlin!
Roland

Hallo Roland,

verwendet ihr die Pykota und das zugehörige Clientprogramm auf den Clients?

Ich verstehe nämlich zumnächst mal überhaupt nicht, was die Clienst zum Anmeldezeitpunkt überhaupt mit Cups wollen.

VG

Frank

Hallo Roland,

erstmal allgemeine GEdanken zum Problem:

in cups ist es wichtig auf dem Server über https://server:631 bei jedem
Drucker in den EInstellungen bei der JOb-policy “Job verwerfen” ein zu
tragen, damit wenn ein Druckjob nicht ausgeführt werden kann, dieser
verworfen wird: sonst klemmt der Drucker und es gibt eine erhöhte
Systemlast.
Ebenso ist es wichtig, dass die Partition auf der /var/spool/cups liegt
nicht zu restricktiv quotiert ist: sonst läuft die bei großen
Druckaufträgen immer voll, was zu einem hängenden cups führt: und
druckaufträge sind in Zeiten wo jedes Handy Gigapixelbilder schießt,
sehr häufig.
Ein 50 MB Libreoffice Dokument kann beim Drucken gerne mal 500MB belegen …

Als nächstes: das Netzwerk.
200 Clients sind für ein flaches Netz zu viel. Allein durch ständige
Broadcasts hat man dann schon eine merkliche Grundlast auf dem Netz: das
sind in erster linie mal DHCP requests.
Da hilft es ein wenig die requesttime hoch zu setzen, damit nicht alle
Clients alle 3 Minuten den DHCP fragen, ob ihre IP den noch die richtige
ist: und das sind Broadcasts und das sind bei 254x254x16 IP Adressen
richtig fette Broadcasts.
Also sollte man das Netz mit einem L3 Switch segmentieren.
Das ist aber nichts, was man mal “eben so” macht.
Ich hab unser Netz segmentiert, als wir bei ca. 140 Rechnern waren: das
hat man schon gemerkt.

Der Uplink an den Server.
Wenn 200 Clients am Server nuckeln, dann ist eine einzelne GB LAN
Verbindung zum Backbone Switch zuwenig.
Ich habe 4 GB LAN Karten als trunc eingerichtet: das ist der UPlink zum
L3 und von dort aus nochmal 4x1GB zum Backbone Switch.
Von dort aus gehen Sternförmig 1 GB LAN Glasfaserverbindungen weiter zu
den verschiedenen Gebäudeswitches.

Ein Messer in den Rücken des Netzwerkes können aber auch folgende Dinge
sein:

  • ein loop. die gibt es auch versteckt, wenn man von einem Switchport
    eines Switches eine Verbindung zu einem anderen Switchport des Switches hat.
    Das kann ein direkt gestecktes Kabel sein (loop), oder in einem Zimmer
    hat ein Schlauberger ein loses Netzwerkkabelende in eine andere Dose
    gesteckt und so zwei Dosen verbunden, oder aber ein Siwtch hat über
    einen anderen Switch einen loop gemacht, weil vom zweiten Switch wieder
    ein Kabel zum ersten zurück kommt (kann auch über weitere Switches laufen).
    Das hatte ich mal in einer Schule.
    Da lagen zwei Kabel in das Nebengebäude und ein Schlauberger meinte,
    zwei seien besser als eines und steckte beide in die Switches an beiden
    Enden: kann man so machen: aber dann muss man das als Trunc definieren,
    sonst ist das ein loop.

Verbindungen zum Server:
auch wir haben festgestellt, dass 16.4 im UNterschied zu allen älteren
Ubuntu Versionen nicht nur eine CIFS Verbindung pro Nutzer zum Server
aufbaut, sondern mehrere. Da gab es aber eine Problembehandlung: die
muss ich erst mal raussuchen (weiß sie noch jemand?).
Das war, meine ich, nicht nur das Hochsetzen des Connection limits auf
dem Server…

Und LibreOffice: der Client wird deutlcih gebremmst, wenn er am samba
hängt und der Probleme hat: es können aber auch Grafikkarten Probleme
sein, die LibreOffice da plagen.
Da kann man in den Einstellungen an der Grafikbeschleunigung von
LibreOffice herumschalten: ich empfehle aber lieber die Flucht nach
Vorne: neueren Kernel auf dem CLient.
Die offenen Grafiktreiber haben in den letzten Jahren deutlich an
Funktionsumfang und Performance zugelegt: das kann man nutzen.
Also mal den aktuellen HWE Enablement Stack installieren und ein Image
erstellen.

Also: leider alles in allem sehr komplexe Dinge: das wird eine Weile
dauern, bis das wieder rund läuft :frowning:

LG

Holger

Hallo Frank,

verwendet ihr die Pykota und das zugehörige Clientprogramm auf den Clients?

Ich verstehe nämlich zumnächst mal überhaupt nicht, was die Clienst zum
Anmeldezeitpunkt überhaupt mit Cups wollen.

per default sucht der cups Dienst auf dem Client nach cups Servern und
fragt fragt dort, ob es Drucker für ihn gibt.
Super Sache, weil man dann auf den Cleints gar keine Drucker
installieren muß: die erscheinen einfach: vor allem praktisch, wenn man
mal neue auf dem Server einrichtet: die erscheinen dann auch einfach auf
dem Client.

LG

Holger

Hai!

Ahja, ich erinnere mich, das deinstalliere ich immer als erstes, das Paket heißt cups-browsed, und man braucht das ja auf den gemanagten Clients aus meiner Sicht nicht, weil die die Drucker ja eh über Mechanismen wie postsync erhalten.

@RolandB Vielleicht hilft es schschionon, das cups-browsed paket auf den Clients zu deinstallieren.

VG

Frank

Vielen Dank für den reichhaltigen Input! Dann hab ich ja einiges zum Ausprobieren für das nächste Linux-Client-Update.

Nochmal zum Netzwerk:

Ich habe über Umstellung der Serveranbindung und des Backbones auf 10G nachgedacht. Leider erscheinen mir die Linuxmuster-Anleitungen zum Thema Netzwerksegmentierung mit Portanpassungen in allen Switches etwas aufwändig und im Ergebnis zu unflexibel. Ich mache doch sicher nichts falsch, wenn ich zunächst eine Segmentierung über die Gebäudeteile mit VLANs durchführe und schaue, wie sich das Netzwerk zusammen mit der breiteres Serveranbindung dann verhält, oder?

Beste Grüße!
Roland

Hallo Roland,

Ich habe über Umstellung der Serveranbindung und des Backbones auf 10G
nachgedacht. Leider erscheinen mir die Linuxmuster-Anleitungen zum Thema
Netzwerksegmentierung mit Portanpassungen in allen Switches etwas
aufwändig und im Ergebnis zu unflexibel. Ich mache doch sicher nichts
falsch, wenn ich zunächst eine Segmentierung über die Gebäudeteile mit
VLANs durchführe und schaue, wie sich das Netzwerk zusammen mit der
breiteres Serveranbindung dann verhält, oder?

Breite Serveranbindung mit einer 10GB Karte und einem 10GB GBIC im
Switch ist die einfachste Möglichkeit der Verbreiterung der Anbindung.
Das hätte ich damals auch gerne gemacht… war aber damals zu teuer.

Zum segmentieren: es hilft natürlich schon, wenn du erstmal nur 3 oder 4
segmente machst (die Gebäude).
Wirklich leichter oder flexibler ist das aber nicht: denn du brauchst
immer, wenn du segmentierst, einen L3 switch der korrekt konfiguriert ist.
Du kannst nicht einfach VLANs für verschiedene Bereiche definieren, ohne
einen L3 Switch für das Routing zu bemühen.
… um die Anleitung kommst du also, wenn du wirklich segmentieren
willst, nicht herum.

LG

Holger