17.6.5. 커널 동일한 페이지 병합 관리

KSM(커널 동일 페이지 병합)은 가상 머신(VM) 간에 동일한 메모리 페이지를 공유하여 메모리 밀도를 향상시킵니다. 그러나 KSM을 활성화하면 CPU 사용률이 증가하며 워크로드에 따라 전체 성능에 부정적인 영향을 미칠 수 있습니다.

요구 사항에 따라 단일 세션 또는 영구적으로 KSM을 활성화하거나 비활성화할 수 있습니다.

참고

RHEL 9 이상에서는 KSM이 기본적으로 비활성화되어 있습니다.

사전 요구 사항

  • 호스트 시스템에 대한 루트 액세스.

절차

  • KSM을 비활성화합니다.

    • 단일 세션의 KSM을 비활성화하려면 systemctl 유틸리티를 사용하여 ksmksmtuned 서비스를 중지합니다.

      # systemctl stop ksm
      
      # systemctl stop ksmtuned
    • KSM을 영구적으로 비활성화하려면 systemctl 유틸리티를 사용하여 ksmksmtuned 서비스를 비활성화합니다.

      # systemctl disable ksm
      Removed /etc/systemd/system/multi-user.target.wants/ksm.service.
      # systemctl disable ksmtuned
      Removed /etc/systemd/system/multi-user.target.wants/ksmtuned.service.
참고

KSM을 비활성화하기 전에 VM 간에 공유되는 메모리 페이지가 공유됩니다. 공유를 중지하려면 다음 명령을 사용하여 시스템의 PageKSM 페이지를 모두 삭제합니다.

# echo 2 > /sys/kernel/mm/ksm/run

익명 페이지가 KSM 페이지를 교체하면 khugepaged 커널 서비스에서 VM의 물리적 메모리에서 투명한 hugepages를 다시 빌드합니다.

  • KSM을 활성화합니다.
주의

KSM을 활성화하면 CPU 사용률이 증가하고 전체 CPU 성능에 영향을 미칩니다.

  1. ksmtuned 서비스를 설치합니다.

    # yum install ksmtuned
  2. 서비스를 시작합니다.

    • 단일 세션으로 KSM을 활성화하려면 systemctl 유틸리티를 사용하여 ksmksmtuned 서비스를 시작합니다.

      # systemctl start ksm
      # systemctl start ksmtuned
    • KSM을 영구적으로 활성화하려면 systemctl 유틸리티를 사용하여 ksmksmtuned 서비스를 활성화합니다.

      # systemctl enable ksm
      Created symlink /etc/systemd/system/multi-user.target.wants/ksm.service → /usr/lib/systemd/system/ksm.service
      
      # systemctl enable ksmtuned
      Created symlink /etc/systemd/system/multi-user.target.wants/ksmtuned.service → /usr/lib/systemd/system/ksmtuned.service