Mam proces aplikacji, która musi zostać uruchomiona, ale w końcu używa zbyt dużo użycia IO do tego, co robi. I naprawdę powoduje awarię mojego komputera, uniemożliwiając wykonywanie innych czynności podczas jego działania.
Zastanawiałem się więc, czy istnieje sposób na ograniczenie wykorzystania IO, pamięci RAM i procesora dla danego procesu? I oczywiście jego podprocesy.
To jest na moim systemie Ubuntu 18.04 LTS.
ionice
,renice
i być możeulimit -s
polecenia - i to wszystko.cgroups-io
więc nie mam pojęcia :)Odpowiedzi:
Należy użyć kombinacji wszystko
cgexec
,cpulimit
iionice
:Ogranicz pamięć RAM i SWAP:
Powyższe polecenia tworzą grupę kontrolną o nazwie
szMyGroup
(np. W twoim przypadkugroup-great-uncle
), ustaw limit procesów przebiegającychszMyGroup
do 512 MB pamięci fizycznej i do 1024 MB wymiany, a następnie:który uruchomi Twój program w
szMyGroup
grupie kontrolnej, zapewniając w ten sposób przestrzeganie limitówogranicz IO dysku:
Powyższe polecenie używa
pgrep
z ponownym użyciem części bieżącego wiersza polecenia w celu ograniczenia dostępu do dysku, aby korzystać z dysku tylko wtedy, gdy nie używa go żaden inny programOgranicz procesor:
Procesor programu jest teraz ograniczony do 25% maksimum
Jeśli program nie używa dużo procesora na początek, obniż wartość cpulimit do połowy lub mniej tego, co obecnie używa.
źródło