Limit cpu na serwer

Zombie
vps, minecraft, zarządzanie
krzukosz
krzukosz

Witam, posiadam taką komendę startową su - '.$_GET['id'].' -s /bin/bash -c "screen -AmdS '.$_GET['id'].' java ' -Xmx'.$_GET['ram'].'M -Xms512M -jar server.jar"

Chciałbym tutaj zlimitować procesor. I dodatkowo mam pytanie do czego są te parametry startowe -XX:+UseG1GC -XX:MaxGCPauseMillis=5

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Sama Java nie oferuje nic takiego jak ograniczenie CPU, najlepiej to robić poprzez wirtualizacje.

http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html

Timo
Timo Moderator forum.lvlup.pro

Przez screena, ani javę, nie możesz limitować procesora. Jeśli nie chcesz się bawić w stawianie mniejszych VPSów, polecam Ci dockera - on podobno umie takie rzeczy. Poczytaj poradniki.

krzukosz
krzukosz

Nie chcę się bawić w stawanie vpsów. Tylko w ograniczenie procesora na serwer minecraft. Dałem tam komendę startową

LinGruby
LinGruby Pionier

To ja powiem tak wszystko zależy od kernela zbudowanego pod daną maszynę ( tzw. kernel szyty na miarę ) i od odpowiednich patch'y na niego nałożonych, a wtedy CPU może pracować na 100% i wszystko działa płynnie tak jak u mnie od prawie 2 miesięcy, no ale to już wyższa szkoła jazdy ;-)

a co do ograniczeń jakichkolwiek to nie jestem zwolennikiem, sprzęt powinien działać płynnie nawet przy wspomnianych już 100% CPU non stop :-)

krzukosz
krzukosz

Pokaż mi hosting który nie ogranicza procesora?

Nie chce żeby ktoś mi zapchał cały procek.

LinGruby
LinGruby Pionier

krzukosz:

Nie chce żeby ktoś mi zapchał cały procek.

a co masz na myśli?, CPU to nie to co RAM jak ram się skończy wszystko łapie zadyszkę, CPU może na 100% pracować i nic się nie stanie jak pisałem ja mam tak na lapku jak i na KVM i jakoś wszystko płynnie działa a na serwie APRSC mam średnio ponad 100-e użytkowników z całego świata ;-)

krzukosz
krzukosz

Ale po co ludzie wszystko utrudniają. Ja zapytałem o limitowanie procesora np programem cpulimit na linuxa a wszyscy mówią że to nie potrzebne.

Timo
Timo Moderator forum.lvlup.pro

Dokładnie, przejdźmy do sedna. Na początku podałem propozycję z Dockerem - nim można podobno CPU limitować.

krzukosz
krzukosz

za dużo z tym zabawy. Wolał bym cpu limitem

happi
happi

krzukosz:

Wolał bym cpu limitem

No to go użyj, w czym problem?

krzukosz
krzukosz

Próbowałem użyć komendy

screen -AmdS s2 cpulimit -l 1 -- java -XX:+UseG1GC -XX:MaxGCPauseMillis=5 -Xmx1024M -Xms512M -jar server.jar

Komenda nie działa serwer się nie odpala jak usunę screena to idzie

tirex
tirex

Stwórz screena ręcznie i później spróbuj wstawić komendę ręcznie i powinnien jakiś error wyskoczyć. Jak screen się od razu zamyka to spróbuj dać output screena do pliku.

luxDev
luxDev Pionier

Są to parametry odpowiedzialne za GarbageCollector który jest używany przez samą Jave do "czyszczenia ramu".

krzukosz
krzukosz

Okej, wiesz jak optymalnie to ustawić?

@tirex już tak próbowałem lecz i tak nie działa. CPUlimit otwiera się w swoim screenie. Jest może jeszcze jakiś program który może ograniczać procesor?

LinGruby
LinGruby Pionier

@krzukosz może coś pomoże ;-)

zrób skrypt o zawartości ( o ile składnia jest poprawna i działa bo nie wnikałem w nią )

 #!/bin/sh
 # Skrypt startowy

 s2 cpulimit -l 1 -- java -XX:+UseG1GC -XX:MaxGCPauseMillis=5 -Xmx1024M -Xms512M -jar server.jar

nazwij go np: cpulimit.sh dodaj do /usr/local/bin

i potem startujesz

screen -AmdS sh "cpulimit.sh"  

powinno działać u mnie podobne skrypty działają ;-)

krzukosz
krzukosz

Jak próbuję uruchomić z screenem to nie uruchamia. Bez screna działa. :( ma ktoś jakiś pomysł jeszcze?

kamcio96
kamcio96

Zainstaluj https://pterodactyl.io/ Limit ramu, cpu, dysku i wszystko inne ;)