호기심 뽐뿌와서 잉여력 동원하여 실험해봤습니다.
공개 글쓴이가 전체 공개로 설정 한 글 입니다. 댓글과 추천은 이 글을 더욱 가치 있게 만듭니다!

암드해킨을 시도하기 전에 암드해킨과 관련해서 별 달리 리서치한 게 없다고 하면 , MacOS가 암드머신 위에서도 별 탈 없이 부트한다고 하니  해킨위에서 돌아가는 대부분의 앱들도 아무 문제 없이 돌겠지 생각하게 됩니다. 왜냐면 암드머신에서 윈도우즈도 문제 없이 잘 돌고 있기 때문이고 암드가 하루 이틀 장사한 게 아니니까요.


MacOS 상에서는 일개 앱에 불과한 가상머신 (Parallels/VMware Fusion/...) 역시 문제 없이 돌겠거니 하게 됩니다 (그게 뭐 대단한 거라고). Docker의 경우 그 자체가 가상머신은 아니지만 Linux kernel위에서 돌아야 되므로 리눅스 커널이 기본제공 되지 않는 OS 상에서는 Linux VM이 필요하게 됩니다. 따라서 MacOS 상에서는 Docker 역시 가상머신으로 취급하게 됩니다. 


그러나, 최근 버전의 VM이나 Docker desktop은 암드해킨 위에서 돌지 않습니다. 이 모두 다 Apple의 hypervisor.framework을 이용하기 때문입니다. 패럴이나 VMware의 구버전의 경우는 hypervisor.framework을 쓰지 않고 마치 virtualbox처럼 자체 hypervisor를 쓰기 때문에 암드 해킨에서도 사용이 가능합니다.  아마도 hypervisor.framework을 지원하지 못하는 (구버전의 인텔 CPU를 사용하는) 맥과의 호환성을 고려한 것으로 보입니다. 


그래서 실험해 봤습니다. 암드해킨 위에서 VM 되나 안되나? 가 아닌 제대로 되나 안되나?/누가 누가 잘하나?


오직 제가 가진 단 한 대의 암드머신으로 실험한 것이라 모든 암드 머신에 대해서 일반화하긴 어려운 점이 있을 수 있으니 '이렇구나' 하고 보시면 되겠습니다. 


0) 실험 환경

2020년의 시각으로 보기엔 좀 아쉬운 구성입니다만 2018년이었다면 괜찮았을 조건입니다.

Ryzen 7 2700x (no OC) + Gigabyte B450M DS3H


1) 기준 비교대상

암드머신에서 가상머신이 얼마나 잘 돌아가는지 확인하기 위해서 Linux에서 QEMU/KVM으로 윈도우즈10을 돌려봤습니다. 

Ryzen 7 2700x 에서 Geekbench 5 점수가 대략 900대 후반 (싱글)/6천 후반 (멀티)로 잡힙니다. Native 조건에서는 1000대 초반(싱글)/7천 초반(멀티)로 잡히니까 괜찮은 점수라고 할 수 있겠습니다. 이 차이는 아마도 host와 guest간 context switching시 발생하는 손실 때문이라고 봅니다.


2) Parallels desktop

구버전은 설치도 되고 윈도우즈도 큰 문제없이 설치할 수 있습니다. 문제는 VM에 할당한 processor의 수를 늘려도 성능 개선이 거의 없다는 겁니다. 또, 윈도우즈에서 하는 일이 아무것도 없어도 MacOS에서 보여지는 load가 기본 100% 입니다. 이를테면 코어가 2개 할당된 상황에서 윈도우즈에서 풀로드가 되면 MacOS에서 보여지는 load는 200%가 됩니다. 윈도우즈가 idle이 되어도 MacOS 상에서의 VM의 load는 100%가 잡힙니다. 신기하죠?


3) VMware Fusion

VMware Fusion 11 아래부터는 암드해킨에서 윈도우즈 설치도 되고 잘 돌아갑니다. 이때 가상머신의 hyper-V 기능은 반드시 꺼두어야 합니다. 신기한 것은 패럴랠즈나 VMware나 VM이고 (인텔맥 위에서 돌겠거니 하니까) VM 역시 인텔CPU 상에서 돌아가는 것 처럼 보여지겠지 싶지만, guest OS인 윈도우즈에서 바라보는 CPU는 모두 Ryzen 7 2700x로 나타납니다 (그러니까 CPU emulation이 되는 것은 아니구나 하게 됩니다). 

