9장. Red Hat OpenStack Platform 환경 튜닝
9.1. 에뮬레이터 스레드 고정
에뮬레이터 스레드는 가상 시스템 하드웨어 에뮬레이션에 대한 인터럽트 요청 및 차단되지 않은 프로세스를 처리합니다. 이러한 스레드는 게스트가 처리에 사용하는 CPU 전체에서 유동적으로 사용합니다. 이 게스트 CPU에서 폴링 모드 드라이버(PMD) 또는 실시간 처리에 사용되는 스레드가 실행되는 경우 패킷 손실 또는 누락된 데드라인이 발생할 수 있습니다.
에뮬레이터 스레드를 VM 처리 작업과 분리하여 스레드를 자체 게스트 CPU에 고정하여 성능을 향상시킬 수 있습니다.
9.1.1. 호스트 에뮬레이터 스레드로 CPU 구성
성능을 개선하려면 에뮬레이터 스레드 호스팅을 위해 호스트 CPU의 하위 집합을 예약합니다.
절차
지정된 역할에 대해
NovaComputeCpuSharedSet
을 사용하여 오버클라우드를 배포합니다.NovaComputeCpuSharedSet
값은 해당 역할 내의 호스트의nova.conf
파일의cpu_shared_set
매개 변수에 적용됩니다.parameter_defaults: ComputeOvsDpdkParameters: NovaComputeCpuSharedSet: "0-1,16-17" NovaComputeCpuDedicatedSet: "2-15,18-31"
에뮬레이터 스레드가 공유 풀로 구분된 인스턴스를 빌드하는 플레이버를 생성합니다.
openstack flavor create --ram <size_mb> --disk <size_gb> --vcpus <vcpus> <flavor>
hw:emulator_threads_policy
추가 사양을 추가하고 값을공유
하도록 설정합니다. 이 플레이버로 생성된 인스턴스는 nova.conf 파일의cpu_share_set
매개 변수에 정의된 인스턴스 CPU를 사용합니다.openstack flavor set <flavor> --property hw:emulator_threads_policy=share
이 추가 사양에 대한 공유 정책을 활성화하려면 nova.conf
파일에서 cpu_share_set
매개변수를 설정해야 합니다. 이를 위해 nova.conf
를 수동으로 편집해도 재배포 시 유지되지 않을 수 있으므로 heat를 사용해야 합니다.
9.1.2. 에뮬레이터 스레드 고정 확인
절차
지정된 인스턴스의 호스트 및 이름을 식별합니다.
openstack server show <instance_id>
SSH를 사용하여 식별된 호스트에 heat-admin으로 로그인합니다.
ssh heat-admin@compute-1 [compute-1]$ sudo virsh dumpxml instance-00001 | grep `'emulatorpin cpuset'`