몇 주 전까지 만해도 각 대상 장치의 전체 빌드에 약 1.5 시간이 소요되는 빌드 시스템이 있습니다.
어느 시점에서 그것은 약 3.5 시간으로 늘어 났는데, 약 9 개의 다른 목표를 위해 빌드했기 때문에 빌드 시간이 14 시간에서 약 32 시간으로 늘어났습니다.
우리는 마침내 문제가 어디에 있는지 확인했다고 생각합니다. 내 Win10 상자 (게스트는 Ubuntu 16.04)에서 실행중인 VM이 Win7 상자에 복사되었습니다. VM은 설정, 실행되는 디스크 유형 등의 측면에서 완전히 변경되지 않았습니다. 기계도 매우 유사하게 사양이 지정되었습니다 (동일한 CPU, 디스크 등).
제쳐두고, 나는 원래 VirtualBox 5.x를 실행하고 있었지만 Win7 상자에는 6.0.12가 있었지만 내 상자에서 6.0.14로 업그레이드해도 아무런 변화가 없었기 때문에 이것이 문제라고 생각하지 않습니다. VM 디스크를 내 상자의 SSD로 옮기는 것조차도 거의 안심할 수 없었습니다. 이는 거의 확실하게 CPU에 묶여 있음을 의미합니다.
VM을 실행하는 Win7 상자는 약 1.5 시간 만에 각 빌드를 수행했습니다.
그런 다음 그 상자에 대한 유일한 변경 사항은 Win10으로의 인플레 이스 (in-place) 업그레이드였으며, 이제 빌드 에도 각각 3.5 시간이 걸립니다.
약간의 조사에 따르면 VirtualBox / Win10에 호스트와 게스트 모두 문제가있는 소수의 사람들이 있지만 제공된 조언 (비디오 메모리 증가, 호스트와 게스트 간의 CPU / 메모리 재조정, 비디오 가속 활성화 / 비활성화 등)이 있음을 보여줍니다. 아무것도 고치지 않는 것 같습니다.
우리는 다음과 같은 몇 가지 아이디어를 검토하고 있습니다.
앞으로 나아가는 방법에 대한 다른 아이디어가있는 사람이 있습니까?
우리는 몇 가지 조사를 해왔는데 그 원인은 Windows 10에 도입 된 Spectre2 / Meltdown 완화입니다.
몇 웹 사이트에서 영향이 다양하지만 서버 팜 및 개발자 상자를 구축하는 데 가장 큰 피해를 입힌다는 사실을 발견했습니다 ( 예 : 여기 참조 ).
Gibson Research InSpectre 도구를 사용 하여 완화 기능을 해제 할 때 (물론 안전을 위해 기계를 에어 갭 후) 빌드는 다시 한 번 목표 당 1 시간 반으로 내려갔습니다.
이제 우리는 이것을 어떻게 진행해야할지 알아 내면됩니다. 이미 소스가 준비된 에어 갭 머신을 구축해야 할 수도 있습니다.
추가 세부 사항. 우리의 모든 개발자 컴퓨터는 CPUID 306c3 Haswell
완화 조치로 인해 특히 큰 타격을 입었습니다. 우리는 더 현대적인 프로세서 CPUID 810f10
(AMD Ryzen 5) 에서 테스트 하여 영향이 적은지 확인할 것입니다.
그렇다면 우리는 그 중 몇 개를 구매하도록 선택할 수 있습니다. 두 경우 모두이 답변은 결과로 업데이트됩니다.
이것이 최종 업데이트가되기를 바랍니다. 원래 Windows 호스트 에서 Spectre / Meltdown 완화 기능을 비활성화하여 속도를 되 찾는 데 성공했지만 해킹 가능성을 고려할 때 실제로 실행 가능한 솔루션은 아닙니다.
추가 조사 결과 VirtualBox가이 환경에서 문제를 겪었지만 VMware는 그렇지 않은 것으로 나타났습니다. 그래서 우리는 차이점을 설명 할 무언가를 찾았습니다.
결국 우리 는 유사한 문제를 설명하는 이 스레드 를 만났고 거기에서 제안 된 솔루션 중 하나를 시도한 결과 호스트 OS 를 손상시키지 않고 속도 를 회복 할 수 있음을 발견했습니다 .
해결책은 VM이 종료되는 동안 (일시 중단되지 않음) 다음 명령을 실행하는 것입니다.
vboxmanage modifyvm VM_NAME --spec-ctrl on
여기서는 VM_NAME
실제 VM 이름 (으로 획득 vboxmanage list vms
) 으로 대체되어야합니다 . 그런 다음 VM을 다시 시작한 후 다시 정상 속도로 실행되어야합니다.
불행히도, 이것은 전체 개발 팀을 위해 새로운 Threadripper PC를 구입하기위한 비즈니스 사례가 이제 무너 졌다는 것을 의미합니다. 젠장, 인터넷 :-)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다