Я новичок в сборке мусора, пожалуйста, помогите мне получить ответы на мои следующие вопросы с четким объяснением
Я хочу найти приложение время приостановки и количество приостановок из файлов журналов GC для разных JVM:
- СОЛНЦЕ
- jRockit
- IBM
различных версий.
A. Для SUN я использую опции JVM
-Xloggc:gc.log -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+UseParNewGC -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode
B. Для JRockit я использую параметры JVM
-Xms100m -Xmx100m -Xns50m -Xss200k -Xgc:genconpar -Xverbose:gc -Xverboselog:gc_jrockit.log
Мои вопросы
Q1. Что такое время приостановки приложения и почему оно происходит.
Вопрос 2. Как узнать по журналам, что произошла приостановка.
Q3. Время приостановки приложения равно сумме GC Times.
Eg:
2013-09-06T23:35:23.382-0700: [GC 150.505: [ParNew Желаемый размер оставшегося в живых 50331648 байт, новый порог 2 (максимум 15) - возраст 1: 28731664 байт, всего 28731664 - возраст 2: 28248376 байт, всего 569:0040 688128K->98304K(688128K), 0,2166700 с] 697655K->163736K(10387456K), 0,2167900 с] [Times: user=0,44 sys=0,04, real=0,22 с]
2013-09-06T23:35:28.044-0700: 155.167: [GC 155.167: [ParNew Желаемый размер оставшегося в живых 50331648 байт, новое пороговое значение 15 (максимум 15) - возраст 1: 22333512 байт, всего 22333512 - возраст 2: 2746839018 байт, 48 всего: 688128K->71707K(688128K), 0,0737140 с] 753560K->164731K(10387456K), 0,0738410 с] [Times: user=0,30 sys=0,02, real=0,07 с]
Время приостановки = 0,2167900 сек + 0,0738410 сек
я. Если да, мне нужно добавить все время для каждого gc
II. Если нет, пожалуйста, объясните мне подробно для тех журналов, которые мы считаем, что произошла приостановка, а те, которые не учитываются для разных сборщиков с журналами
Q4. Можем ли мы сказать, что время GC "0,2167900 , 0,0738410" равно паузам GC, т.е. TotalGCPause = 0,2167900 + 0,0738410
Q5. Можем ли мы рассчитать время приостановки, используя только указанные выше флаги, или нам нужно включить дополнительные флаги, такие как -XX:+PrintGCApplicationStoppedTime
для SUN?
Вопрос 6. Я видел, как инструмент динамической трассировки вычисляет время приостановки и количество SUN без использования флага -XX:+PrintGCApplicationStoppedTime
.