우리는 기본적으로 단일 시스템을 공유하는 많은 수의 고객이 있고 웹 제어판에서 관리하는 Java 프로세스(Minecraft)의 자체 인스턴스에 있는 게임 서버 회사를 운영하고 있습니다. 지난 몇 번의 게임 업데이트에서 우리는 고객이 사용하는 많은 타사 플러그인이 제대로 작성되지 않았으며 수동으로 프로세스를 종료할 때까지 특정 서버에서 엄청난 CPU 증가를 자주 목격한다는 사실을 확인했습니다.
게임 패널은 자동으로 프로세스를 다시 시작하므로 해당 프로세스를 종료하는 것은 실제로 문제가 되지 않습니다. 문제는 이러한 서버 중 하나가 50% 이상의 CPU 사용량을 소비하기 시작하면 RDP가 시스템에 들어가서 누구의 것인지 찾아 종료하고 알리는 데 최소 5분이 걸린다는 것입니다.
CPU 사용량 조절이나 최악의 경우를 허용하는 Server 2008용 현재 솔루션이 있습니까? 그렇게 많이 사용하면 멈춰 있는 프로세스를 자동으로 종료할 수 있습니까? Minecraft는 기본적으로 단일 스레드 응용 프로그램이므로 Affinity를 사용하여 조사했지만 패키지의 변형과 사용량의 변동으로 인해 이 방법이 잘 작동하지 않았습니다. 프로세스가 사용할 수 있는 최대 사용량을 제한하는 일부 옵션은 완벽할 수 있습니다. 또는 적어도 그 정도를 사용하여 프로세스를 종료하는 옵션이 있습니다.
감사해요!
답변1
여기에 설명된 것과 같은 것을 원하는 것 같습니다.
http://technet.microsoft.com/en-us/library/ff384148%28v=ws.10%29.aspx
이는 프로세스(기술적으로 SID별)에 대한 사용자별 할당량 시스템이며 필요한 작업을 수행해야 합니다. 10개의 Minecraft 프로세스가 있고 각각을 9%로 제한하는 경우 RDP 등에 사용할 수 있는 CPU가 10%여야 합니다.
다른 리소스 제한에 도달하는 경우 이를 별도로 제한하는 것이 좋습니다.
답변2
모든 인스턴스에 대해 우선순위를 낮추는 것이 좋습니다. 이렇게 하면 원격 액세스가 런어웨이 작업보다 우선순위가 높아집니다. PowerShell 원격과 같은 보다 가벼운 관리 체계를 살펴볼 수도 있습니다.