콘텐츠로 이동

일반 시스템 조정


amd-pstate는 Linux 커널의 최신 AMD APU 및 CPU 시리즈에 새로운 CPU 주파수 제어 메커니즘을 도입하는 AMD CPU 성능 스케일링 드라이버입니다. 이 새로운 메커니즘은 기존 ACPI 하드웨어 P-State보다 더 세밀한 주파수 관리를 제공하는 CPPC(Collaborative Processor Performance Control)를 기반으로 합니다.

현재 AMD CPU/APU 플랫폼은 ACPI P-states 드라이버를 사용하여 CPU 주파수와 클럭을 관리하며, 전환은 3개의 P-state에서만 이루어집니다. CPPC는 ACPI P-states 제어를 대체하고, Linux 커널이 성능 힌트를 하드웨어에 직접 전달할 수 있는 유연하고 지연 시간이 낮은 인터페이스를 제공합니다.

아래는 amd-pstate 드라이버의 3가지 동작 모드와 부팅 시 사용할 커널 cmdline 항목입니다.

  • AMD P-State(비자율 모드): amd-pstate=passive
  • AMD P-State Guided(가이드 자율 모드): amd-pstate=guided
  • AMD P-State EPP(자율 모드): amd-pstate=active

옵션을 테스트하기 위해 런타임에서도 동작 모드를 전환할 수 있습니다.

  • 자율 모드: 플랫폼은 최소 성능, 최대 성능, 에너지 성능 선호도에 설정된 값만 고려합니다.

    Terminal window
    echo active | sudo tee /sys/devices/system/cpu/amd_pstate/status
  • 가이드 자율 모드: 플랫폼은 현재 워크로드에 따라, 그리고 OS가 최소/최대 성능 레지스터를 통해 설정한 한도 내에서 동작 성능 수준을 설정합니다.

    Terminal window
    echo guided | sudo tee /sys/devices/system/cpu/amd_pstate/status
  • 비자율 모드: 플랫폼은 Desired Performance Register를 통해 OS에서 원하는 성능 수준을 직접 받습니다.

    Terminal window
    echo passive | sudo tee /sys/devices/system/cpu/amd_pstate/status

더 자세한 정보:

AMD P-State 문서AMD P-State 드라이버 동작 모드AMD P-State 사용자 공간 인터페이스

P-State EPP를 사용하려면 두 가지 CPU 주파수 스케일링 governor인 powersaveperformance를 사용할 수 있습니다. powersave governor를 사용하고 선호도를 설정하는 것을 권장합니다.

  • powersave governor 설정: sudo cpupower frequency-set -g powersave
  • performance governor 설정: sudo cpupower frequency-set -g performance

선호도를 설정하려면 원하는 선호도와 함께 다음 명령을 실행합니다.

Terminal window
echo power | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference

사용 가능한 선호도: performance, power, balance_power, balance_performance

각 선호도에 대한 공식 벤치마크

AMD는 7950X3D 및 7900X3D와 같은 듀얼 CCD 3D CPU에서 캐시 스케줄링을 최적화하는 패치를 게시했습니다. BIOS의 CPPC 옵션에서 “Driver” 옵션을 설정해야 합니다. 이렇게 하면 sysfs를 통해 사용되는 모드를 덮어쓸 수 있습니다.

두 가지 모드가 있습니다.

  1. 주파수
  2. 캐시

cache가 설정되면 드라이버는 먼저 더 큰 캐시를 가진 CCD에 작업을 배치하려고 하며, 이는 주로 게임에서 유리합니다. frequency 옵션은 3D Cache CCD보다 주파수가 더 높은 두 번째 CCD에 작업을 배치하려고 합니다.

Frequency(기본값):

Terminal window
echo frequency | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode

Cache:

Terminal window
echo cache | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode

모드를 변경한 후에는 amd preferred core 통계가 다른 순위를 제공해야 합니다. 다음 명령으로 확인할 수 있습니다.

Terminal window
grep -v /sys/devices/system/cpu/cpu*/cpufreq/amd_pstate_prefcore_ranking

AMD Core Performance Boost, 즉 AMD Turbo Core는 AMD의 동적 주파수 스케일링 기술로, 일부 프로세서에서 프로세서 동작 주파수를 동적으로 조정하고 제어할 수 있게 해주며, 필요할 때 성능을 높이면서 일반적인 동작 중에는 더 낮은 전력 및 발열 특성을 유지할 수 있게 합니다.

