1. 배경
주피터 노트북을 사용하다 보면, 특히 머신러닝/딥러닝을 하다 보면 크기가 매우 큰 데이터를 다루게 됩니다. 이때, 여러 노트북을 켜놓아서 여러 노트북들이 메모리를 총 얼마 정도 쓰고 있는지, 그리고 개별 노트북은 메모리를 얼마 정도 쓰고 있는지 알고 싶을 때가 있습니다. 그 방법을 알아보겠습니다.
2. 전체 노트북 메모리
1) 설치
# pip를 이용한 설치
pip install jupyter-resource-usage
# 주피터 노트북에서 설치하는 경우 pip
!pip install jupyter-resource-usage
# conda를 이용한 설치
conda install -c conda-forge jupyter-resource-usage
주피터 노트북에서 설치하는 경우는 아래 사진처럼 앞에 느낌표를 붙이고 pip install을 하면 됩니다. 이렇게 설치한 뒤에, 주피터 노트북을 아예 종료했다가 재시작해야 적용됩니다.
* 해당 라이브러리 깃허브
2) 결과 화면
주피터 노트북을 껐다가 켜면, 현재 켜져 있는 모든 노트북이 사용하고 있는 메모리가 아래 빨간 박스에 나오게 됩니다.
켜져 있는 모든 노트북 확인은 홈에서 Running에 들어가면 아래 사진처럼 나오게 됩니다. 메모리 사용을 줄이고 싶다면 필요 없는 노트북은 Shutdown 키를 누르면 됩니다.
3. 개별 노트북 메모리
전체 메모리 말고, 현재 노트북에서 사용하고 있는 메모리를 확인하는 방법도 있습니다.
1) 설치
# pip 설치
pip install memory_profiler
# 주피터 노트북에서 pip 설치
!pip install memory_profiler
마찬가지로 주피터 노트북에서 설치하는 경우 !pip install을 이용하며 아래 사진과 같이 설치하면 됩니다.
* 출력
2) 결과 화면
① 매직 커맨드(%) 사용
# 외장 모듈 호출
%load_ext memory_profiler
# 매직 커맨드를 사용한 메모리 사용량 확인
%memit
%load_ext를 이용해 memory_profiler를 로드하고, %memit로 현재 노트북에서 사용 중인 메모리(peak memory)와 최근 증감률(increment)을 보여줍니다. 아래 사진에선 현재 노트북에 54.92 Mb(메가바이트)를 사용하며, 최근에 0.42 Mb의 메모리 사용이 증가되었다는 것을 의미합니다.
* 출력
② python 모듈 사용
from memory_profiler import memory_usage
print(f"{memory_usage()[0]:.2f} MiB")
이번엔 Python 라이브러리를 import 하여 memory_usage() 메서드를 통해 출력하는 코드입니다. memory_usage()는 리스트 안에 메모리 사용량을 메가바이트로 반환합니다. 그래서 [0] 번째를 f-string을 이용해 소수 2자리까지(:.2f) 출력하는 코드를 같이 사용했습니다.
( f-string에 대한 개념 포스팅: [Python] f-string 포맷팅 )
* 출력
4. 결론
주피터 노트북으로 대용량의 데이터를 다룰 때, 데이터를 메모리에 올려놓고 사용하기 때문에 메모리 사용량을 모르고 데이터 분석을 하다 보면 주피터 노트북이 갑자기 뻗어버리는 경우가 생길 수 있습니다. 그러므로 현재 사용하고 있는 메모리의 양을 모니터링하면서 데이터 분석을 한다면 좀 더 안정적으로 하실 수 있습니다.
읽어주셔서 감사합니다.
다음에 더 재미있고 유익한 글로 찾아오겠습니다.
* 위의 실습 코드 깃허브를 공유드립니다.
Reference)
1. Jupyter Logo: https://www.dataquest.io/blog/jupyter-notebook-tutorial/
2. jupyter-resource-usage: https://github.com/jupyter-server/jupyter-resource-usage
3. memory_profiler: https://data-newbie.tistory.com/498
'Programming > Jupyter notebook' 카테고리의 다른 글
[Jupyter Notebook] 셀에서 코드결과 모두 출력하기 (0) | 2022.10.26 |
---|---|
[Jupyter Notebook] 폴더, Vscode 쉽게 열기 (터미널 명령어) (0) | 2022.07.11 |
[Jupyter Notebook] 주피터 노트북 환경설정 경로 확인 (0) | 2021.08.13 |
[Jupyter Notebook] 윈도우에서 실행 위치 설정 (0) | 2021.07.28 |
[Jupyter Notebook] 유용한 단축키! Custom 포함 (0) | 2020.10.22 |