저는 Ubuntu 20.04를 사용하고 있으며 일부 CFD 코드의 성능 최적화 작업을 진행 중입니다. 일부 수정이 유익한지 여부에 대한 빠른 피드백을 위해 코드 타이밍을 정할 때 백그라운드 프로세스가 시작되기 때문에 실행 간 차이가 꽤 큰 경우가 많습니다.
코드는 사용 가능한 모든 스레드를 사용하기 때문에 하나의 스레드가 백그라운드 작업으로 인해 부담을 느끼면 다른 모든 스레드가 대기하게 됩니다.
이제 제 질문은 백그라운드/필수적이지 않은 작업을 일시적으로 중단하여 시스템을 일종의 벤치마크 모드에 두는 빠르고 쉬운 방법이 있는지 여부입니다. Bash 스크립트, 패키지, 내장 옵션 모두 환영합니다.
답변1
방법 중 하나는 시스템을 다중 사용자 대상으로 전환하는 것입니다(즉, 그래픽 세션이 없음을 의미). 실행 중인 프로세스를 약 50개로 줄입니다.
sudo systemctl isolate multi-user.target
또는 단일 사용자로 전환할 수도 있습니다(약 10개의 프로세스가 실행됩니다).
sudo systemctl isolate runlevel1.target
# Enter
su -l your-user-name
그런 다음 이 런레벨에서 애플리케이션을 실행하세요.
벤치마크가 완료되면 다음을 통해 그래픽 세션으로 다시 전환합니다.
sudo systemctl isolate graphical.target