jvmstat hsperfdata java.io.tmpdir

더 읽 기
온라인 에서 문제 가 발생 했 습 니 다.
Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding





재 부팅 후 해결 합 니 다. 주요 원인 은 pid 파일 이 생 성 되 지 않 았 기 때 문 입 니 다. 여기에 관련 된 문제점 을 기록 합 니 다.
먼저 설명해 주세요.  java.io.tmpdir
보다.http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html
   If the directory argument is null then the system-dependent default temporary-file directory will 
be used. The default temporary-file directory is specified by the system property java.io.tmpdir.
On UNIX systems the default value of this property is typically "/tmp" or "/var/tmp"; 
on Microsoft Windows systems it is typically "c:\\temp". A different value may be given to this 
system property when the Java virtual machine is invoked, but programmatic changes to this
property are not guaranteed to have any effect upon the the temporary directory used by this
method







 
그 다음 jvmstat 사용 전 제 를 살 펴 보 겠 습 니 다.
보다.http://java.sun.com/performance/jvmstat/faq.html#3
If the error message is of the form:
      Could not attach to vmid: reason
The jvmstat tools can only monitor the HotSpot 1.4.1 JVM and only when the target JVM has been 
started with the -XX:+UsePerfData option. Please verify that your application is running with the 
correct JVM and that the required -XX option is set. 







 
이어서 위의 두 사람의 관 계 를 말하자면 jvmstat 는 hsperfdata 라 는 디 렉 터 리 파일 을 생 성 합 니 다username, 이 디 렉 터 리 파일 은 어디 에 있 습 니까? 기본 값 은 자바. io. tmpdir 디 렉 터 리 에 생 성 됩 니 다. 자바. io. tmpdir 는 Liux 에서 기본 값 은 / tmp 이 므 로 jvm Monitor 기능 을 기본적으로 켜 면 / tmp 디 렉 터 리 에 hsperfdata 라 는 디 렉 터 리 를 생 성 합 니 다.username, 그리고 이 디 렉 터 리 에 pid 파일 이 있 습 니 다. strings 를 이용 하여 파일 내용 을 볼 수 있 습 니 다. 보통 jvm 의 프로 세 스 정보 일 뿐 입 니 다.
이것 을 알 았 기 때문에 우 리 는 이 디 렉 터 리 의 위 치 를 스스로 수정 하여 삭제 되 어 이 디 렉 터 리 에 의존 하 는 프로그램 에 문제 가 생기 는 것 을 방지 할 수 있 습 니 다.
Djava.io.tmpdir=/home/admin/xxxxxx
전에 다른 사람 이 sun 에 게 준 bug report 와 관련 된 것 을 보 세 요.
JVM creates subdirectory "hsperfdata_xxx"
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5012932
temp dir locations should not be hardcoded for hsperfdata_ dirctories
http://bugs.sun.com/view_bug.do?bug_id=6447182
jdk 업데이트 에 대한 질문 은 블 로그 설명 을 참조 하 십시오.
Java update breaks jps, jconsole, etc
http://underlap.blogspot.com/2011/03/java-update-breaks-jps-jconsole-etc.html
이 문 제 를 한층 더 설명 하면 다음 과 같은 몇 가지 문제 가 발생 하기 쉬 운 부분 을 발견 할 수 있다.
1: hsperfdata 생 성 되 지 않 음xxx 디 렉 터 리 오류
2: hsperfdata 생 성xxx 디 렉 터 리 에 pid 파일 이 없습니다.
3: 생 성 권한 이 없습니다. 예 를 들 어 지정 한 / tmp 나 다른 디 렉 터 리 는 쓸 수 없습니다. 2 가지 상황 을 포함 하여 하 나 는 권한 이 없 는 것 이 고 공간 이 부족 합 니 다.
4: 파일 을 읽 을 수 없습니다. 예 를 들 어 2 명의 다른 사용자 가 이 파일 을 조작 합 니 다. 보통 A 사용자 가 자바 를 시작 합 니 다.  B 사용자 가 jvmstat 등 을 실행 합 니 다.
5: 자바 에서 생 성 된 디 렉 터 리 와 jvmstat 에서 사용 하 는 디 렉 터 리 파일 은 같 지 않 습 니 다. 이것 은 위 jdk update 로 인 한 bug 를 볼 수 있 습 니 다.
ps: JE 스타일 레이아웃...눈물 이 흐르다

좋은 웹페이지 즐겨찾기