내 Linux 서버에서 Tomcat을 루트로 실행하고 실행하면 ps aux
다음 출력이 제공됩니다.
root 25667 0.1 29.2 4574004 306980 ? Sl Apr27 33:57 /usr/local/java/bin/java -Djava.util.logging.config.file...
Thre는 상위 프로세스만 있지만 실행하면 htop
다른 모든 하위 프로세스(스레드입니까?)를 볼 수 있습니다. 아래에 제공된 몇 줄의 샘플 출력입니다.
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
25668 root 15 0 4466M 299M 14208 S 0.0 29.3 0:01.23 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25669 root 18 0 4466M 299M 14208 S 0.0 29.3 0:54.84 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25670 root 15 0 4466M 299M 14208 S 0.0 29.3 0:00.25 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25671 root 15 0 4466M 299M 14208 S 0.0 29.3 0:00.54 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25672 root 18 0 4466M 299M 14208 S 0.0 29.3 0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25673 root 15 0 4466M 299M 14208 S 0.0 29.3 0:17.96 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25674 root 15 0 4466M 299M 14208 S 0.0 29.3 0:20.01 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25675 root 19 0 4466M 299M 14208 S 0.0 29.3 0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
그래서 단일 명령으로 하위 프로세스 목록을 얻고 싶습니다. 구성 파일에서 maxThreads를 200으로 설정하고 하위 스레드를 계산하여 현재 스레드 수를 확인하고 싶습니다.
답변1
할 수 있을 만큼 쉽습니다:ps -eLf | grep java
조정해야 할 수도 있습니다(원하는 것을 얻기 위해 grep을 다듬을 수 있음).
답변2
다음을 시작할 수 있습니다.
ps -o nlwp PID
(PID는 프로세스의 pid가 됩니다)
nlwp = 경량 프로세스 수
답변3
JDK가 설치되어 있는 경우 이(및 다양한 힙 크기)를 실시간으로 모니터링하는 매우 유용한 방법 중 하나는 jconsole
GUI 프로그램인 입니다(이 있는 경우 javac
이 프로그램도 있어야 합니다). jstat
및 jinfo
기타와 같은 것도 있습니다 . jconsole의 이점을 활용하려면 JMX를 활성화해야 할 수도 있습니다(원격 연결에서도 가능함). 검사하려는 JVM을 실행하는 동일한 사용자로 이러한 도구를 실행해야 합니다.
top
또는 를 사용하는 경우 (대문자)를 입력하여 스레드 표시를 전환 htop
할 수 있습니다 . H
다양한 주요 키 입력을 살펴볼 가치가 있습니다.