유휴 상태에서도 CPU를 100% 사용하는 버그가 있는 프로그램이 있습니다. 현재로서는 이를 수정하는 것이 실용적이지 않기 때문에 CPU를 10% 이하로 사용할 수 있도록 제한하고 싶습니다. 하지만 제가 무엇을 하든 그 프로세스는 항상 하나의 CPU를 100% 차지합니다.
나는에 대해 알아냈다아치스 위키다음 내용으로 파일을 생성하라고 알려주세요:
# cpulimit.slice
[Slice]
CPUQuota=10%
분명히 다음과 같은 제한 사항을 사용하여 쉘을 시작할 수 있습니다.
systemd-run --slice=cpulimit.slice --uid=myuser --shell
이것이 작동하는 것 같습니다. sudo 비밀번호를 입력한 후 쉘이 생성되어 100% CPU를 사용하는 간단한 테스트를 실행하고 Ctrl+C 사용을 중지할 수 있습니다.
while true; do true; done
슬라이스 내에서 실행되기 때문에 CPU를 10% 이하로 사용할 것으로 예상했지만 항상 CPU를 100% 사용합니다!
내가 뭘 잘못했나요?
답변1
방금 문제를 발견했습니다. 파일 .slice
을 넣고 먼저 실행 /etc/systemd/system/
해야 합니다 systemctl daemon-reload
. 그러면 모든 것이 잘 작동합니다.
안타깝게도 잘못된 인수를 사용하는 경우 이 systemd-run
명령은 오류 메시지를 표시하지 않으며 --slice
, 사용자가 제공하는 이름으로 추가 제한 없이 새 슬라이스를 생성할 뿐입니다.