Verwaltung gemeinsam genutzter Serverressourcen

Verwaltung gemeinsam genutzter Serverressourcen

Wir haben einen lokalen Xeon-Server mit Ubuntu LTS, der von einigen Entwicklern gemeinsam genutzt wird. Jeder Entwickler meldet sich mit seinem eigenen Benutzer an und führt verschiedene Workloads darauf aus. Das Problem, das wir haben, ist, dass die anderen Benutzer manchmal nicht an der Maschine arbeiten können, wenn eine CPU- oder speicherintensive Workload ausgeführt wird, und die Shell nicht mehr reagiert.

Wir haben versucht, den Benutzer zu bitten, seine CPU-Auslastung beim Erstellen zu begrenzen, und das hat die CPU-Probleme gelöst, aber anscheinend ist die Festplatten-E/A-Auslastung weiterhin ein Problem. Wir verwenden SSD-Speicher.

Die Verwendung einer virtuellen Maschine auf dem Server ist nicht möglich, da wir die Ressourcen nicht stark begrenzen möchten. Wir möchten lediglich sicherstellen, dass anderen Benutzern keine Ressourcenknappheit zuteilwird.

Welche Möglichkeiten haben wir?

Antwort1

Wie flexibel ist die Änderung der Arbeitslasten? Es gibt Dienstprogramme wie Nice, die die Priorität von Prozessen begrenzen und so genau festlegen können, wie viel von einem Slice sie bekommen können.

https://www.geeksforgeeks.org/nice-and-renice-command-in-linux-with-examples/#

Aber wie Sie bereits bemerkt haben, ist diese Lösung nicht perfekt, denn das Problem besteht wahrscheinlich darin, dass nur ein Benutzer online ist und das System nicht in vollem Umfang nutzen kann. Und das ist möglicherweise nur ein neues Problem.

Disk IO, andere haben gefragt und Lösungen ausgearbeitet, wie die Antwort hierhttps://unix.stackexchange.com/questions/536007/cgroups-throttle-per-user-disk-io-bandwidth-on-linux

Ich fürchte, dass es wahrscheinlich keine perfekte Lösung geben wird. Aus diesem Grund sind Dinge wie die Virtualisierung so beliebt geworden, um gemeinsam genutzte Ressourcen effizienter zu nutzen.

Wie bei allen Linux-Anwendungen gibt es wahrscheinlich noch mehr Workarounds (und vielleicht sogar Systeme, die diese nutzen sollen).

Um dies richtig zu machen, wäre meiner Meinung nach wahrscheinlich eine Planung auf Kernelebene oder eine Schnittstelle erforderlich, um bereits vorhandene Planungsoptionen zu verwenden. Mir ist keine bekannt. ...Aber ich habe mich schon einmal geirrt, also werde ich auch lernen, wenn jemand anders eine Lösung vorschlägt! Die Antwort könnte also sein, dass es keine Antwort gibt, ohne Zugeständnisse zu akzeptieren.

verwandte Informationen