CachyOS에서 AMD CPB를 관리하려면 다음 명령을 사용할 수 있습니다.

Terminal window
echo 0 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/boost # Disable boost for all cores
lscpu -ae # This shows that AMD CPB is disabled globally
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ
0 0 0 0 0:0:0:0 yes 3301.0000 400.0000 1212.8250
1 0 0 0 0:0:0:0 yes 3301.0000 400.0000 1394.2180
2 0 0 1 1:1:1:0 yes 3301.0000 400.0000 1204.4600
echo 1 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/boost # Enables boost on cpu0
lscpu -ae
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ
0 0 0 0 0:0:0:0 yes 4564.0000 400.0000 1393.2380
1 0 0 0 0:0:0:0 yes 3301.0000 400.0000 400.0000
2 0 0 1 1:1:1:0 yes 3301.0000 400.0000 2157.8469

CachyOS는 AMD CPB 지원을 활성화하는 커밋을 백포트한 power-profiles-daemon 버전도 제공합니다. powersave 프로필을 사용 중이면 AMD CPB가 비활성화되고, balanced 또는 performance에서는 활성화됩니다.

더 자세한 정보:

firelzrd가 제작했습니다.

README의 간단한 소개:

  • ADIOS(Adaptive Deadline I/O Scheduler)는 Linux 커널용 블록 계층 I/O 스케줄러로, 최신 멀티큐 블록 장치(blk-mq)를 위해 설계되었습니다. 데드라인 스케줄링 원칙과 학습 기반 적응형 지연 시간 제어 메커니즘을 결합하여 I/O 작업의 낮은 지연 시간을 제공하는 것을 목표로 합니다.
    • mq-deadline 및 Kyber I/O 스케줄러의 개념에서 영감을 받고 이를 기반으로 합니다. 핵심 기능은 과거 성능과 요청 특성(작업 유형, 크기)을 바탕으로 I/O 완료 지연 시간을 예측하고, 이 예측을 사용해 요청 데드라인과 배치 동작을 동적으로 조정하는 능력입니다.

요약: ADIOS는 저장 장치의 지연 시간 프로필을 학습하고, 그 정보를 사용해 I/O 요청의 데드라인을 동적으로 설정하는 방식으로 동작합니다. 중요한 시스템 작업(Tier 0)부터 백그라운드 작업(Tier 3)까지 요청을 네 단계로 우선순위화하여 부드러운 사용자 경험을 보장합니다. 반응성을 중시하지만, sysfs 설정을 통해 지연 시간과 처리량의 균형을 맞추도록 세부 조정할 수 있습니다.

실시간 데모는 이 동영상에서 볼 수 있습니다.

이 방법은 현재 세션에 스케줄러를 설정합니다. 변경 사항은 재부팅하면 사라집니다.

Terminal window
sync && echo adios | sudo tee /sys/block/<yourdrive>/queue/scheduler
# Replace <yourdrive> with the actual drive identifier (e.g. sda, sdb, nvme0n1)

FAQ:

  • 반응성이 향상된다면 왜 기본으로 활성화되어 있지 않나요?
    • ADIOS는 아직 활발히 개발되고 있으며 계속 테스트 중입니다. 데스크톱 반응성에는 큰 이점을 제공하지만, 모든 워크로드와 하드웨어 유형의 기본값으로 삼기에는 아직 충분히 안정적이라고 간주되지 않습니다. 일부 엣지 케이스에서는 버그로 인해 시스템 멈춤 같은 문제가 발생할 수 있습니다. 따라서 최신 개선 사항을 테스트하고 활용하려는 사용자를 위한 선택 기능으로 제공됩니다.

NVIDIA Smooth Motion(RTX 40xx 및 50xx 시리즈)

섹션 제목: “NVIDIA Smooth Motion(RTX 40xx 및 50xx 시리즈)”

NVIDIA 문서의 직접 인용:

NVIDIA Smooth Motion은 두 렌더링 프레임 사이에 추가 프레임을 추론하여 더 부드러운 게임플레이를 제공하는 새로운 드라이버 기반 AI 모델입니다. DLSS Frame Generation을 지원하지 않는 게임에서 NVIDIA Smooth Motion은 GeForce RTX 40 시리즈 및 이후 GPU에서 경험을 향상시키는 새로운 옵션입니다.

  • 게임에서 NVIDIA Smooth Motion을 활성화하는 방법:
    • 다음 환경 변수를 추가합니다.
      NVPRESENT_ENABLE_SMOOTH_MOTION=1

