Java VM перестает отвечать на запросы после теста Jetty на EC2, одно ядро ​​на 100% - PullRequest
0 голосов
/ 31 августа 2011

Мы проводим некоторые тесты дыма на наших системах EC2, и иногда виртуальная машина перестает отвечать на запросы, в то время как 1 ядро ​​вращается на 100%, все остальные ядра на этом этапе равны 0%. Это не разрешает дальнейшие соединения (RMI, JMX, HTTP-запросы к Jetty, все отказывают).

Информация:

  • Экстра большой экземпляр с высокой загрузкой процессора (тип экземпляра c1.xlarge)
  • Java (TM) SE Runtime Environment (сборка 1.6.0_22-b04)
  • Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 17.1-b03, смешанный режим)

Кто-нибудь испытывал что-то подобное раньше? Любая информация будет высоко ценится, спасибо!

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Мы нашли проблему.Мы заметили, что некоторые экземпляры в нашем кластере всегда создавали проблему, а некоторые - никогда.Очевидно, эта проблема уникальна для экземпляров, которые используют более поздние версии ЦП в сочетании с немного устаревшими ядрами.

Здесь полностью объясняется проблема: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/727459

Поскольку время работы увеличивается, показываются скачкина приведенном ниже графике становится все длиннее и длиннее, возможно из-за сдвига во времени, и в какой-то момент он будет долго вращаться на одном ядре.

Графики использования процессора.Затрагиваемый экземпляр против незатронутого:

Cpu usage graphs. Affected instance versus unaffected

Эта проблема была недавно исправлена, поэтому обновление ядра исправило эту проблему для нас.

0 голосов
/ 01 сентября 2011

Я уже сталкивался с этой проблемой в Jetty (хотя такой же опыт можно было бы сделать с любым Java-процессом), и это происходит, когда вы не выделяете достаточно памяти для JVM: все ваши ресурсы фактически используются сборщиком мусора который проходит по графу объектов для того, чтобы вернуть те, на которые нет ссылок. Если вы подождете достаточно долго (в моем случае это иногда занимает несколько минут), вы должны увидеть сбой JVM в исключении OutOfMemoryException.

...