본문 바로가기

TCmalloc4

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.
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.
15. JEMalloc 과 TCMalloc JEMalloc Jason Evans 가 만든 메모리 할당 프로그램. 단편화 방지 및 동시 확장성을 강조한 할당 프로그램이다. 2005년도에 FreeBSD libc allocator로 시작하여 현재까지 다수의 어플리케이션엣 사용되고 있다. 2010년 이후에는 heap profiling, Valgrind의 통합 및 광범위한 모니터링 / 튜닝과 같은 개발자를 위한 기능이 추가되어 제공되고 있고, 현재까지 단점을 보완하고, 기능 개선을 지속하고 있다. 2016년 1워 초 현재 Version 4.0.4 가 제공되고 있다. 자세한 사항은 다음의 url에서 확인이 가능하다. http://www.canonware.com/jemalloc/index.htmlhttps://github.com/jemalloc/jemallo.. 2016. 1. 13.
15. MySQL 실행 시 메모리 관련 library 설정하는 방법 MySQL Version 5.5 부터는 MySQL을 실행 할때 malloc() library 대신에 사용할 수 있는 라이브러리를 설정할 수 있다. MySQL을 어떤 시스템에서 사용하느냐에 따라 성능에 큰 차이가 나는데...다음의 url은 그것을 테스트한 외국 사이트의 자료이다. http://www.mysqlperformanceblog.com/2013/03/08/mysql-performance-impact-of-memory-allocators-part-2/ 결과로만 얘기하면, "cpu core가 8 이상이 되는 시스템 에서는 기본 library보다는 tcmalloc이나 jemalloc을 사용하는것이 성능에 더 좋다." 고 나와있다. 그럼 그와 관련된 설정 정보를 알아보자. 다음의 mysql referenc.. 2014. 3. 18.