FAQ:

  • DLSS Frame Generation 대신 Smooth Motion을 사용하는 이유는 무엇인가요?
    • 게임이 DLSS Frame Generation을 지원하지 않을 때, Smooth Motion은 드라이버 기반 AI 모델 덕분에 대안 역할을 합니다.
  • Smooth Motion 사용에 단점이 있나요?
    • 예. Smooth Motion을 활성화하면 추가 프레임 추론 과정 때문에 약간의 입력 지연이 생길 수 있습니다.
    • 타사 오버레이와 문제를 일으키기 쉽습니다. 이를 피하려면 다음 환경 변수를 포함하세요.
      NVPRESENT_QUEUE_FAMILY=1
  • MangoHud가 증가한 프레임레이트를 보고하지 않는 이유는 무엇인가요?
    • 현재 MangoHud는 Smooth Motion이 생성한 추가 프레임을 계산하지 않으므로, 표시되는 프레임레이트가 오해를 줄 수 있습니다.
      • 모니터에 내장된 FPS 카운터를 사용하면 올바른 프레임레이트를 확인할 수 있습니다.
  • DLSS Frame Generation과 비교했을 때 이미지 품질은 어떤가요?
    • 이미지 품질은 그만큼 좋지 않으며, 특히 빠른 움직임 장면에서 아티팩트가 생길 수 있습니다.
  • 외부 프레임 제한 도구와 호환되나요? 예: MangoHud.
    • 아니요. 게임 내 제한 기능은 정상적으로 동작합니다.
  • Smooth Motion을 DLSS Frame Generation과 함께 사용할 수 있나요?
    • 아니요. 한 번에 하나의 프레임 생성 방식만 활성화할 수 있습니다.

thermald는 Intel 시스템용 열 관리 데몬입니다. 열 센서를 모니터링하고, 펌웨어가 더 강한 스로틀링을 사용해야 하기 전에 CPU 전력 제한 또는 성능 상태 변경 같은 냉각 동작을 적용합니다.

주로 /sys/class/thermal을 통해 Intel 열 제어를 노출하는 Intel 노트북, 컨버터블, 태블릿, 핸드헬드 및 소형 폼팩터 PC에서 유용합니다. 지원되는 시스템은 일반적으로 Intel CPU 온도 센서, Intel P-state, Intel power clamp, RAPL, INT340X 또는 ACPI DPTF/적응형 열 테이블을 사용합니다. AMD CPU는 thermald에서 지원되지 않습니다.

다음 명령으로 설치하고 활성화합니다.

Terminal window
sudo pacman -S thermald
sudo systemctl enable --now thermald.service

정상적으로 시작되었는지 확인합니다.

Terminal window
systemctl status thermald.service
journalctl -u thermald.service -b

더 자세한 정보:

thermald 업스트림 저장소thermald 매뉴얼 페이지

RCU Lazy는 유휴 상태이거나 부하가 낮은 시스템의 전력 사용량을 줄이는 데 도움이 됩니다. 노트북과 핸드헬드 장치에 유용할 수 있습니다. 전력 절감 측면에서 개선 폭은 5~10% 정도입니다. 다만 이 절전 기능은 시나리오에 따라 약간의 성능 저하를 동반할 수 있다는 점에 유의해야 합니다. linux-cachyos-deckify 커널은 이러한 장치에서 절전이 중요하고 필요하기 때문에 이 옵션이 기본으로 활성화됩니다.

RCU Lazy를 활성화하려면 커널 cmdline 매개변수 목록에 다음 매개변수를 추가합니다.

rcutree.enable_rcu_lazy=1

이는 좋은 진전이지만, nvidia-settings를 사용한 오버클럭 지원을 깨뜨리거나 Wayland에서 어려움을 겪는 구형 GPU와 호환성 문제를 일으키는 등의 불편을 만들 수 있습니다.

이 변경을 되돌리려면 cachyos-kde-settings 패키지를 제거합니다.

Terminal window
sudo pacman -R cachyos-kde-settings

NVIDIA GSP 펌웨어는 “일부 경우” 성능 저하를 유발할 수 있습니다. 555.58.02 NVIDIA 드라이버가 이 문제를 대부분 해결했지만, 특정 시스템에서는 계속 나타날 수 있습니다. KDE에서 끊김이 있거나 일부 경우 성능이 좋지 않다면, 다음 설정 파일로 GSP 펌웨어를 비활성화할 수 있습니다. /etc/modprobe.d/nvidia-gsp.conf

