memory 2

계산 시간 추정하기

문제 10억개의 int 중에서 100만개의 int를 작은 순서대로 추출하려고 한다메모리는 얼마가 필요하며 총 계산 시간은 얼마가 걸릴까?1. 메모리가 얼마 필요할까? int의 메모리 크기느 일반적으로 4byte라고 말한다 하지만 이는 정확하지 못하다.c, c++의경우 4bytejava의 경우 일반적으로 4bytepython의 경우 24byte가 출력된다.더보기python은 24byte인 이유는 객체이기 때문이다. sys.maxsize를 할경우 64bit컴퓨터 기준 8byte가 출력된다.계산을 위해 전제조건으로  64bit java 언어를 기준으로 하겠다. int로 충분히 10억까지의 숫자를 담을수 있으므로 10억은 int로 만들수있다 10억 x 4byte를 하면 약 4GB의 메모리 공간이 필요함을 알 수..

CS 2024.06.02

spark memory 관리

spark 1.6+ 부터 spark는 StatciMemoryManager에서  UnifiedMemoryManager로 메모리 관리 모델을 바꾸었다  On - heap memory- jvm에서 관리되는 메모리 영역으로 우리가 spark.executor.memory로 정하는 메모리 크기가 할당된다.- GC가 작동되며 GC에 의해 메모리관리가 이루어진다.Spark executor의 메모리 구조보통 스파크의 executor의 메모리는 spark.executor.memory 옵션을 통해 정한다.spark.executor.memory옵션은 executor의 java heap memory의 양을 결정한다.  그럼 이 memory는 어떻게 관리 될까? spark의 oom 그리고 spill data를 막기 위해서 mem..

spark 2024.02.27