VirtualBox에서 Linux 시스템을 구축할 때 -j2 매개변수를 사용하면 어떤 이점이 있습니까?

VirtualBox에서 Linux 시스템을 구축할 때 -j2 매개변수를 사용하면 어떤 이점이 있습니까?

저는 BuildRoot를 사용하여 VirtualBox 내에서 루트 파일 시스템 이미지를 빌드하고 있습니다. 빌드 속도가 매우 느립니다.

가상 머신에서 "make -j2"를 실행하면 어떤 이점이 있습니까? 가상 머신의 /proc/cpuinfo는 다음과 같습니다.

smachin@smachin-ubuntu:~/neo-build/rfs$ 고양이 /proc/cpuinfo
프로세서: 0
Vendor_id: 정품 인텔
CPU 시리즈: 6
모델: 58
모델명: Intel(R) Core(TM) i7-3687U CPU @ 2.10GHz
단계 수: 9
마이크로코드: 0x19
CPU MHz: 2594.218
캐시 크기: 6144KB
실제 ID: 0
형제자매: 1
코어 수: 0
CPU 코어 수: 1
캡사이신: 0
초기 산: 0
FPU: 예
fpu_Exception: 예
CPUID 레벨: 5
직장: 예
플래그: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm Constant_tsc rep_good nopl pni monitor ssse3 lahf_lm
보고밉 : 5188.43
클플러시 사이즈: 64
캐시 정렬: 64
주소 크기: 36비트 물리적 주소, 48비트 가상 주소
에너지 관리:

답변1

예, 그럴 수 있습니다. 시스템이 I/O 바인딩되고 CPU 바인딩된 경우 -j2다른 프로세스가 디스크 I/O를 수행하는 동안 더 많은 CPU가 사용됩니다. 그러나 디스크에서 요청하는 프로세스 수를 늘리면 디스크 헤드 이동에 대한 경합으로 인해 속도가 느려질 수 있습니다.

Stephen Jeter가 말했듯이 테스트해 보세요.

time make clean all
time make -j 2 clean all
time make -j 3 clean all

VirtualBox에 있습니다. 이 머신이 있다고 가정하면 VM을 종료하고, CPU 코어 수를 늘리고, 시작하고, 빌드를 실행한 다음 종료하여 다시 1개의 코어로 되돌릴 수 있습니다.

또는 2코어로 남겨둘 수도 있습니다. 리눅스는 매우 효율적입니다. 가상 머신에 두 개의 코어를 제공한다고 해서 호스트 운영 체제에서 해당 코어를 사용할 수 없게 되는 것은 아닙니다. 게스트 운영 체제가 아무 작업도 하지 않으면 호스트에서 이러한 코어를 사용할 수 있습니다.

관련 정보