options nvidia NVreg_EnableGpuFirmware=0

파일을 만든 후 다음 명령을 실행합니다.

Terminal window
sudo mkinitcpio -P

GSP 펌웨어는 유용한 기능을 도입하는 경우가 많으므로, 새 NVIDIA 드라이버를 설치할 때마다 테스트하는 것을 일반적으로 권장합니다. 또한 NVIDIA는 주로 GSP 펌웨어를 사용하여 QA 테스트를 시작했습니다.

노트북 스피커는 작은 크기와 제한된 하드웨어 성능 때문에 종종 얇고 부족한 소리를 냅니다. EasyEffects는 다양한 오디오 효과와 사용자 지정 구성을 적용하여 노트북 내장 스피커의 음질을 크게 향상시킬 수 있습니다.

시작하려면 EasyEffects와 필요한 의존성을 설치해야 합니다.

Terminal window
# Install EasyEffects
sudo pacman -S easyeffects
# Install additional plugins for more effects
sudo pacman -S lsp-plugins-lv2
sudo pacman -S zam-plugins
sudo pacman -S calf
sudo pacman -S mda.lv2

EasyEffects를 설정하려면 다음 단계를 따르세요.

  1. 애플리케이션 메뉴에서 EasyEffects를 실행하거나 터미널에 easyeffects를 입력합니다.
  2. 스피커 오디오에 적용되는 효과를 관리하려면 Output 탭으로 이동합니다.
  3. 오디오 효과를 추가, 수정 또는 조정하려면 Effects 탭으로 전환합니다.

빠르고 효과적으로 설정하려면 다양한 오디오 시나리오에 맞춰진 커뮤니티 제작 프리셋으로 시작하세요.

  1. EasyEffects Community Presets 저장소에서 프리셋을 다운로드합니다.
  2. EasyEffects에서 Presets 버튼을 클릭하고 **“Import preset from local storage”**를 선택합니다.
  3. 다운로드한 프리셋 파일을 찾아 선택합니다.
  4. 가져오기가 완료되면 프리셋이 목록에 나타납니다. **“Load”**를 클릭하여 오디오 출력에 적용합니다.

더 개인화된 오디오 경험을 위해 노트북 스피커에 맞춘 사용자 지정 프로필을 만듭니다.

  1. Presets 메뉴에서 “+” 버튼을 클릭하여 새 프리셋을 만듭니다(예: 이름을 **“Laptop Speakers”**로 지정).
  2. **“Load”**를 선택하여 새 프리셋을 활성화합니다.
  3. Output > Effects 탭에서 이퀄라이저, 베이스 강화, 스테레오 확장 같은 옵션을 실험하며 효과를 추가하고 설정합니다.
Convolver 효과 사용(Dolby Atmos 노트북)
섹션 제목: “Convolver 효과 사용(Dolby Atmos 노트북)”

Convolver effect는 고품질 오디오 환경을 시뮬레이션하는 임펄스 응답을 적용하여 사운드를 크게 개선할 수 있습니다. 다만 정확한 설정이 필요합니다.

  1. Effects 탭의 효과 체인에 Convolver 효과를 추가합니다.
  2. 사용 가능한 경우 노트북 모델에 맞는 임펄스 응답 파일(.wav 형식)을 로드합니다. 다음과 같은 자료에서 온라인으로 해당 파일을 찾아볼 수 있습니다.
  3. 클리핑 방지: Convolver 효과는 볼륨을 크게 높일 수 있습니다. 피크를 제어하고 왜곡을 피하려면 효과 체인에서 Convolver 뒤에 Limiter 효과를 추가하세요.
  • 실험하기: 여러 프리셋을 시험해 특정 노트북 모델과 개인적인 사운드 취향에 가장 잘 맞는 것을 찾으세요.
  • 점진적으로 조정하기: 왜곡이나 부자연스러운 출력이 생기지 않도록 개별 효과를 조금씩 조정하세요.
  • 토글로 비교하기: 기본 오디오와 비교하여 개선 정도를 평가하려면 EasyEffects를 자주 on/off로 전환하세요.
  • Framework Laptop 13 또는 ThinkPad T14 같은 인기 노트북 모델에 맞는 장치별 프리셋 또는 Convolver 임펄스 응답을 찾아 맞춤형 결과를 얻으세요.
  • 시작 자동화: 사용자 지정 프로필이 항상 적용되도록 앱 환경설정에서 EasyEffects가 시작 시 자동 실행되도록 설정하세요.
  • 여러 장치에 프리셋 자동 로드: 원활한 전환을 위해 PipeWire > Presets Autoloading 탭을 사용해 특정 프리셋을 서로 다른 출력 장치(예: 스피커와 헤드폰)에 연결하세요.

