ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
542
542
EMPFEHLEN
-
03.11.11 12:24 #1
- Registriert seit
- May 2008
- Ort
- Wermelskirchen
- Beiträge
- 25
Hallo zusammen,
ich überwache den Speicherverbrauch der JVM auf einem Java AS. Zu einem willkürlichen Zeitraum fällt der Speicherverbrauch der JVM plötzlich ab, ohne das es eine besondere Erklärung dafür gibt. Vorher schwankt der Verbrauch im Zickzack zwischen 1400 und 1750 MB. Nach dem Abfall schwankt er nur noch zwischen 900 und 1200 MB.
Kann mir jemand dieses Verhalten erklären?
-
03.11.11 12:27 #2
Hi,
also so ganz ohne Informationen (was läuft auf dem AS und wieviel), wird das schwer.
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
03.11.11 12:30 #3
- Registriert seit
- May 2008
- Ort
- Wermelskirchen
- Beiträge
- 25
Hi,
es ist ein SAP AS Java auf dem eine NetWeaver CE 7.2 Installation läuft. Das Verhalten taucht sowohl auf wenn ein Prozess läuft und andere Prozesse deployed werden als auch wenn kein Prozess läuft und nichts deployed wird. Die Java Version ist 1.5Geändert von anjepieft (03.11.11 um 12:33 Uhr)
-
03.11.11 12:50 #4
Mh... Das ist schwierig zu sagen. Ich vermute mal, dass die JVM in regelmäßigen Abständen den Chache von nicht mehr benutzten Dingen leert. Dass das allerdings so einen gewaltigen Speicherunterschied ausmacht, könnte ich mir eigentlich nicht vorstellen.
Fällt die Speichernutzung auch mal unter den Wert von 900MB-1200MB?Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
03.11.11 13:06 #5
- Registriert seit
- May 2008
- Ort
- Wermelskirchen
- Beiträge
- 25
Der niedrigste Wert liegt bei 867 MB. Das komische ist das der Verbrauch jetzt seit einer Stunde bei den niedrigen Werten schwankt und vorher die ganze Zeit bei den höheren Werten lag obwohl der selbe Traffic erzeugt wird...
-
03.11.11 13:08 #6
Es hat sich aber im Hintergrund nicht unwissentlich ein Programm geschlossen. Aufgrund von Exception oder Beendigung, etc.?
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
03.11.11 13:11 #7
- Registriert seit
- May 2008
- Ort
- Wermelskirchen
- Beiträge
- 25
Nein auch das ist nicht der Fall.
-
03.11.11 17:45 #8
- Registriert seit
- Jun 2009
- Beiträge
- 870
Vielleicht auch der GC?
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
07.11.11 08:30 #9
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
Spontan hört sich das so an, dass normalerweise nur kleine GC passieren (von den ersten 2 Speicherbereichen), aber irgendwann der große GC gemacht wird, wodurch alle Speicherbereiche angeschaut werden und somit auch die Objekte aufgeräumt weden, die es länger überlebt hatten.
Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
-
Mit der jconsole lässt sich auch die Anzahl Threads, Classes u.ä.m. überwachen. Erzeuge einmal vor dem Memory-Abfall mit der jconsole ein VM-Summary und nach dem Abfall nochmals ein VM-Summary und Vergleiche die Werte. Gibt es Unterschiede?
-
07.11.11 13:50 #11
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
Man kann auch das jvisualvm Tool aus deinem Oracle JDK verwenden. Dort gibt es ein GC-Plugin, was sehr genau die Daten zum GarbageCollector wiedergibt.
Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
-
07.11.11 17:34 #12
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
ich würde auch auf GC tippen... schalte doch mal das GC file logging ein.
Sun JVM:
-Xloggc:C:\Somefolder\jvm.log -verbose:gc -XX:+PrintGCDateStamps
und schau mit JVisualVM oder HP JMeter (https://h20392.www2.hp.com/portal/sw...umber=HPJMETER) oder Eclipse (SAP) Memory Analyzer drauf (http://www.eclipse.org/mat/)
Für SAP JVM switches schau hier:
http://help.sap.com/saphelp_nwce10/h...07/content.htm
https://forums.sdn.sap.com/message.j...sageID=4641316
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter





Zitieren

Login





