728x90

참고URL

리눅스 메모리 사용률 확인

zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%A9%94%EB%AA%A8%EB%A6%AC_%EC%82%AC%EC%9A%A9%EB%A5%A0_%ED%99%95%EC%9D%B8

 

Nginx, PHP-FPM에서 child process 개수 결정하기

yumere.tistory.com/81


# 프로세스중 메모리를 많이 사용하는 프로세스 리스트를 뽑아낸다.

# ps -ef --sort -rss

# ps -ef --sort -rss

UID        PID  PPID  C STIME TTY          TIME CMD
root     14801     1  0 Aug24 ?        00:00:36 /usr/local/apache/bin/httpd -k start
root     30654     1  0 Aug26 ?        00:03:02 java -jar ../server/tubro-site-main-1.0.0-SNAPSHOT.jar --server.port=8182
root     30607     1  0 Aug26 ?        00:02:43 java -jar ../server/test-swagger-1.0.0-SNAPSHOT.jar --server.port=8181
nobody     396 14801  0 Aug26 ?        00:00:44 /usr/local/apache/bin/httpd -k start
nobody     395 14801  0 Aug26 ?        00:00:50 /usr/local/apache/bin/httpd -k start
nobody    3556 14801  0 Aug26 ?        00:00:45 /usr/local/apache/bin/httpd -k start
nobody   32734 14801  0 Aug26 ?        00:00:50 /usr/local/apache/bin/httpd -k start
mysql    30313 29796  0  2019 ?        02:31:44 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/mysql/data --plugin-dir=/usr/local/mysql/lib/plu
root     11757     1  0  2019 ?        00:29:47 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
root      3203 15675  0 18:15 ?        00:00:00 sshd: hanchiro [priv]
root      3233  3206  0 18:15 pts/0    00:00:00 su -
root      3235     1  0 18:15 ?        00:00:00 /usr/libexec/fprintd

 

 

# php-fpm 프로세스중에서 메모리를 많이 사용하는 리스트를 뽑아낸다.

# ps -ylC php-fpm --sort:rss

 

#java 프로세스의 메모리 사용량을 볼 수 있다.
ps -ylC java --sort:rss

# ps -ylC java --sort:rss
S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD
S     0 30607     1  0  80   0 510144 1473060 futex_ ?     00:02:43 java
S     0 30654     1  0  80   0 859748 1542193 futex_ ?     00:03:02 java

RSS를 보면 평균 사용 메모리를 KB로 표시해준다.
위 명령어 외에 좀 더 확실해게 보려면 아래 명령어를 입력해보면 된다.

 

PHP-FPM으로 사용가능한 memory / Processor 당 메모리 사용량으로 나누면 pm.max_children 개수를 정할 수 있다.
ps --no-headers -o "rss,cmd" -C java | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'

# ps --no-headers -o "rss,cmd" -C java | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'
668Mb


<< bash 스크립트 >>

#!/bin/bash

TOTAL=`free | grep ^Mem | awk '{print $2}'`
USED1=`free | grep ^Mem | awk '{print $3}'`
USED2=`free | grep ^-/+ | awk '{print $3}'`

NOMINAL=$((100*USED1/TOTAL))
ACTUAL=$((100*USED2/TOTAL))

MEMTOTLA=`cat /proc/meminfo | grep MemTotal`

# NOMINAL=`echo "100*$USED1/$TOTAL" | bc -l`
# ACTUAL=`echo "100*$USED2/$TOTAL" | bc -l`

echo '--------------------------------------------------'
echo ${MEMTOTLA}

echo NOMINAL=${NOMINAL:0:5}% ACTUAL=${ACTUAL:0:5}%
echo '--------------------------------------------------'
echo 'NOMINAL : 명목, ACTUAL : 실질, rss : 물리메모리'
echo '--------------------------------------------------'
echo '물리메모리 사용량 TOP 10'
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -n 11
echo '--------------------------------------------------'
echo 'SWAP메모리 사용량 TOP 10'
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -size | head -n 11

[root@KSERVER145-25 ~]# ./memory_check.sh 
--------------------------------------------------
MemTotal: 7894176 kB
NOMINAL=98% ACTUAL=37%
--------------------------------------------------
NOMINAL : 명목, ACTUAL : 실질, rss : 물리메모리
--------------------------------------------------
물리메모리 사용량 TOP 10
USER       PID  PPID   RSS    SZ    VSZ %MEM %CPU     TIME COMMAND
root     14801     1 4342480 6220 4624664 55.0 0.0 00:00:36 httpd
root     30654     1 859844 6019212 6168772 10.8 0.0 00:03:02 java
root     30607     1 510144 5742716 5892240  6.4 0.0 00:02:43 java
nobody     396 14801 291316 5440208 10060724  3.6 0.0 00:00:44 httpd
nobody     395 14801 280584 5438416 10058960  3.5 0.0 00:00:51 httpd
nobody    3556 14801 270376 5438416 10058932  3.4 0.0 00:00:45 httpd
nobody   32734 14801 257716 5438416 10058960  3.2 0.0 00:00:50 httpd
mysql    30313 29796 163408 4145948 4183520  2.0 0.0 02:31:44 mysqld
root     11757     1  5088 228600 256192  0.0 0.0 00:29:47 rsyslogd
root      3203 15675  4120   616  73456  0.0  0.0 00:00:00 sshd
--------------------------------------------------
SWAP메모리 사용량 TOP 10
USER       PID  PPID   RSS    SZ    VSZ %MEM %CPU     TIME COMMAND
root     30654     1 859844 6019212 6168772 10.8 0.0 00:03:02 java
root     30607     1 510144 5742716 5892240  6.4 0.0 00:02:43 java
nobody     396 14801 291316 5440208 10060724  3.6 0.0 00:00:44 httpd
nobody     395 14801 280584 5438416 10058960  3.5 0.0 00:00:51 httpd
nobody    3556 14801 270376 5438416 10058932  3.4 0.0 00:00:45 httpd
nobody   32734 14801 257716 5438416 10058960  3.2 0.0 00:00:50 httpd
mysql    30313 29796 163408 4145948 4183520  2.0 0.0 02:31:44 mysqld
root      2399     1   812 4078160 4116684  0.0 0.0 00:00:01 console-kit-dae
root     11757     1  5088 228600 256192  0.0 0.0 00:29:47 rsyslogd
68        1904     1  1076 11216  38212  0.0  0.0 00:09:54 hald

memory_check.sh.zip
0.00MB

 

+ Recent posts