게시물 1,375건
   
vcpu(Thread) dedicated 할당 - 테스트 구자료업
글쓴이 : 최고관리자 날짜 : 2020-03-02 (월) 14:56 조회 : 1106
글주소 :
                                


1. vcpu dedicated / share
   CPU 리소스 할당방식 (“hw:cpu_policy”:”dedicated”)
   https://docs.openstack.org/admin­guide/compute­cpu­topologies.html


1) dedicated
   - Thread / Core 가 cpu_id 를 가지고 할당
   - 즉 인스턴스는 항상 동일한 cpu_id 내에서만 사용

# virsh vcpupin <domain>
VCPU: CPU Affinity
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0: 2

Tasks: 177 total, 1 running, 176 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 99.7 us, 0.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.7 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 1.3 us, 0.7 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st


2) share
   - Thread / Core 가 share 형태로 할당
   - 즉, 동일 장비내에 특정인스턴스에서 CPU 리소스부하가 발생할 경우 전체 시스템에 영향

# virsh vcpupin <domain>
VCPU: CPU Affinity
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
0: 0­7

Tasks: 177 total, 1 running, 176 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 99.7 us, 0.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.7 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 1.3 us, 0.7 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st



2. 테스트 장비
   - 1 Socket 4Core 8Thread / 2 Socket 12Core 24Thread

CPU : Intel(R) Xeon(R) CPU E31230
    CPU(s): 8
    On­line CPU(s) list: 0­7
    Thread(s) per core: 2
    Core(s) per socket: 4
    Socket(s): 1
CPU : Intel(R) Xeon(R) CPU E5­2620
    CPU(s): 24
    On­line CPU(s) list: 0­23
    Thread(s) per core: 2
    Core(s) per socket: 6
    Socket(s): 2


3. 테스트 개요
목적 : vcpu(Thread) 할당시 정수연산부로 인한 성능저하 최소화 방법

1) vcpu(thread) 증가에 따른 성능변화
2) 동일코어내 2개의 1vcpu(thread) 인스턴스 생성시 성능변화
3) 다른코어내 2개의 1vcpu(thread) 인스턴스 생성시 성능변화
4) 동일코어내 할당된 인스턴스에서 서로 영향없이 사용가능한 방법은?
­ cpu_thread_policy=isolate
5) 짝수할당시 Thread 분배 알고리즘


4. Core / Thread 확인
CPU 구조 참고 url
http://idchowto.com/?p=1520
http://m.todayhumor.co.kr/view.php?table=bestofbest&no=168938


cat /sys/devices/system/cpu/*/topology/thread_siblings_list |sort -u
0,12
1,13
10,22
11,23
2,14
3,15
4,16
5,17
6,18
7,19
8,20
9,21

# virsh capabilities |grep cpu
<cpu>
</cpu>
<cpus num='12'>
<cpu id='0' socket_id='0' core_id='0' siblings='0,12'/>
<cpu id='1' socket_id='0' core_id='1' siblings='1,13'/>
<cpu id='2' socket_id='0' core_id='2' siblings='2,14'/>
<cpu id='3' socket_id='0' core_id='3' siblings='3,15'/>
<cpu id='4' socket_id='0' core_id='4' siblings='4,16'/>
<cpu id='5' socket_id='0' core_id='5' siblings='5,17'/>
.......................
<cpu id='21' socket_id='1' core_id='3' siblings='9,21'/>
<cpu id='22' socket_id='1' core_id='4' siblings='10,22'/>
<cpu id='23' socket_id='1' core_id='5' siblings='11,23'/>
</cpus>


5. 성능체크 (dedicated)
   - socket, core, thread
   - Benchmark Tool : sysbench
# sysbench ­­num­threads=1 ­­test=cpu ­­cpu­max­prime=20000 ­­validate run

   1) vcpu(thread) 증가에 따른 설능체크
     1vcpu
     - total time: 24.7478s
    2vcpu
     - total time: 14.0255s

   2) 동일코어내 vcpu(thread) 인스턴스 할당 성능체크
     - VM1 : 24.7478s
     - VM2 : 31.2511s
       ※ 일부 영향

   3) 다른코어내 vcpu(thread) 인스턴스 할당 성능체크
    -VM1 : 24.8439s
    - VM2 : 25.0490s
      ※ 변화 없음

vcpu(thread) 에 따른 성능변화는 있으며 동일 core 내 할당된 vcpu(thread) 인스턴스는 서로 간섭이 발생한다 .


6. 기능체크 (dedicated)
   1) cpu_thread_policy=isolate
    - 코어내 vcpu를 독립적으로 사용하겠다는 의미이나 홀수할당시 나머지 vcpu는 비어있음
    - 리소스 낭비


  2) vcpu 짝수할당
    - 알고리즘 무조건 동일코어로 thread 할당
    - socket을 넘어가는 리소스 할당 지원하지 않음


   3) vcpu 홀수할당
    - 코어내 비어있는 vcpu(thread)는 1vcpu 만 할당가능
    - 일부 코어는 dedicated 내에서도 Share per Core


※ 일부 코어는 서로 다른 인스턴스가 생성되어 인스턴스간에 간섭이 발생할수 있다.


7. 요약 
   - 기본 vcpu 할당은 2 / 4 / 8 짝수형태로 할당
   - 1vcpu(thread) 상품은 dedicated / Share per Core
   - Socket내 vcpu(thread) 이상의 고스펙 상품은 share 단독으로 운영



이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.