Mam aplikację JRuby on Rails, która działa w Tomcat (Warble). Używa mostu Java, aby połączyć się z serwerem aplikacji Progress (OpenEdge) ... Kiedy monitoruję pamięć, ciągle rośnie.Dlaczego pamięć nie jest nigdy dostępna w mojej aplikacji Tomcat JRuby?
- Tomcat 7,0
- JRuby 1.6.7.2 (Rubin-1.9.2-P312)
- JVM 1.7.0.25
- szyn 3.2.7
- jruby stelaża 1.1.7
- warbler 1.3.6
Jaki jest najlepszy sposób, aby dojść do sedna problemu? Sądzę, że mogą to być obiekty JRuby, które nie zostały oczyszczone, lub coś w mostku Java lub Garbagerze, który nie wykonuje swojej pracy ...
Nawet jeśli pozwolę, aby proces trwał pół godziny , pamięć nie znika ...
- Czy istnieje sposób na sprawdzenie, które Obiekty są żywe?
- Czy są dostępne bezpłatne narzędzia, dzięki którym mogę uzyskać więcej informacji o tym, kto używa całej pamięci?
Nawiasem mówiąc, mam już skonfigurowany serwer Tomcat do korzystania z większej ilości pamięci, ale to tylko opóźnia się błąd przestrzeń sterty ...
EDIT: Co ja faktycznie widząc, że używa tylko Tomcat cała pamięć, którą może maksymalnie wykorzystać (maksymalna ilość pamięci). I nigdy go nie uwalnia. Może to po prostu normalne zachowanie ... Ustawiłem teraz na maksimum 256 MB, aw Menedżerze zadań pamięć pozostaje na poziomie około 256 MB.
EDIT:
Podczas tworzenia zrzutu sterty i pozwalając zaćmienie analizować go z Eclipse Memory Analyzer to jest raport Dostaję. Myślę, że to normalne, gdyż narzędzie prawdopodobnie nie spodziewa się całą historię JRuby ...
Problem Suspect 1
6,458 przypadki „org.jruby.RubyClass”, ładowane przez „org.apache. catalina.loader.WebappClassLoader @ 0x700ec6988 "zajmują 56.969.616 (31,78%) bajtów.
Słowa kluczowe org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 org.jruby.RubyClass
Problem Suspect 2
10,597 przypadki „org.jruby.internal.runtime.methods. DefaultMethod ", ładowane przez" org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 "zajmują 22.182.112 (12,37%) bajtów.
Słowa kluczowe org.jruby.internal.runtime.methods.DefaultMethod org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988
problem podejrzanego 3
3.144 przypadkach "org.jruby.RubyModule", obciążonego "org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988" zajmują 21.226.816 (11,84 %) bajtów.
słowa kluczowe org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 org.jruby.RubyModule
problem podejrzanego 4
8,888 powtórzenia "org.jruby.MetaClass", załadowanych przez " org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 "zajmują 18.563.784 (10,35%) bajtów.
Słowa kluczowe org.jruby.MetaClass org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988
Jaki jest konkretny problem? Czy zabrakło Ci pamięci? Jaką wersję JRuby? Jaka wersja Rails? Itd. Nie ma "3.7" żadnego z nich. –
Specyficzny problem: ERROR Java Heap Space. W dziennikach nie było więcej informacji. –
Zaktualizuję moje pytanie do wszystkich konkretnych wersji. –