-
2020-07-31 오늘의 일지Dev/개발일지 2020. 7. 31. 17:01
서버 모니터링을 위해 작업 수행했던 내역
1) 컴퓨터 현황 모니터링
vmstat -nt 1
vmstat은 리눅스 자원 모니터링 도구로 메모리, cpu 사용률을 조회할 수 있다.
자세한 설명은 여기에.
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_vmstat
리눅스 vmstat - 제타위키
다음 문자열 포함...
zetawiki.com
결과
vmstat를 사용해 현재 상태 모니터링 2) 전체 프로세스의 상태 조회
top을 사용해 각 프로세스의 점유 현황을 모니터링한다.
top
화면이 나타나면 shift+m을 눌러 메모리 사용 순으로 조회.
메모리 사용 순으로 정렬한 top(아래는 회사 정보때문에 삭제) 3) jps
현재 실행 중인 "java" 프로세스들의 pid 조회용
jps
bootstrap의 pid를 따로 저장함.
jps를 통해 본 pid들 4) java 프로세스의 정보 확인
jinfo
sudo jinfo [java pid]
bootstrap의 메모리 설정을 확인하기 위한 용도였기 때문에 -flags 옵션과 10044 pid를 사용함.
sudo jinfo -flags 10044
123456789testuser@web:~/test-server$ sudo jinfo -flags 10044Attaching to process ID 10044, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.252-b14Non-default VM flags: -XX:CICompilerCount=2 -XX:CompressedClassSpaceSize=260046848 -XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648 -XX:MaxMetaspaceSize=268435456 -XX:MaxNewSize=715784192 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=44695552 -XX:OldSize=89522176 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStampsCommand line: -Djava.util.logging.config.file=/home/testuser/test-server/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XX:InitialHeapSize=128m -XX:MaxHeapSize=2048m -XX:MaxMetaspaceSize=256m -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/home/testuser/test-server -Dcatalina.home=/home/testuser/test-server -Djava.io.tmpdir=/home/testuser/test-server/temptestuser@web:~/test-server$cs -flags 옵션을 뺄 경우 자바 프로세스의 전체 설정이 나온다.
5) java 프로세스의 메모리 사용률 확인
jstat
jstat -gc 10044 1000
자세한 정보는 여기에.
Java jstat로 메모리 모니터링
우선 간단히 확인하면 아래처럼 나온다. jstat -옵션 -pid -시간 하면 된다. ex) ~]jstat -gc 16543 1000 저건 pid 16543(java)를 1초에 한번씩 결과값을 보여달란거다. pid는 ps -efw | grep java로 알아내면 된..
5dol.tistory.com
1234567testuser@web:~/test-server$ jstat -gc 10044 1000S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT4352.0 4352.0 135.2 0.0 35072.0 25951.2 87428.0 19795.5 41304.0 40093.7 4736.0 4438.2 1987 12.065 16 7.159 19.2244352.0 4352.0 135.2 0.0 35072.0 25951.2 87428.0 19795.5 41304.0 40093.7 4736.0 4438.2 1987 12.065 16 7.159 19.2244352.0 4352.0 135.2 0.0 35072.0 25951.2 87428.0 19795.5 41304.0 40093.7 4736.0 4438.2 1987 12.065 16 7.159 19.2244352.0 4352.0 135.2 0.0 35072.0 25951.2 87428.0 19795.5 41304.0 40093.7 4736.0 4438.2 1987 12.065 16 7.159 19.224cs 6) jcmd, jmap
https://blog.naver.com/kbh3983/220999618166
[JVM] jcmd & jmap 힙 히스토그램 - 가장 많은 메모리를 소모하는 인스턴스 찾기
Full GC가 발생하는 등 프로그램에 이상현상이 생기면 살펴봐야할 것 중에 메모리를 소모하는 클래스 중...
blog.naver.com
각 인스턴스 별 메모리 점유율을 확인하기 위해 사용.
1234testuser@web:~$ jcmd 10044 GC.class_histogram > output.txttestuser@web:~$ jmap -histo:live 10044 | more &> output2.txt &[1] 27234cs Tomcat의 메모리 점유율이 이상하다 해서 찾아본건 요정도...
'Dev > 개발일지' 카테고리의 다른 글
2020-08-13 오늘의 일지 (0) 2020.08.13 2020-08-12 오늘의 일지 (0) 2020.08.12 2020.07.27 오늘의 일지 (0) 2020.07.27 2020.07.20 오늘의 일지 (0) 2020.07.20 2020.07.08 오늘의 일지 (0) 2020.07.08