내용으로 건너뛰기

Amazon EC2 Linux 인스턴스에서 HugePages를 구성하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에서 HugePages를 구성하고 싶습니다.

해결 방법

참고: HugePages를 프로덕션에 배포하기 전에 테스트 환경에서 HugePages를 구성하고 성능을 벤치마킹하는 것이 가장 좋습니다. x86_64 시스템에서 HugePage 크기는 2MB 또는 1GB에 불과할 수 있습니다. HugePages에 대한 자세한 내용은 Oracle 웹 사이트의 Configuring HugePages on Linux를 참조하십시오.

사전 요구 사항: 애플리케이션 또는 데이터베이스가 HugePages를 지원하는지 확인하려면 벤더에 문의하십시오. 또한 사용 가능한 메모리의 양을 확인하려면 다음 명령을 실행하여 EC2 인스턴스의 총 메모리를 확인하십시오.

free -m

Linux 인스턴스에서 HugePages를 구성하려면 다음 단계를 완료하십시오.

  1. 다음 명령을 실행하여 커널에 HugePages가 활성화되어 있지 않은지 확인합니다.

    sudo cat /proc/sys/vm/nr_hugepages

    명령 출력이 0이면 HugePages가 활성화되어 있지 않은 것입니다.

  2. 필요한 HugePages 수를 계산하려면 다음 공식을 사용하십시오.
    HugePages 수 = 필요한 메모리/HugePages 크기
    참고: 충분한 페이지를 만들 수 있도록 결과를 모으십시오.

  3. 다음 명령을 실행하여 HugePages를 활성화하고 커널 파라미터 값을 설정합니다.

    sudo sysctl -w vm.nr_hugepages=2048

    참고: 2048을 본인이 계산한 HugePages 수로 바꾸십시오.
    출력 예시:

    vm.nr_hugepages = 2048
  4. 재부팅 후 시스템이 HugePages를 할당하는지 확인하려면 /etc/sysctl.conf 파일에 다음 항목을 추가합니다.

    sudo echo "vm.nr_hugepages=2048" >> /etc/sysctl.conf

    참고: 2048을 본인이 계산한 HugePages 수로 바꾸십시오.

  5. 변경 사항을 확인하려면 다음 명령을 실행합니다.

    sudo cat /etc/sysctl.conf

    명령 출력에 vm.nr_hugepages 값이 있는지 확인합니다.
    출력 예시:

    # sudo cat /etc/sysctl.conf
    # sysctl settings are defined through files in
    # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
    #
    # Vendors settings live in /usr/lib/sysctl.d/.
    # To override a whole file, create a new file with the same in
    # /etc/sysctl.d/ and put new settings there. To override
    # only specific settings, add a file with a lexically later
    # name in /etc/sysctl.d/ and put new settings there.
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    vm.zone_reclaim_mode=1
    vm.nr_hugepages=2048
  6. 인스턴스를 재부팅합니다.

  7. 다음 명령을 다시 실행하여 HugePages 값 및 구성을 확인합니다.

    sudo cat /proc/sys/vm/nr_hugepages

    출력이 본인이 계산한 HugePages 수라면 HugePages가 활성화됩니다.
    출력 예시:

    # sudo cat /proc/sys/vm/nr_hugepages
    2048
  8. /proc/meminfo에서 사용 가능한 HugePages를 확인하려면 다음 명령을 실행하십시오.

    sudo grep Huge /proc/meminfo

    출력 예시:

    # sudo grep Huge /proc/meminfo
    HugePages_Total:    2048
    HugePages_Free:     2048
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB

    각 HugePages 값의 정의는 kernel.org의 HugePages를 참조하십시오.

HugePages를 비활성화하려면 다음 단계를 완료하십시오.

  1. 다음 명령을 실행하여 nr_hugepages0으로 재설정합니다.

    sudo sysctl -w vm.nr_hugepages=0
  2. sysctl.conf에서 다음 항목을 제거합니다.

    sudo echo "vm.nr_hugepages=2048" >> /etc/sysctl.conf
  3. 인스턴스를 재부팅합니다.

AWS 공식업데이트됨 6달 전