Назад | Перейти на главную страницу

Периодическое зависание веб-приложения Tomcat

У меня есть веб-приложение Grails (просто стандартный файл war), развернутое на сервере Ubuntu 10.10, работающем на tomcat 6. Моя база данных - postgresql.

Проблема в том, что время от времени (один или два раза в день после бездействия), когда я пытаюсь войти в это веб-приложение, оно просто зависает. Я могу перейти на страницу входа в систему, но когда я пытаюсь войти в систему (первый раз, когда БД поражается, может быть ключом ..?), Приложение просто зависает на неопределенный срок, код ответа 500 ... браузер просто ждет и ждет.

Я выполнил подробные инструкции Вот

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

Когда приложение зависает, вывод кучи jmap ...

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 536870912 (512.0MB)
   NewSize          = 21757952 (20.75MB)
   MaxNewSize       = 87228416 (83.1875MB)
   OldSize          = 65404928 (62.375MB)
   NewRatio         = 7
   SurvivorRatio    = 8
   PermSize         = 21757952 (20.75MB)
   MaxPermSize      = 85983232 (82.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 19595264 (18.6875MB)
   used     = 11411976 (10.883308410644531MB)
   free     = 8183288 (7.804191589355469MB)
   58.23843965562291% used
Eden Space:
   capacity = 17432576 (16.625MB)
   used     = 9249296 (8.820816040039062MB)
   free     = 8183280 (7.8041839599609375MB)
   53.05754009046053% used
From Space:
   capacity = 2162688 (2.0625MB)
   used     = 2162680 (2.0624923706054688MB)
   free     = 8 (7.62939453125E-6MB)
   99.99963008996212% used
To Space:
   capacity = 2162688 (2.0625MB)
   used     = 0 (0.0MB)
   free     = 2162688 (2.0625MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 101556224 (96.8515625MB)
   used     = 83906080 (80.01907348632812MB)
   free     = 17650144 (16.832489013671875MB)
   82.62032270912317% used
Perm Generation:
   capacity = 85983232 (82.0MB)
   used     = 62866832 (59.95448303222656MB)
   free     = 23116400 (22.045516967773438MB)
   73.1152232100324% used

Кто-нибудь знает, что такое "From Space:"?

Есть идеи по дальнейшим поискам неисправностей? У меня нет большого опыта в поиске неисправностей такого типа.

Ваша задержка звучит слишком долго, чтобы иметь отношение к gc. Я бы добавил код инструментария на страницу входа и измерил такие вещи, как база данных и отклик страницы. Затем воспроизведите проблему вручную или с помощью инструмента нагрузочного тестирования, такого как Grinder.

Кроме того, что вы спрашиваете об этом? Выделенное оборудование или виртуальная машина?

HTH!

Том Перл