원문 보기: https://dawoum.duckdns.org/wiki/Dynamic_frequency_scaling/Cpu_governor
현재 컴퓨터 CPU는, 상황에 따라 CPU 가버너를 변경함으로써, 평소 때에는 전력을 적게 먹도록, 게임 실행 시에는 최고의 성능을 내도록, 또는 부하에 따라 클럭을 변경하도록 설정될 수 있습니다.
이런 역할을 하는 것이 CPU 가버너이며, 이는 performance, powersave, userspace, ondemand, conservative, schedutil, 등이 있습니다.
가버너는 커널 컴파일 중에 기본값을 선택할 수 있고, 나머지를 활성화해 둘 수 있습니다.
그러나, 커널 버전과 CPU에 따라 사용할 수 있는 가버너의 종류는 다르기 때문에, 부팅 후에 도구를 사용해서 확인해야 합니다:
- sudo cpupower frequency-info
- available cpufreq governors: performance powersave
출력의 결과 중에서 2개의 가버너를 선택할 수 있음을 알 수 있습니다.
한편, 커널 컴파일 중에 기본 가버너를 선택할 수 있으며, 생각처럼 잘 작동하지는 않습니다.
예를 들어, schedutil 또는 powersave를 기본 가버너로 선택하더라도, 부팅 후에는 performance 가버너가 선택되어 있습니다. (어디서 이 값으로 바꾸는지 확인하지 못했고, 이전 기억으로는 현재 cpu인지 아닌지 모르겠지만 ondemand로 동작하고 있었습니다).
어쨌든, 게임 실행 시, performance 가버너로 변경했다가 게임 종료 후에는 powersave 가버너로 변경되기를 희망합니다.
이를 위해, Change CPU governor automatically에서 소개한 changegovernor라는 도구를 사용할 수 있지만, 프로그램 자체가 꽤 많은 시스템 자원을 차지합니다.
다른 대안이 필요해 보입니다.
Cpupower
이전에 가버너를 바꿀 수 있는 도구로써, cpufrequtils가 사용되었습니다. 이는 최근 커널에서 cpupower라는 도구로 대체되었습니다.
데비안 저장소에서 설치할 수 있습니다:
- sudo nala install linux-cpupower
위에서 찾은 정보로부터, 다음과 같이 가버너를 바꿀 수 있습니다:
- sudo cpupower frequency-set -g powersave
만약 부팅 시에 특정 가버너를 선택하고 싶다면, 약간의 추가 작업이 필요합니다. 이를 위해 아치 리눅스의 패키지를 참조할 필요가 있습니다:
데비안에서 제공하지 않는 cpupower.default, cpupower.service, cpupower.systemd 파일을 받습니다:
- sudo mv cpupower.default /etc/default/cpupower
- sudo mv cpupower.service /etc/systemd/system/
- sudo mkdir -p /etc/systemd/system/cpupower.d
- sudo mv cpupower.systemd /etc/systemd/system/cpupower.d/cpupower
- sudo vi /etc/systemd/system/cpupower.service
여기서 아래와 같이 바꿉니다:
- ExecStart=/etc/systemd/system/cpupower.d/cpupower
그리고, 서비스 시작에서 사용할 가버너를 선택합니다:
- sudo vi /etc/default/cpupower
- governor='powersave'
서비스를 시작하고, 가버너의 변경을 확인해 봅니다:
- sudo systemctl daemon-reload
- sudo systemctl start cpupower
- cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
- powersave가 코어 개수만큼 출력되어야 합니다.
부팅 시에 적용되도록 서비스를 활성화합니다:
- sudo systemctl enable cpupower
Running game
매번 수동으로 이 작업을 하는 것이 귀찮습니다.
원래 희망했던, 그냥 게임을 클릭하면 가버너가 performance로 변경되었다가 게임 종료 후에 powersave로 변경되도록 하려면, GtkStressTesting (software)#sudo gst를 참고할 필요가 있습니다. 혼자 사용하는 컴퓨터에서만 사용하십시오!
암호를 입력하지 않도록 변경한 후에, .desktop 파일에서 실행할 명령을 연속으로 적음으로써 완성됩니다:
- Exec=sh -c "sudo cpupower frequency-set -g performance; /usr/games/doomsday; sudo cpupower frequency-set -g powersave"
필요에 따라, performance, powersave 가버너로 변경하는 .desktop 파일을 만들어도 좋겠습니다.
- cd ~/.local/share/applications
- vi powersave.desktop
[Desktop Entry]
Name=Powersave Governor
Comment=Change to powersave cpu governor
Exec=sudo cpupower frequency-set -g powersave
Icon=kcmprocessor
Terminal=false
Type=Application
StartupNotify=false