= [메모리] Check List . 배경 : 메모리 Leak등 각 종 메모리 관련 이슈가 발생했을 때 찾아볼 메모리 관련 정보들의 Super set이 필요했음. |
= free . cmd> free total used free shared buffers cached |
= /proc/slabinfo : . cmd> cat /proc/slabinfo . 예제> cat /proc/slabinfo | tee /tmp/list.proc.slabinfo size-256(DMA) 0 0 256 15 1 : tunables 120 60 8 : slabdata 0 0 0 |
= /proc/meminfo : 시스템의 전체 메모리 상태를 보여줌. . cmd> cat /proc/meminfo . 예제> cat /proc/meminfo MemTotal: 507072 kB [참고] 본 블로그내 "[Memory] 커널 메모리 관리"
|
= /proc/<PID>/smaps : proc의 "maps"에 대한 detail 정보에 해당함. . cmd> grep -v " ... kB" /proc/*/smaps | tee /tmp/list.proc.all.smaps 1M이상의 대상을 표시할 때 사용(... : 변경하면 비슷한 사이즈 이상을 검색할 수 있다.) 관련 정보들의 Super set이 필요했음. . 예제> grep -v " ... kB" /proc/*/smaps /proc/1349/smaps:b6618000-b674b000 r-xp 00000000 00:01 2287 /lib/libc-2.18.so (1) (2) (3) (4) (5) (6) /proc/1349/smaps:b67f8000-b6c10000 r-xp 00000000 00:01 543 /usr/lib/libxcmd.so [참고] (1) 프로세스가 차지하는 메모리 주소공간
|
= /proc/<PID>/statm : proc의 메모리 사용량에 대한 정보. . cmd> grep . /proc/*/statm | tee /tmp/list.proc.all.statm <PID>까지 표시해서 구분 가능하게 하려고 grep을 사용함. . 예제> grep . /proc/*/statm | tee /tmp/list.proc.all.statm (1) (2) (3) (4) (5) (6) (7) [참고] (1) size 전체 프로그램의 사이즈 |
= ps : 프로세스상태를 -o 항목을 이용하여 출력. . cmd> ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss . 예제> ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -7 |
cd /tmp cat > check.sh #!/bin/sh count=0 while [ 0 -eq 0 ]; do ps -w if [ $count -ge 20 ];then ls -1 /proc/[1-9]*/fd count=0 fi count=`expr $count + 1`
sysctl fs.file-nr ls -1 /proc/[1-9]*/fd|grep "^[0-9]"| wc -l cat /proc/meminfo cat /tmp/mem_pre free -m > /tmp/mem_pre cat /tmp/mem_pre cat /tmp/df_pre df -k > /tmp/df_pre cat /tmp/df_pre iwconfig 2> /dev/null | grep "ESSID\|Access Point" date sleep 30 done chmod 777 check.sh /tmp/check.sh sysctl fs.file-nr ----------------------------- 1020 The number of allocated file handles. 0 The number of unused-but-allocated file handles. 70000 The system-wide maximum number of file handles. |
'프로그램... > 프로....Kernel' 카테고리의 다른 글
[/proc] loadavg (1) | 2019.09.24 |
---|---|
[kallsyms] Kernel All Symbols (0) | 2018.04.16 |
[Memory] 커널 메모리 관리 (0) | 2017.09.19 |
[Timer] hrtimer (0) | 2015.04.13 |
[Netlink] kernel-space sample (Using Generic Netlink sockets) (0) | 2014.11.14 |