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