У меня есть веб-приложение, развернутое на сервере Oracle App Server 10.1.3, в oc4j, запущенном с начальной кучи 1 ГБ и максимальной кэш-памятью 2 ГБ, на RHEL на 32-битной, настроенной на просмотр 32 ГБ ОЗУ.В последнее время я сталкивался с ошибками OutOfMemory, поэтому я настроил приложение для создания дампов кучи в OutOfMem.Таким образом, у меня есть 4-5 дампов кучи, каждый размером не более 1,2 Гб (так что 800 Мб меньше максимального размера кучи).Кроме того, при бесплатной загрузке на компьютере в среднем часы показывают около 20 ГБ свободной памяти.
Означает ли это, что приложение пытается выделить 800 МБ за один раз?Или, если есть 2 или более потоков, которые пытаются выделить память одновременно, они оба перестают работать, даже если, скажем, есть память для каждого, но не для суммы обоих?Может ли быть pb с машиной Linux, может быть, он не может дать память для Java?Может ли быть фрагментирована память, может быть, конфигурация, которая позволяет 32-битной машине видеть 32 Гб оперативной памяти, имеет pb?
(я должен отметить, что приложение не изменилось в последнее время, но на этой машине новаяoc4j и новое приложение было развернуто laely, и это съедает 1-2 г оперативной памяти)