대안으로 PipeWire 및 PulseAudio 클라이언트용 오디오 효과 프로세서인 JDSP4Linux를 사용해 볼 수 있습니다.

저장소에서는 표준 obs-studio 패키지보다 권장되는 사용자 지정 obs-studio-browser 패키지를 제공합니다. 이 패키지는 cuda-errors 및 가상 카메라 문제와 같은 일반적인 문제를 수정하는 패치를 포함합니다.

Open a terminal and run the following command
sudo pacman -S obs-studio-browser
# If you previously had the obs-studio installed then pacman is going to ask you if
# you want to replace it, if so enter "Y".

기본적으로 CachyOS는 스왑 관리를 위해 ZRam을 사용합니다. 하지만 Zswap을 선호한다면 다음 단계에 따라 쉽게 전환할 수 있습니다.

  1. 커널 매개변수를 추가하여 ZRam을 비활성화합니다. 부트로더 설정 편집을 열고 다음 줄을 추가합니다.
    systemd.zram=0
  2. 다음 커널 매개변수를 추가하여 Zswap을 활성화합니다.
    zswap.enabled=1 zswap.shrinker_enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=30
  3. Zswap을 비활성화하는 CachyOS의 udev rule을 비활성화하려면 빈 override 파일을 만듭니다.
    Terminal window
    sudo touch /etc/udev/rules.d/30-zram.rules
  4. Zswap용 스왑 파일을 만듭니다.
    Btrfs를 사용하는 경우:
    1. 스왑 파일용 Btrfs 서브볼륨을 만듭니다.
      Terminal window
      sudo btrfs subvolume create /swap
    2. --size 매개변수를 변경하여 원하는 크기(예: 8GB)의 스왑 파일을 만듭니다.
      Terminal window
      sudo btrfs filesystem mkswapfile --size 4g --uuid clear /swap/swapfile
    3. 스왑 파일을 활성화합니다.
      Terminal window
      sudo swapon /swap/swapfile
    4. 재부팅 후에도 유지되도록 스왑 파일을 /etc/fstab에 추가합니다.
      Terminal window
      echo "/swap/swapfile none swap defaults 0 0" | sudo tee -a /etc/fstab
    Btrfs를 사용하지 않는 경우:
    1. count= 매개변수를 변경하여 원하는 크기(예: 8GB)의 스왑 파일을 만듭니다.
      Terminal window
      sudo dd if=/dev/zero of=/swapfile bs=1G count=8
    2. 스왑 파일에 올바른 권한을 설정합니다.
      Terminal window
      sudo chmod 0600 /swapfile
    3. 스왑 파일을 포맷합니다.
      Terminal window
      sudo mkswap /swapfile
    4. 재부팅 후에도 유지되도록 스왑 파일을 /etc/fstab에 추가합니다.
      Terminal window
      echo "/swapfile none swap defaults 0 0" | sudo tee -a /etc/fstab
    5. 스왑 파일을 활성화합니다.
      sudo swapon /swapfile
  5. lz4 압축 모듈을 mkinitcpio.conf 설정 파일에 추가합니다.
    1. 텍스트 편집기로 파일을 엽니다.
      Terminal window
      sudo nano /etc/mkinitcpio.conf
    2. MODULES 배열을 찾아 lz4를 추가합니다. 대략 다음과 같은 형태가 됩니다.
      MODULES=(... lz4)
    3. Ctrl + OEnter를 눌러 파일을 저장한 뒤, Ctrl + X로 편집기를 종료합니다.
  6. 변경 사항을 적용하려면 initramfs를 다시 빌드합니다. 명령은 부트로더에 따라 다릅니다.
    systemd-boot
    Terminal window
    sudo sdboot-manage gen
    GRUB
    Terminal window
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    Limine
    Terminal window
    sudo limine-mkinitcpio
  7. 모든 변경 사항을 적용하려면 시스템을 재부팅합니다.