더북(TheBook)

만약 스래싱이 발생한다면 다음 증상들을 볼 수 있다.

시스템의 가용 메모리가 거의 남지 않게 된다.

디스크 입출력이 지속적으로 많이 발생한다.

R 프로세스의 CPU 사용량이 낮다.

예를 들어, 그림 5-2에서는 Rscript.exe 프로세스가 사용하는 메모리가 약 709MB, 851MB, 851MB, 586MB였고, RStudio에서 사용하는 R 프로세스인 rsession.exe가 3.7GB 정도의 메모리를 사용하고 있었다. Rscript.exe의 CPU 사용량은 0에 근접했다. 그림 5-3에 보인 작업 관리자 ‘성능’ 탭을 보면 여유 메모리가 0이며 전체 CPU 사용량은 11%로 낮았다. 이로 미루어 보아 그림에서 보인 머신의 경우 스래싱이 발생하고 있었고 부족한 메모리를 보충하기 위해 디스크를 메모리로 사용하고 있었으며, 이 때문에 CPU 대신 입출력 장치에 부하가 걸렸다. 따라서 전체적인 코드 수행 속도가 느리다.

그림 5-3 스래싱이 발생했을 때의 작업 관리자 성능 탭
그림 5-3 스래싱이 발생했을 때의 작업 관리자 성능 탭

스래싱이 발생할 경우 입출력에 드는 부하 때문에 단일 프로세스로 작업을 수행하는 경우보다 속도가 느려진다. 스래싱이 관찰된다면 registerDoParallel( )에 cores를 더 작게 지정하거나 경우에 따라서는 병렬화를 하지 않는 것이 낫다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.