- 메모리관련부분 책
- Memory Dump 분석과 활용
- Linux 문제분석 과 해결 (개인적으로 이게 더 좋음)
http://www.hanbit.co.kr/network/view.html?bi_id=1313
이를 이용하여 정확한 위치와 관련부분을 알수가 있다.
valgrind의 설치 방법과 사용법을 설명.
http://forum.falinux.com/zbxe/index.php?document_srl=528619&mid=lecture_tip
valrind로 직접 User Manaul을 참조
https://www.kernel.org/doc/htmldocs/kernel-api/API-kmalloc.html
속도역시 느리다. ( vmalloc 도 내부적으로 kmalloc을 사용한다고 한다)
http://www.mjmwired.net/kernel/Documentation/bus-virt-phys-mapping.txt
2.1 Memory Mapping
- Application의 Memory Leak
이를 이용하여 정확한 위치와 관련부분을 알수가 있다.
valgrind의 설치 방법과 사용법을 설명.
http://forum.falinux.com/zbxe/index.php?document_srl=528619&mid=lecture_tip
valrind로 직접 User Manaul을 참조
https://valgrind.org/
CONFIG_DEBUG_KMEMLEAK
Kernel 설정이 필요하다고 하며, 아직 나도 시도를 완벽히 못했으며, 추후 시도로를 다시하면,아래의 사이트를 이용하여 다시 진행 해볼 계획.
http://blog.dasomoli.org/516
- Linux Kernel Memory Leak
CONFIG_DEBUG_KMEMLEAK
Kernel 설정이 필요하다고 하며, 아직 나도 시도를 완벽히 못했으며, 추후 시도로를 다시하면,아래의 사이트를 이용하여 다시 진행 해볼 계획.
http://blog.dasomoli.org/516
- Memory 단편화 (내부,외부)
그리고, Memory에서 단편화 외부/내부, 특히 Embbeded Linux서 문제가 많이 될지는 사실 의문이다.
이 부분은 좀 더 추후 더 자세히 알아보도록
2. Linux Memory Management
Linux의 경우, 기본적으로 Kernel 과 User application으로 Memory 사용하는 방법이 분리되어져 있다
이 부분은 좀 더 추후 더 자세히 알아보도록
2. Linux Memory Management
Linux의 경우, 기본적으로 Kernel 과 User application으로 Memory 사용하는 방법이 분리되어져 있다
- Kmalloc과 vmalloc 사용법 및 차이
Kernel의 경우는 DRAM기반으로 관리되어진다.
Linux Kernel의 Memory Allocator 및 관련관리 부분 자료
https://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=11128
https://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=11128
Linux Kernel Free 호출 (Page 기반)
- kmalloc API
https://www.kernel.org/doc/htmldocs/kernel-api/API-kmalloc.html
- vmalloc API
속도역시 느리다. ( vmalloc 도 내부적으로 kmalloc을 사용한다고 한다)
- (buddy)버디 시스템
https://ko.wikipedia.org/wiki/%EB%B2%84%EB%94%94_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9
http://goodtogreate.tistory.com/8
http://gurugio.blogspot.kr/2014/05/cma-contiguous-memory-allocation.html
https://lwn.net/Articles/486301/
https://events.linuxfoundation.org/images/stories/pdf/lceu2012_nazarwicz.pdf
https://www.youtube.com/watch?v=quJUAeYuoGw
http://goodtogreate.tistory.com/8
- 연속된 메모리 CMA (Contiguous Memory Allocation)
http://gurugio.blogspot.kr/2014/05/cma-contiguous-memory-allocation.html
https://lwn.net/Articles/486301/
https://events.linuxfoundation.org/images/stories/pdf/lceu2012_nazarwicz.pdf
https://www.youtube.com/watch?v=quJUAeYuoGw
- virt2phys
http://www.mjmwired.net/kernel/Documentation/bus-virt-phys-mapping.txt
2.1 Memory Mapping
- Linux Kernel & Kernel Device Driver Programming
Allocating Memory, Memory
Memory Mapping, Memory Mapping
http://www.cs.uni.edu/~diesburg/courses/dd/calendar.html
http://www.cs.fsu.edu/~baker/devices/calendar.html
http://www.cs.fsu.edu/~baker/devices/notes/ch15.html#(1)
http://www.cs.uni.edu/~diesburg/courses/dd/calendar.html
http://www.cs.fsu.edu/~baker/devices/calendar.html
http://www.cs.fsu.edu/~baker/devices/notes/ch15.html#(1)
- Linux Virtual Memory
Linux 가상메모리 구조 및 관련설명
http://idkwim.tistory.com/54
http://idkwim.tistory.com/55
http://hayeol.tistory.com/entry/4%EC%9E%A5-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-1
3. OOM(Out Of Memory)이란
즉 프로그램에서 당장 사용하지 않는 메모리는 나중에 메모리를 할당하기 때문에 실제 사용 가능한 메모리를 넘는 process도 load될 수 있다.(이것을 overcommit 이라 한다.)
만약 overcommit된 메모리에 실제 뭔가 쓰여지기 시작하면 메모리가 모자라므로 Out of memory가 발생한다.
http://idkwim.tistory.com/54
http://idkwim.tistory.com/55
http://hayeol.tistory.com/entry/4%EC%9E%A5-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-1
3. OOM(Out Of Memory)이란
- OOM (Out of Memory) 발생 원인
즉 프로그램에서 당장 사용하지 않는 메모리는 나중에 메모리를 할당하기 때문에 실제 사용 가능한 메모리를 넘는 process도 load될 수 있다.(이것을 overcommit 이라 한다.)
만약 overcommit된 메모리에 실제 뭔가 쓰여지기 시작하면 메모리가 모자라므로 Out of memory가 발생한다.
http://shadowxx.egloos.com/viewer/10781292
http://sd0720.blogspot.kr/2012/05/outofmemoryerror.html
http://www.kmshack.kr/405
4. Memory 누수탐지 및 도구
JAVA Memory
-Java VM memory
-Java GC (gabage collection)
-Android GC (gabage collection)
Android Memory Management
-dalvik 안드로이드 VM -LMK(low memory killer)
코드레벨 메모리 누수
-JAVA 메모리 누수는 가능한 가 ? -JAVA 메모리 부족 및 누수 패턴 사례
Memory 관찰 도구 기본 실습
eclips 기반 - MAT
Memory 누수 사례 분석
안드로이드 기반 메모리 누수 탐지 사례 분석
-메모리 누수 방지 프로그래밍 기법 정리
Memory 관찰 도구 심화 실습
-예제를 통한 메모리 누수 실 사례 분석
-누수 탐지 실습
코드레벨 메모리 누수
-C 메모리 누수 패턴 사례 -C++ 메모리 누수 패턴 사례
Memory 관찰 도구 기본 실습
- Linux 기반 : Valgrind
http://bbingju.wordpress.com/2013/08/08/android-memory-leak/
http://www.androidpub.com/1993866
http://jetblog.tistory.com/19
http://forum.falinux.com/zbxe/index.php?document_srl=528619&mid=lecture_tip
Android
https://play.google.com/store/apps/details?id=com.gihasil.lab.meminfochart
Ref.
http://mdsacademy.co.kr/academy/programs/lecture.html?uid=14387&special=N&PHPSESSID=944f2a34096b86801e2d89263e3a47b4
http://sd0720.blogspot.kr/2012/05/outofmemoryerror.html
http://www.kmshack.kr/405
- 실습 환경 셋팅 및 Memory 관찰 도구 기본 실습
- cat /proc/meminfo
- top,
- procrank,
- dumpsys meminfo pid
4. Memory 누수탐지 및 도구
JAVA Memory
-Java VM memory
-Java GC (gabage collection)
-Android GC (gabage collection)
Android Memory Management
-dalvik 안드로이드 VM -LMK(low memory killer)
코드레벨 메모리 누수
-JAVA 메모리 누수는 가능한 가 ? -JAVA 메모리 부족 및 누수 패턴 사례
Memory 관찰 도구 기본 실습
eclips 기반 - MAT
Memory 누수 사례 분석
안드로이드 기반 메모리 누수 탐지 사례 분석
-메모리 누수 방지 프로그래밍 기법 정리
Memory 관찰 도구 심화 실습
-예제를 통한 메모리 누수 실 사례 분석
-누수 탐지 실습
코드레벨 메모리 누수
-C 메모리 누수 패턴 사례 -C++ 메모리 누수 패턴 사례
Memory 관찰 도구 기본 실습
- Linux 기반 : Valgrind
http://bbingju.wordpress.com/2013/08/08/android-memory-leak/
http://www.androidpub.com/1993866
http://jetblog.tistory.com/19
http://forum.falinux.com/zbxe/index.php?document_srl=528619&mid=lecture_tip
Android
https://play.google.com/store/apps/details?id=com.gihasil.lab.meminfochart
Ref.
http://mdsacademy.co.kr/academy/programs/lecture.html?uid=14387&special=N&PHPSESSID=944f2a34096b86801e2d89263e3a47b4