본문 바로가기

MySQL Tool 26

19. TCMalloc 작동원리 아래의 내용은 다음의 url의 내용 중 작동 원리 부분만 번역하여 정리한 것입니다. http://goog-perftools.sourceforge.net/doc/tcmalloc.html TCMalloc은 스레드별로 스레드가 사용할 로컬 캐쉬를 만들어서 할당한다. 이 영역은 작게 할당되는데 각 스레드의 로컬로 동작하기 때문에 문제가 되지 않는다. 오브젝트들은 필요한 경우 로컬 영역에서 중양 영역으로 이동하기도 하는데, 주기적인 GC(Garbage Collection)이 로컬 영역에서 중앙 영역으로 메모리가 이동될 수 있게 작업을 진행시킨다. [그림]TCMalloc은 Large 오브젝트와 다르게 32kbqㅗ다 작은 사이즈를 가진 Small 오브젝트를 관리한다. Large 오브젝트는 page-level allo.. 2016. 1. 14.
18. JEMalloc 작동 원리 이 글은 Jason Evans가 작성한 Scalable memory allocation using jemalloc의 내용 중에 작동 원리에 대한 것만 정리한 문서입니다. 참고 url : https://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919JEMalloc은 다음과 같은 몇가지의 간단한 아이디어로 구현된 메모리 관리 프로그램이다. phkmalloc에서 유래된 방식으로 size class에 따라 작은 단위로 메모리를 나누고, 재 사용하는 동안 low address를 사용하는 것을 선호하게 한다. 이와 같은 방식이 단편화 발생이 적어지도록 하는데 유리하다. size class.. 2016. 1. 13.
17. TCMalloc 설치하기 TCMalloc은 따로 제공되지 않고, google performace tool을 설치하면 다른 툴과 같이 설치된다. 최신버젼은 다음의 url에서 확인이 가능하다. https://github.com/gperftools/gperftools/tree/gperftools-2.4 Google Performance Tool의 최신은 2.4 이지만, TCMalloc이 마지막으로 수정된 버젼은 Ver. 1.8 이다. (2016년 1월 기준)그러므로, 1.8 이상으로만 설치하면 상관없다. Google Performance Tool은 yum을 이용하여 2.0 버젼을 설치 할 수 있으므로 yum으로 설치하도록 한다. [root@test gperftools-master]# yum install gperftoolsLoaded.. 2016. 1. 13.
16. JEMalloc 소스 컴파일하기 JEMalloc은 기본적으로 yum 으로 설치가 가능하지만, 최신 JEMalloc을 사용하려면 소스를 직접 받아다가 컴파일을 하는것이 좋다. JEMalloc 소스는 다음의 url에서 확인할 수 있다. https://github.com/jemalloc/jemalloc 현재 여기에서 제공되는 최신 본은 Ver. 4.0.4 이다. 테스트 목적이나 개발 목적이 아니라면 Branch를 master로 선택하여 다운받으면 된다. 그러면, jemalloc-master.zip 파일을 받을 수 있다. unzip으로 압축을 풀면 다음과 같은 디렉토리가 생성된다. [root@test minstall]# lsjemalloc-master jemalloc-master.zip jemalloc-master로 들어가서 autogen.s.. 2016. 1. 13.