kill-3 명령을 사용하여 30 초마다 jave 힙 덤프를 수행해야하는 셸 스크립트를 실행하고 싶습니다. 미리 감사드립니다.죽이기 -명령을 사용하여 jave 힙 덤프를 취하는 방법
답변
간단한 쉘 스크립트를 사용해 보셨습니까?
while true
do
jmap -dump:file=/tmp/java-`date +%s`.hprof PID_OF_JVM
sleep 30
done
이렇게하면 각 스냅 샷마다 하나의 파일 배가 생성됩니다. 난 당신이 대신 jstack
의 kill -3
을 사용할 수 있습니다 생각
while true
do
jstack PID_OF_JVM > stack-`date +%s`.txt
sleep 30
done
: 스레드 덤프 위해 당신은 유사한 스크립트를 사용할 수 있습니다.
+1하지만 kill -3은 jstack과는 달리 스택을 실행하는 콘솔에 덤프하지 않습니다. –
@BrianAgnew : 감사합니다. 저는'kill -3'으로 먼저 시도했지만, 제 잘못이라고 생각했습니다. 스택 덤프를 참조하십시오. –
kill -3은 프로세스 'stdout (err?)에 덤프하지만 jstack은 jstack의 콘솔에 덤프하는 것으로 나타납니다 –
당신은 내가 kill -3
명령을 사용하지 않은하지만 난 제공 jmap
명령을 사용한이
final ScheduledFuture<?> scheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(
new Runnable() {dumpActiveThreads()},
0,
30, TimeUnit.SECONDS);
등이 다음
public static String getDumpFor(Thread thread) {
StringBuilder sb = new StringBuilder();
if (thread.isAlive()) {
StackTraceElement[] stackTrace = thread.getStackTrace();
sb.append(thread.toString()).append("\n")
.append(String.format(" State - %s,", thread.getState()))
.append(String.format(" Is daemon = %s,", thread.isDaemon()));
for (StackTraceElement s : stackTrace)
sb.append("\tat ").append(s.getClassName()).append(".").append(s.getMethodName()).append("(").append(s.getFileName()).append(":").append(s.getLineNumber()).append(")")
.append("\n");
}
return sb.toString();
}
public static void dumpActiveThreads() {
Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
Set<Thread> keySet = stackTraces.keySet();
System.out.println("\nThread dump begin:");
for (Thread thread : keySet)
dumpActiveThread(thread);
System.out.println("\nThread dump end.");
}
및 예약 작업과 같은 코드를 사용하여 자바 응용 프로그램에서 덤핑 스레드를 할 수 by sun sdk
스크립트를 작성한 다음 스크립트에서 실행할 수 있습니다.
${JAVA_HOME}/bin/jmap -dump:file=/home/MyDump.hprof PID
3 만 스레드 덤프를 줄 것이다하지만 힙 dump.Thread 덤프는 단지 당신이 리눅스 후 필요에 힙 덤프 g을 찾고있는 JVM.But 각 스레드에 대한 스택 추적을 확인할 수 있습니다 의미 아래 명령을 사용하십시오. jmap -dump : file = myheap.bin {힙 덤프를 얻으려고하는 pid}. 출력 "myheap.bin"은 사람이 읽을 수 없으므로 MAT 도구를 사용할 수있는 파일을 읽습니다. MAT 다운로드 링크 : http://www.eclipse.org/mat/
- 1. 힙 덤프를 분석하는 방법
- 2. jhat를 사용하여 힙 덤프를 분석하는 방법
- 3. 힙 덤프를 사용하여 힙 조각 통계를 계산하는 방법
- 4. "메모리 부족"후 힙 덤프를 찾을 위치
- 5. Android에서 힙 덤프를 분석하는 방법은 무엇입니까?
- 6. 쉘 명령을 사용하여 파일에서 특정 부분을 취하는 방법은 무엇입니까?
- 7. Thread.interrupt를 사용하여 Java에서 스레드 죽이기
- 8. 가비지 콜렉션없이 Java 5에서 힙 덤프를 수행하려면 어떻게해야합니까?
- 9. WCF를 사용하여 webHttpBinding - 매개 변수를 취하는 방법?
- 10. 스크립트를 사용하여 cmd 또는 셸에서 프로세스 죽이기
- 11. 폴더 만들기를위한 Jave GUI?
- 12. WinDbg를 사용하여 커널 덤프를 만드는 방법
- 13. Websphere에서 가비지 콜렉션과 관련된 힙 덤프를 강제 실행하는 방법은 무엇입니까?
- 14. gridview에 listview를 취하는 방법
- 15. 새로운 AJAX 요청을 죽이기 전에 죽이기
- 16. Linux에서 ibm-jdk로 라이브 힙 덤프를 수행하는 방법이 있습니까?
- 17. jProfiler가 크기 X의 힙 덤프를 분석하는 데 필요한 메모리는 얼마입니까?
- 18. 스레드 덤프를 읽는 방법?
- 19. 크래시 덤프를 얻는 방법
- 20. jailbroken iPhone에서 앱 죽이기
- 21. threadpoolexecutor 죽이기
- 22. 모든 매개 변수를 취하는 스크립트에서 nohup 명령을 실행합니다.
- 23. 힙 메모리 분석
- 24. JAVE (ffmpeg)를 사용하여 amr에서 flac으로 트랜스 코딩
- 25. .NET MVC3을 사용하여 다른 세션에서 세션 죽이기
- 26. 하단 div가 나머지를 취하는 방법
- 27. OS에서 Java 쓰레드 죽이기
- 28. PHP에서 mysql 덤프를 사용하는 방법
- 29. WinDBG에서 커널 덤프를 분석하는 방법
- 30. 데이터베이스 덤프를 다운로드로 반환하는 방법
[cron] (http://stackoverflow.com/questions/9619362/running-a-cron-every-30-seconds)을 보았습니까? – Thomas
@Thomas 'cron'을 사용하여 30 초마다 트리거합니까? –
사실, cron은 매 60 초마다 내려갈 수 있습니다. – Thomas