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

Веб-приложение jruby, развернутое на сервере Glassfish, со временем замедляется

Я развернул военный файл своего приложения jruby на сервере Glassfish. Я заметил, что мое приложение со временем замедляется. У моего сервера 30 ГБ ОЗУ, но приложение все равно работает очень медленно.

Каждый метод ruby ​​в моем приложении создает массив, содержащий около 1 миллиона записей. Я думаю, что создание такого большого массива вызывает проблемы с памятью, и, следовательно, приложение становится медленным. если это правда, то какие настройки можно сделать, чтобы избежать такой проблемы с памятью.

Ниже мои настройки памяти для java

uintx AdaptivePermSizeWeight                    = 20              {product}
 intx CompilerThreadStackSize                   = 0               {pd product}
uintx ErgoHeapSizeLimit                         = 0               {product}
uintx HeapSizePerGCThread                       = 87241520        {product}
uintx InitialHeapSize                          := 1055640320      {product}
uintx LargePageHeapSizeThreshold                = 134217728       {product}
uintx MaxHeapSize                              := 16890462208     {product}
uintx MaxPermSize                               = 174063616       {pd product}
uintx PermSize                                  = 21757952        {pd product}
 intx ThreadStackSize                           = 1024            {pd product}
 intx VMThreadStackSize                         = 1024            {pd product}
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

Спасибо

Я рекомендую установить Xms16G Xms16G с параметром -server для производственной среды. Некоторые показатели необходимы, чтобы помочь идентифицировать проблему, предоставить эту информацию, когда сервер начинает замедляться:

Системная память для процессов Java (RSS вверху)

Размер PermGen (используйте jmc или jvisualm)

Размер CodeCahe (используйте jmc): возможно, проблема также связана с максимальным размером печати (java -XX: + PrintFlagsFinal | grep ReservedCodeCacheSize).