Drosseln Sie die CPU-Auslastung, die vom Prozess verbraucht wird

6671
Aidan Knight

Wir betreiben ein Game-Server-Unternehmen, bei dem wir im Wesentlichen eine große Anzahl von Kunden haben, die sich auf einem einzigen Rechner befinden, und sich nur auf einer eigenen Instanz eines Java-Prozesses (Minecraft) befinden, der von unseren Web Control Panels verwaltet wird. Bei den letzten veröffentlichten Spielupdates haben wir festgestellt, dass viele der Plugins von Drittanbietern, die von unseren Kunden verwendet werden, schlecht geschrieben wurden, und wir sehen häufig starke CPU-Steigerungen auf bestimmten Servern, bis wir den Prozess manuell beenden.

Unser Game Panel startet die Prozesse automatisch neu, sodass es nicht wirklich ein Problem ist, sie zu beenden. Unser Problem ist, dass sobald diese Server 50% + CPU-Auslastung verbrauchen, es mindestens 5 Minuten dauert, bis der RDP-Vorgang in der Maschine abgeschlossen ist, der Benutzer herausfindet, zu dem er gehört, heruntergefahren und benachrichtigt wird.

Gibt es aktuelle Lösungen für Server 2008, die die Drosselung der CPU-Nutzung oder den schlimmsten Fall zulassen, einfach einen Prozess stoppen, der so viel benötigt? Da Minecraft im Wesentlichen eine Single-Threaded-Anwendung ist, haben wir die Verwendung von Affinity untersucht, obwohl dies bei den Variationen in unseren Paketen und den Schwankungen in der Verwendung für uns nicht gut funktioniert. Eine Option, um die maximale Auslastung eines Prozesses zu drosseln, wäre perfekt, oder zumindest die Option, einen Prozess mit so viel Aufwand zu beenden.

Vielen Dank!

0

2 Antworten auf die Frage

1
Slartibartfast

Es sieht so aus, als wollten Sie so etwas wie hier beschrieben:

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

Dies ist ein Quotensystem pro Benutzer für Prozesse (pro SID technisch) und sollte das tun, was Sie benötigen. Wenn Sie über 10 Minecraft-Prozesse verfügen und diese jeweils auf 9% begrenzen, sollten Sie 10% CPU für RDP und Ähnliches zur Verfügung haben.

Wenn Sie andere Ressourcenlimits erreichen, möchten Sie möglicherweise die Beschränkung dieser Ressourcen separat prüfen.

1
David Schwartz

Ich würde empfehlen, die Priorität für jede Instanz zu löschen. Auf diese Weise hat Ihr Remote-Zugriff eine höhere Priorität als die durchgehenden Aufgaben. Möglicherweise möchten Sie auch ein einfacheres Verwaltungsschema wie die PowerShell-Fernbedienung untersuchen.