Drosseln Sie die CPU-Auslastung des Prozesses

Drosseln Sie die CPU-Auslastung des Prozesses

Wir betreiben ein Spieleserver-Unternehmen, bei dem sich viele Kunden eine einzige Maschine teilen und nur ihre eigene Instanz eines Java-Prozesses (Minecraft) verwenden, der von unseren Web Control Panels verwaltet wird. In den letzten veröffentlichten Spiele-Updates haben wir festgestellt, dass viele der von unseren Kunden verwendeten Plug-ins von Drittanbietern schlecht geschrieben sind und wir häufig enorme CPU-Auslastungen auf bestimmten Servern feststellen, bis wir den Prozess manuell beenden.

Unser Game Panel startet Prozesse automatisch neu, daher ist das Beenden dieser Prozesse kein wirkliches Problem. Unser Problem ist, dass, sobald einer dieser Server anfängt, 50 % oder mehr der CPU-Auslastung zu verbrauchen, es mindestens 5 Minuten dauert, um per RDP auf die Maschine zuzugreifen, herauszufinden, wem sie gehört, sie herunterzufahren und sie zu benachrichtigen.

Gibt es aktuelle Lösungen für Server 2008, die eine Drosselung der CPU-Auslastung ermöglichen oder im schlimmsten Fall einen Prozess automatisch beenden, der so viel verbraucht? Da Minecraft im Wesentlichen eine Single-Thread-Anwendung ist, haben wir die Verwendung von Affinity untersucht, obwohl dies aufgrund der Variationen in unseren Paketen und Schwankungen in der Nutzung für uns nicht gut funktioniert. Eine Option zur Drosselung der maximalen Nutzung, die ein Prozess nutzen kann, wäre perfekt, oder zumindest die Option, einen Prozess mit so viel Verbrauch zu beenden.

Danke!

Antwort1

Es sieht so aus, als ob Sie etwas wie das hier Beschriebene möchten:

http://technet.microsoft.com/en-us/library/ff384148%28v=ws.10%29.aspx

Dies ist ein benutzerspezifisches Quotensystem für Prozesse (technisch gesehen pro SID) und sollte Ihren Anforderungen entsprechen. Wenn Sie 10 Minecraft-Prozesse haben und jeden auf 9 % begrenzen, sollten Ihnen 10 % CPU für RDP und dergleichen zur Verfügung stehen.

Wenn Sie an andere Ressourcengrenzen stoßen, sollten Sie diese möglicherweise separat begrenzen.

Antwort2

Ich würde empfehlen, die Priorität für jede Instanz einfach zu senken. Auf diese Weise hat Ihr Fernzugriff eine höhere Priorität als die außer Kontrolle geratenen Aufgaben. Möglicherweise möchten Sie sich auch ein einfacheres Verwaltungsschema wie PowerShell Remote ansehen.

verwandte Informationen