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

 

728x90

종종 빨간색으로 뜨는 글자들에는 Cannot resolve symbol 'java', 'String', 'Scanner' 등이 제대로 import 되지 않고서 에러가 뜰 때가 있습니다.

이런 현상의 가장 큰 원인은 Module SDK is not defined 이라는 에러로 Moduel SDK가 제대로 정의되지 않아서 생기는 에러가 일 가능성이 있습니다.

종종 IntelliJ를 업데이트를 하면서 IntelliJ의 JAVA  버전으로 설정하고 사용하는 경우에 발생할 수 있습니다.

JAVA 버전이 업데이트 되면서 기존에 사용하던 JAVA 설치 파일 경로의 링크가 변경되는 경우가 있기 때문입니다.

 

그래서 IntelliJ의 JAVA 설정을 변경해줘야 합니다.

 

Proejct Structure에서 Platform Settings  > SDKs 를 누릅니다.

 

+ 를 눌러서 Add New SDK 에서 JDK를 선택합니다.

 

새로 설치한 JAVA 버전이 있는 경로롤 찾아서 선택해 줍니다.

Apply 버전을 눌러서 적용시킨 다음에 "OK" 파란색 버튼을 눌러주세요.

 

그러면 새롭게 지정된 JAVA버전에 맞게 intelliJ가 index을 새롭게 구축하게 됩니다.

이렇게하면 java 버전에 맞게 모듈이 새롭게 구축되어 에러가 나타나진 않을 것입니다.

 

 

Module SDK is not defined / Cannot resolve symbol 'java', 'String', 'Scanner' 등이 빨간색

728x90

IntelliJ IDEA를 쓰고 있으며, 멀쩡히 잘 쓰다가 종종 잊을만하면 Cannot resolve symbol.. 에러가 날때가 있습니다.

 

예를 들면 아래와 같이 import가 제대로 안되어 있는 경우가 그런 경우입니다.

cannot resolve symbol import org.openjdk.jmh.runner.options.Options;

시도 방법 1

상단 메뉴바에서 Build > Clean Project 하고나서 Build > Rebuild Project를 해줍니다.

 

시도 방법 2

시도 방법 1로도 해결이 안되면 캐시를 비우고 재실행 해봅니다.

상단 메뉴바에서 File > Invalidate Caches / Restart…를 선택하고 IDE를 재실행합니다.

 

 

 

 

+ Recent posts