임베디드아로마

VMWare 에서 CPU core 와 Memory 설정에 따른 성능(빌드시간) 테스트 본문

Experience

VMWare 에서 CPU core 와 Memory 설정에 따른 성능(빌드시간) 테스트

aromacrony 2018. 12. 13. 12:34

회사 업무로 Virtual Machine 을 많이 사용한다. 주로 소스를 빌드하는데 사용한다.

그중에서도 VMWare 를 사용하는데 사용하면서 CPU 와 Memory 설정을 이정도면 되겠지하면서 임의로 설정하고 사용했다. 

평소에 CPU 와 Memory 설정을 어떻게 해야 윈도우에 영향을 주지 않으면서 성능을 좋게 할까 하는 궁금증을 가지고 있었다.


최근에 노트북을 인텔8세대(4코어) 로 변경하면서 궁금증이 커져서 여유가 있을 때 간략한 테스트를 진행했다. 

테스트는 정확한 수치보다는 해당 OS(Linux) 에서 CPU 와 Memory 수 조정에 따른 BuildTime 비교에 초점을 맞췄다.

소스는 특정Stack 이다.


1. Ubuntu10.04 (32bit)





2. Ubuntu14.04 (64bit)



3. 결론


Ubuntu10.04 (32bit) 에서 보면 Memory 의 영향보다 CPU core 수의 영향을 받는다는 것을 알 수 있었다. CPU core 가 1개 일 경우가 빌드시간이 더 적게 걸렸다.

Ubuntu14.04 (64bit) 에서 보면 CPU core 수나 Memory 영향이 미비하다는 것을 알 수 있었다. 


이 테스트 후에 2개 OS 모두 CPU core 1, Memory 는 2GB 를 설정해서 사용하고 있다.

해당 정보가 궁금하신 분들에게 참고 정보가 되었으면 한다.



[make -j 옵션을 준 후 추가테스트 2019.04.26]


이전 테스트는 make -j 옵션을 몰랐었다. 댓글을 보고 해당 옵션에 대해서 알아보고 해당 옵션을 주고 테스트를 다시 해봤습니다.

core 2일때는 -j 2 core 4일때는 -j 4 이렇게 주었습니다.


1. Ubuntu10.04 (32bit)



2. Ubuntu14.04 (64bit)



3. Kernel build



추가테스트 결론.


예상에는 옵션에 따라 차이가 날 수 있을 것이라고 생각했으나 에상외이었습니다.

Ubuntu10.04 에서는 오히려 시간이 늘어버렸습니다. Ubuntu14.04 에서는 평균시간이 살짝 내려갔습니다만 차이가 크진 않았습니다.

다른 블로그들을 보면 현저하게 시간이 줄었습니다만 제 경우는 아니었습니다.

이것이 그냥 Linux 설치한 컴퓨타가 아니라 VMWare 상에서 돌아가서 이런 것이 아닌가 생각해봅니다.



make개발자에 의하면 총코어갯수에서 20%의 코어갯수를 추가하는 것이 가장 속도가 좋게

작업되었다고 합니다따라서,   -j <숫자> = 총CPU갯수 + round( 총CPU갯수*20%) 입니다.
풀이하면, CPU가 4개이면 20%가 코어 0.8개가 되므로,
반올림해서 4+1 => -j 5가 가장 이상적인 컴파일 속도 결과가 됩니다.

[출처] make의 -j 옵션에 대해서(소스 컴파일속도 최적화)|작성자 바다조아


추가적으로 -j 옵션에서 -j5 로 하면 시간이 조금 더 줄어들었습니다. 숫자를 더 높히면 오히려 늘었습니다. 




Comments