동일한 시스템에서 여러 Java 프로그램이 실행되는 경우
각 Java 애플리케이션은 특정 Java Virtual Machine 인스턴스에서 실행됩니다. 나는 아래 측면에서 정말로 혼란스러워하고 인터넷 검색은 나를 더욱 혼란스럽게 만들었다. 다른 사이트의 다른 기사.
Java로 작성된 웹 서비스가있는 경우 실행하려면 JVM 인스턴스가 필요합니다. 그러면 JVM을 데몬 프로세스로 만들 수 있습니까?
다른 Java 응용 프로그램을 실행할 때 그렇다면이 JVM 인스턴스를 사용하거나 새 인스턴스를 생성합니까?
모든 기계에서 사용 가능한 주 메모리는 일정합니다. 초기 힙 크기를 제공하지 않고 n 개의 Java 프로세스를 동시에 시작할 때 힙 크기는 프로세스간에 어떻게 분산됩니까?
n 개의 JVM 인스턴스를 관리하는 프로세스가 있습니까? 아니면 OS 자체에서 관리합니까?
GC 중에 stop-the-world가 발생하면 다른 JVM 인스턴스 (내가 생각하는 다른 스레드)가 영향을 받습니까?
1) Java로 작성된 웹 서비스가있는 경우 실행하려면 JVM 인스턴스가 필요합니다. 그렇다면 JVM을 데몬 프로세스로 만들 수 있습니까?
예, 그럴 수 있습니다. 수행 방법은 O / S 및 웹 서버 컨테이너 자체에 따라 다릅니다.
2) 다른 Java 응용 프로그램을 실행할 때 그렇다면이 JVM 인스턴스를 사용하거나 새 인스턴스를 생성합니까?
아니요. 각 Java 애플리케이션은 독립적 인 JVM을 사용합니다.
각 JVM은 별도의 프로세스이므로 스택, 힙 등의 공유가 없습니다. (일반적으로 공유 할 수있는 유일한 것은 일반 프로세스가 코드 세그먼트를 공유 할 수있는 것과 같은 방식으로 코어 JVM 및 원시 라이브러리의 코드를 보유하는 읽기 전용 세그먼트입니다.)
3) 모든 기계에서 사용 가능한 메인 메모리는 일정합니다. 초기 힙 크기를 제공하지 않고 n 개의 Java 프로세스를 동시에 시작할 때 힙 크기는 프로세스간에 어떻게 분산됩니까?
크기를 지정하지 않은 경우 힙 크기를 결정하는 메커니즘은 사용중인 JVM / 플랫폼 / 버전 및 "클라이언트"또는 "서버"모델 (핫스팟 JVM 용)을 사용하는지 여부에 따라 다릅니다. 휴리스틱은 다른 JVM의 수나 크기를 고려하지 않습니다.
참조 : https://stackoverflow.com/a/4667635/139985
실제로는 힙 크기를 직접 지정하는 것이 좋습니다.
4) n 개의 JVM 인스턴스를 관리하는 프로세스가 있습니까? 아니면 OS 자체에서 관리합니까?
둘 다 아닙니다. JVM 인스턴스의 수는 프로세스를 시작할 수있는 다양한 작업에 의해 결정됩니다. 예 : 데몬 스크립트, 명령 스크립트, 명령 줄에 명령을 입력하는 사용자 등. 궁극적으로 OS는 리소스가 부족한 경우 더 이상 프로세스 시작을 거부 할 수 있지만 JVM은 다른 프로세스와 다르게 처리되지 않습니다.
5) GC 중에 stop-the-world가 발생하면 다른 JVM 인스턴스 (내가 생각하는 다른 스레드)가 영향을 받습니까?
아니요. JVM은 독립적 인 프로세스입니다. 변경 가능한 상태를 공유하지 않습니다. 가비지 콜렉션은 각 JVM에서 독립적으로 작동합니다.
- Java 프로그램을 데몬 화하는 방법을 참조하십시오 .
- JVM의 새 인스턴스가 생성됩니다.
- 다른 모든 프로세스간에 메모리를 공유하는 것과 같은 방식
- O / S에서 관리
- 다른 인스턴스는 영향을받지 않습니다.
인스턴스가 작업을 조정해야하는 경우 다른 인스턴스를 실행 / 중지하는 단일 기본 인스턴스를 만들 수 있습니다.
여러 JVM 인스턴스가 필요한 이유를 설명하지 않았습니다. 아마도 단일 인스턴스가 더 잘 작동 할 것입니다.
참고 URL : https://stackoverflow.com/questions/18394560/when-multiple-java-programs-run-on-the-same-machine
'developer tip' 카테고리의 다른 글
MacOS : /dev/tty.*와 /dev/cu.*의 차이점은 무엇입니까? (0) | 2020.10.08 |
---|---|
도대체 Excel이 같은 이름의 파일 2 개를 처리 할 수없는 이유는 무엇입니까? (0) | 2020.10.08 |
계수를 사용한 C 추가 (0) | 2020.10.08 |
고정 크기 부동 소수점 유형 (0) | 2020.10.08 |
REST Api에 대한 자동 테스트 (0) | 2020.10.08 |