그래서! VMware 상에서 hyper-V 기능을 켜면 문제가 발생합니다. VMware Fusion은 MacOS (정확히는 MacOS on Intel CPU)에서 돌아가고 있다고 가정하고 있으니 당연하게 intel의 hyper-V를 제공하려 하겠지만, guest OS인 윈도우즈에서는 CPU가 AMD CPU로 보여질테니 당연히 hyper V라고 하면 AMD의SVM을 기대했기 때문이 아닐까 합니다.  

또 하나의 문제는 할당한 Core 수를 늘려줘도 geekbench score가 2500대 위로 가질 않습니다. 윈도우즈 상에서 thread를 벌여놓으면 최대 한도에 이르기 전까진 MacOS에서 보여지는 VM의 load는 계속 증가하지만 geekbench의 multicore score는 대략 core가 3-4개에서 수렴합니다.


4) Docker Desktop

- Docker Destop on MacOS

Docker desktop은 Apple의 hypervisor.framework를 이용하고 있고, 이 프레임웍이  MacOS의 kernel을 기반으로 한 것이고 kernel은 인텔 CPU를 염두해두고 만들어진 것이라 암드 해킨에선 아예 되지 않습니다. 최근 버전의 Docker toolbox도 별도로 VM을 만들어주지 않으면 hypervisor.Framework이 기본 제공되겠지 하고 있네요. Hypervisor.Framework이 얼마나 좋은 것인지는 꿩대신 닭(?)의 심정으로 Docker desktop 대신 Docker toolbox를 virtualbox위에서 돌려보면 압니다. 


- Docker Desktop on Windows running as a Guest OS

Docker desktop이 암드해킨에서 제대로 돌지 않으니, '아 암드해킨에서 그래도 VMware는 나름 돌아가는 것 같으니 그 위에 윈도우즈를 돌리고 또 그 위에서 Docker Desktop을 돌려보면 어떨까?'  할 수 있을 것 같은데,

경우에 따라 다릅니다.

VMware에서 hyper-V 기능을 켜면 됩니다.

문제는 Hyper-V 기능을 켜도 Windows가 VMware에서 잘 돌아갈 때도 있고 아닐 때도 있다는 것입니다. 

Core를 8개 이하로 할당할 때: Hyper-V가 동작합니다. 그래서 Docker Desktop for WIndows를 정상적으로 기동할 수 있습니다.

Core를 8개 이상으로 할당할 때: 윈도우즈 부팅 과정이 초반에 중단되고 repair-autoboot-boot crash-repair의 무한 루프를 초래합니다.

그러면 Core 8개일 때 Docker Desktop의 성능은 어떤지 궁금하게 됩니다. Windows의 성능은 Geekbench 5 score 2500 근처에서 수렴하는데, Docker Desktop은 그와 상관없이 잘 돌지 않을까? 독립적으로 구동하는 app을 multithread로 열어봤을 때 MacOS에서 보여지는 VM의 load가 800%까지 가진 않지만 생각보다 결과가 매우 빨리 얻어짐을 알 수 있었습니다. 


- Docker toolbox on virtualbox

체감속도는 Hyper-V (SVM)이 제대로 제공되는 상황을 가정했을 때 대비 거의 1/10 정도 됩니다 (같은 머신에서 윈도우즈나 리눅스 상에서 docker desktop을 쓸 때 대비). virtualbox에 할당한 core의 수를 아무리 늘려줘도 MacOS상에서 보여지는 virtualbox의 load는 250%를 밑돕니다. 즉 2.5 core를 생각해볼 수 있는데 VM에서의 여러 가지 손실을 생각하면 1.x 정도 되는 듯 합니다. 2700x의 최대 thread가 16이니까 체감성능이 1/10 정도밖에 안되는 것이 충분히 말이 됩니다.


- Docker toolbox on VMware (+boot2docker.iso)

