[Fortify]병렬분석 방법

형식)

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

위로 스크롤