형식)
sourceanalyzer -64 -Xmx8G -Dcom.fortify.sca.RmiWorkerMaxHeap=4G -XX:-UseGCOverheadLimit -XX:MaxPermSize=256M -j 3 -logfile [로그파일] -scan -f [FPR파일]
1) CLI 예제 및 설명
sourceanalyzer -b build_id -64 -Xmx6144M -Dcom.fortify.sca.RmiWorkerMaxHeap=3072M -XX:-UseGCOverheadLimit -XX:MaxPermSize=256M -j 6 -logfile scan.log -scan -f build_id.fpr
위 CLI 예제에 노란색으로 표시된 영역이 Parallel mode 옵션입니다. -j scan 시 사용할 CPU 코어이며, -Dcom.fortify.sca.RmiWorkerMaxHeap는 각 CPU 코어가 사용할 힙 메모리입니다.
2) Parallel mode 옵션 산정 방법
먼저 scan을 진행할 시스템의 CPU, Memory를 확인한 후, 아래 기준으로 산정합니다.
>CPU 최대 코어에서 -2
>만약 CPU 코어가 6일 경우 가용 메모리의 70%를 8로 나누고, -Xmx에 (가용메모리70% / 8) * 2를
-Dcom.fortify.sca.RmiWorkerMaxHeap는 (가용메모리70% / 8) * 1를 산정합니다.
>따라서 CPU 8core, Memory 32GB 일 경우, -j 6, -Xmx5600M, -Dcom.fortify.sca.RmiWorkerMaxHeap=2800M 으로 설정
3)Parallel mode 적용 사례
아래 환경에서 scan 시 3.9 normal mode, 4.0 Parallel mode 분석 시간 비교 자료입니다.
CPU : 8Core Xeon ES-2609 2.40GHz, Memory : 16GB*2, SSD : 256GB
JAVA, JSP : 5,000여개
■ 성능 및 효과
XX화재 BMT 당시, CPU 8Core, Memory 16GB, JAVA/JSP 8,000여개 환경에서 scan 시간이 2시간 30분 소요됨.
상세 방법은 SCA 매뉴얼을 참고하시기 바랍니다.
SCA 버전 scan 방법 scan 소요 시간
3.9 normal mode 8:19:43
4.0 Parallel mode 5:23:12