Core 16개 할당하고 16개 쓰레드를 벌려놓으면 그만큼 성능이 나온다고는 못해도 충분히 잘 동작합니다. 다만 설치과정이 좀 지저분한데 일단 설치해놓으면 잘 됩니다. 아마도 암드해킨에서 가장 쓸만한 세팅이 아닐까 합니다. 좀 뻔한 얘기일 수 있는데, volume binding을 해서 호스트 OS의 파일 시스템을 가상 OS에 붙여 작업하면 작업속도가 현저히 떨어집니다. 이것은 hypervisor.framework을 사용하는 인텔의 경우보다 더 심하게 느껴집니다. 


그래서 결론은? 

암드해킨에서 VM 사용가능하다, 그러나...

CPU core의 수가 2-4개 정도 되던 시절의 관점으론 암드 해킨에서 VM은  리얼맥/인텔 해킨과 견주어도 손색이 없겠다 할 것 같지만, 지금처럼 많은 core를 사용해서 병렬처리가 가능해진 시점에서는 이부분에선 애플이 하루 빨리 암드씨퓨에 관심을 가져주기만을 (그래서 암드 씨퓨도 고려한 hypervisor.framework으로 업데 해주길) 바랄 뿐입니다. CPU가 기본 제공하는 core수가 많지 않다고 보면 암드 씨퓨에서 SVM(intel VT-x)의 도움없이 VM을 돌려도 성능 차는 크지 않습니다. (그러니 쓸만하다고 볼 수 있습니다? )

그래서, 암드해킨에서 불가피하게 VM을 써야 한다고 하면, 

- Windows VM

잉여력을 동원해서 얻은 결론으로는 VMware (<= ver 11)가 가장 좋았습니다. 2700x 기준 core를 3-4 개 정도 할당하는 게 최적이었고 대충 윈도우즈에서 office 작업 정도 하기에 (약간 답답해도) 적당하지 싶었습니다. Core수를 늘렸을 때 thread간 통신이 별로 없는 app을 multi-thread로 돌리면 그만큼 성능이 향상되지 싶었는데 system load만 그만큼 늘어날 뿐, 체감 성능은 그다지 좋아지지 않았습니다.

- Docker

Docker toolbox를 VMware위에서 돌리면 잘 됩니다. 인텔해킨 위에 Docker Desktop을 돌리는 것만큼 설치가 깔끔하진 않아도 비교적 깔끔하게 돌 뿐더러 성능도 괜찮게 나옵니다. 아직 사용기간이 길지 않아서 특별한 문제점을 발견하진 못했습니다만.



listokei
칸스아주 좋은 글입니다. 많은 분들에게 좋은 참고가 될 것입니다. 수고하셨어요.아주 좋은 글입니다. 많은 분들에...아주 좋은 글입니다. 많은 분들에...
아주 좋은 글입니다. 많은 분들에게 좋은 참고가 될 것입니다.
수고하셨어요.
칼리제이션hyper-V 켜도.. 잘 돌아갑니다 -0-.... 전 올 옵션 다키고 사용중 입니다.hyper-V 켜도.. 잘 돌아갑니다 -0...hyper-V 켜도.. 잘 돌아갑니다 -0...
hyper-V 켜도.. 잘 돌아갑니다 -0-.... 전 올 옵션 다키고 사용중 입니다.
gtrfxdsp피드백 감사합니다. 제 경우에 core를 16개 할당하고 Hyper-V 기능을 켰는데 윈도우즈가 무한 부팅 (부팅 - ...피드백 감사합니다. 제 경우에 co...피드백 감사합니다. 제 경우에 co...

피드백 감사합니다. 제 경우에 core를 16개 할당하고 Hyper-V 기능을 켰는데 윈도우즈가 무한 부팅 (부팅 - repair - 부팅) 루프에 빠져서 안되는 것으로 결론 지었는데, Core를 8개 이하로 잡으니 Hyper-V 기능이 정상적으로 동작해서 VMware-Windows상에서 Docker Desktop이 정상동작하는 것을 확인했습니다. 이 포스트의 내용은 그에 맞춰 업데이트 했습니다. Core를 8개 초과로 할당하고 Hyper-V를 켜놓으면 윈도우즈에서 문제가 발생하는 것은 제가 사용하는 환경에만 국한될 수 있습니다. 

칼리제이션그거 8 이상으로 잡으시려면.. 버전에 따라서 약간 수정 해주시면 가능합니다. 페럴러즈도 라이젠 에서 가능...그거 8 이상으로 잡으시려면.. 버...그거 8 이상으로 잡으시려면.. 버...
그거 8 이상으로 잡으시려면.. 버전에 따라서 약간 수정 해주시면 가능합니다.
페럴러즈도 라이젠 에서 가능하지만,

거이 반 코딩 수준으로 변경해야 할 부분이 많기 때문에.. 아예 그냥 사용을 안하는게 합리적 입니다 ㅠ
gtrfxdspDocker는 윈도우즈 가상머신에서는 포기하고 VMware로 잡은 가상머신으로 돌리니 생각보다 깔끔하게 잘 돌아...Docker는 윈도우즈 가상머신에서...Docker는 윈도우즈 가상머신에서...
Docker는 윈도우즈 가상머신에서는 포기하고 VMware로 잡은 가상머신으로 돌리니 생각보다 깔끔하게 잘 돌아가네요.
14 공지 레벨업 이벤트 - 엑스팔육 유튜브 시작 합니다. 77 필독
1.3k
15 공지 커스텀맥 설치 업체/업자 의뢰를 신청 하기전에 고려사항 67 필독
3.2k
39 공지 입문자 안내서보충 92 필독
19k
43 공지 맥 설치후 점검 및 안정화 작업 70 필독
25k
126 공지 입문자를 위한 x86 안내서 268 필독
155k
⋅ ⋅ 핀 고정된 고정글과의 구분선 입니다 ⋅ ⋅ 고정글 제안은 운영자에게 해주세요 ⋅ ⋅
3 커맥공통 트리거왕's : 10세대 등 코멧레이크에서 VoodooI2C 쓰기 4 관심
115
3 부트로더 맥토피아's : AptioMemoryFix, OsxAptioFix 대신에 OCQuirk for Clover 를 사용해 봅... 15 필독
805
19 커맥공통 라자's : 해킨에서 사용가능한 Wi-FI 무선랜 정리표 2번째 10.14 까지 31 필독
1.8k
56 그래픽팁 뉴라이프's : 1<완결편> <필독요망>인텔그래픽 퍼팩트하게 잡는 방법과 ... 286 필독
17k
0 커맥공통 HQPD2784's : 잠자기가 안될때 파일 공유 체크되어있는지 확인해보세요 1 관심
39
10 커맥공통 원도리's : 5탄 쌩 초보도 할수있다 노트북 배터리 패치 DSDT-SSDT 패치를 하여보자. 47 필독
2.7k
31 커맥공통 원도리's : 1탄 쌩 초보도 할수있다 DSDT-SSDT 패치를 하여보자 119 필독
13k
0 커맥공통 미터가이's : 블루투스 사라짐 현상?? 관심
28
19 커맥공통 아이뱅크's : 부팅오류해결2 31 필독
5.9k
25 커맥공통 아이뱅크's : 부팅별오류 해결 18 필독
14k
39 커맥공통 아이뱅크's : 입문자 안내서보충 92 필독
19k
126 커맥공통 아이뱅크's : 입문자를 위한 x86 안내서 268 필독
155k
0 커맥공통 각시수련's : Kensington works (켄싱턴 워크) 업데이트 되었습니다. 관심
23
0 인텔보드 정형욱욱욱's : LENOVO 330-15ICH I5-8300H / GTX1050 관심
8
3 인텔보드 뽀로로's : ASUS 노트북 터치패드 Polling Mode로 작동시키기 10 필독
478
28 커맥공통 KsJ's : [끝판왕 시리즈] DSDT 파헤치기 39 필독
4.7k
7 커맥공통 뽀로로's : DW1820A Wifi Universal Fix 18 필독
702
15 커맥공통 JAKARTA's : FB-Patcher 를 사용한 모하비14.1+ USB3 잡기 81 필독
5.9k
3 커맥공통 Plusbox's : DW1820A CN-0VW3T3 모델 장착 후기.. 13 필독
422
1 커맥공통 자이스토리's : 고스트 흰색 오류 해결법 관심
32
73 커맥공통 ariC's : 클로버 컨피규레이터 기본 사전 17.09.07 99 필독
7.5k
0 부트로더 파랑세's : 붙0CABC : Found legacy AptioMemoryFix driver! 에러로 부팅이 안되요 2 관심
38
8 커맥공통 뽀로로's : ACPI 핫패치: ACPI Rename 대신 Preset Variable Method로 장치 활성화... 4 필독
543
1 커맥공통 미라이's : 내장 유에스비 3.0 카드리더가 보이지 않을 때(간단 팁) 3 관심
64
3 커맥공통 재댕's : Error loading kernel cache (0x9) 해결방법 13 필독
1.4k
0 커맥공통 칼리제이션's : 10.15.4 beta2 에서 조금 변경된 부분. 5 관심
129
0 커맥공통 재림사랑07's : 알리에서 구입한 DW1820a 무선랜 모듈 교체중 접지부분 파손 수리 완료 2 관심
93
0 커맥공통 dohun0310's : 10.15.4 베타 2 나왔습니다 관심
99
37 그래픽팁 맥토피아's : 카탈리나를 위한 그래픽 카드 선택 팁 291 필독
13k
4 커맥공통 해킨과삽질's : 블루투스 안잡힐때 참고가 될만한 것. 16 필독
401
3 커맥공통 takjakim's : 9900K, VEGA FE 긱벤치 비교 6 필독
312
10 그래픽팁 봄날's : AMD R9 270 (270x, 280, 280x) 설치하기 11 필독
3.7k
8 부트로더 맥토피아's : 300 시리즈 칩셋 Navtive NVRAM 접근 가능하게 하는 SSDT Patch 10 필독
411
16 커맥공통 달쇠's : 바이오스 부트 엔트리 문제 해결(증식, 중복, 항목없음 등) 34 필독
1.8k
6 커맥공통 곰아자씨's : DELL DW1820a CN-08PKF4 모듈 WIFI BT 장착 사용기 20 필독
1.2k
1 커맥공통 dohun0310's : 1820A 교체 성공 1 필독
216
62 커맥공통 JAKARTA's : 내장그래픽/퀵싱크/헤드레스모드 설정하기 (모하비 기준) 215 필독
12k
6 커맥공통 해킨과삽질's : BCM943602CS(wifi+bluetooth) 구입 / 설치과정과 USBInjectAll.kext 22 필독
1.1k
0 커맥공통 푸른교류전등's : [외장SSD케이스에서 부팅성공] 10.14.6 모하비에서 ccc를 이용한 assro... 9 필독
149
9 커맥공통 퓨리온's : Diskutil 커맨드 사용법... 13 필독
570
24 커맥공통 퓨리온's : Mojave 10.14.4 와 windows10 설치... 62 필독
6.8k
2 커맥공통 fidelity's : 세상에 인텔 Wifi 가 될랑말랑 하네요. 12 필독
430
1 AMD보드 칼리제이션's : 라이젠 해킨토시 오버클럭에 관한 진실 4 관심
139
5 커맥공통 맥미니살까's : 사운드카드 한방에 잡기 26 필독
1.6k
0 커맥공통 김태국's : 해킨토시 모하비 설치전 파일손상 해결됐네요. 1 관심
49
0 커맥공통 김태국's : 해킨토시 모하비 포맷 오류 해결됐네요. 관심
50
1 커맥공통 야우's : 커맥 사용 종료 후 자동 재부팅 해결에 대한 팁 2 관심
53
15 커맥공통 XEXEX's : RADEON RX(460/470/480/560/570/580) 설치 가이드 26 필독
1.1k
5 커맥공통 유산균's : AMD GPU와 Whatevergreen.kext 23 필독
565
96 커맥공통 comed78's : [하스웰] 초보자들을 위한 개념 이해하기 부터 커스텀맥 설치하기 까... 174 필독
35k
1 - 34
서버에 요청 중입니다. 잠시만 기다려 주십시오...