Speicherleck erzeugen

Status
Nicht offen für weitere Antworten.

Mork

Mitglied
Hallo,

ich hab ein Performance-Problem zu lösen und versuche dieses grad nachzustellen. Hat irgend jemand eine Idee, wie man innerhalb von 10sek ca 300MB in den Speicher schreiben kann? Genau so sieht nämlich das GarbageCollection log aus. Die GC räumt dann mit einem Schlag 300MB aus dem Speicher, 10sek später sind wieder 300MB im Speicher, das geht dann so alternierend vor sich her. Ich hab keine Idee wie man 300MB adhoc in 10 Sek erzeugt. Ihr?
 

KSG9|sebastian

Top Contributor
Wow..aber mal was anderes: Lasst ihr immer eine Full-GC laufen? Konfiguriert mal den GC so dass er das nicht tut, sonst steht eure Anwendung nämlich früher oder später für n paar Sekunden still.
Warum eigentlich reproduzieren? Such die Anwendung welche das tut und schau dir den Code an :)
 

Mork

Mitglied
Was meinst du mit Full-GC und für ein paar Sekunden Still stehen?

Die Fehler treten in einem Live-System auf (sporadisch). Die Webanwendung ist extrem komplex, so dass man nicht durch einfaches drüber schauen die verursachende Stelle finden kann. Wir haben nun versucht das Problem lokal zu reproduzieren, bisher ohne Erfolg. Ich wollte nun mal was spinnertes coden was genau so krasse Probleme erzeugt.
 

KSG9|sebastian

Top Contributor
Also innerhalb von 10sec 300MB kann ich mir fast nicht vorstellen. Für n paar Sekunden Stillstehen mein ich dass der GC soviel Last erzeugt dass die VM für ne Weile hängt. Hatten wir auch mal, war ne "Fehlkonfiguration des Garbage Collectors".

Sporadischer Fehler..und dann so krass. Einen XML-Baum erzeugen frisst z.B. speicher. Aber 300MB in 10Sekunden. Das wären 30MB/Sekunde, also ein ganz schöner Hammer. Aber angenommen das passiert aufgrund eines IO-Zugriffs müsste die HDD 30MB/Sekunde hergeben. Was u.U. schon ne ganze Menge ist, jenachdem wo die Webanwendung läuft. Glaub mit popligem String erzeugen wirste da nicht hinkommen :)
Habt ihr mal die VM überprüft? Hängt der GC irgendwo?

Gruß
 

Mork

Mitglied
Also die Kiste hängt definitiv wenn das Problem auftritt. Die GC ist eben die ganze Zeit damit beschäftigt den Speicher leer zu bekommen, das gelingt auch, doch dann steigt es sofort wieder an. Wie hattet ihr denn die GC falsch konfiguriert?

Selbst mit nem Programmierfehler und ner dummen Schleife, kann ich mir auch nicht erklären wie man von jetzt auf gleich sowas produzieren soll. Das System läuft ganz normal mehrere Stunden, dann machsts bumm und die Show geht los.

Auf dem Server läuft ImageMagick zum Skalieren der Bilder. Da gibts ja immer wieder mal HeapOverflow Exploits. Wäre das damit zu erklären? Also das ein User so ein Schadbild über die Webmaske hochläd und das System dann so abgeht? Wo könnte man denn solche Bilder zum Testen herbekommen?
 

Azrahel

Bekanntes Mitglied
Ähh Mork, ein 300MB Schadbild übers Netz hochzuladen geht glaub ich in 10 sec nicht, oder täusch ich mich da?

Ich weiss ja nicht was ImageMagick bei euch macht, aber was ist wenn er ein kleineres Hochläd und das bei euch hochskalieren lässt, ist das möglich?
 

Azrahel

Bekanntes Mitglied
ne, ich meinte doch umgekehrt :? Wie gesagt ich weiss nicht was ImageMagick macht, deswegen weiss ich icht ob mein Gedanke richtig war. Aber es war halt mal ein lieb gemeinter Gedanke (im Gegensatz zu denen die ich sonst so hab *gg*)
 

Der Müde Joe

Top Contributor
egal :) ... kenne ImageMagick gar nicht...
kenn nur solche Probleme mit sehr grossen Bildern...
einfach zu provozieren mit zB Windows(OS).paint Dings....
Bild vergrössern und ab so ca 3000^2 pixeln sind 200MB gefressen
...aber wird umgekehrt sicher genau gelich sein...
 

Azrahel

Bekanntes Mitglied
Jupp, das Prob hatte Paint ja mal, IMO hamse das gefixed. Aber wenn dem Mork jemand ein 5000 * 5000 Pixel Bild mit am besten noch 320 pdi hochschiebt hat der der das macht ersten ne dicke InternetLeitung und zweitens mächtig langeweile um auf so Ideen zu kommen. Eher denk ich mir das jemand ein 100*100 bild hochschiebt und das dann von Morks ImageMagik vergrössern lässt. dann wär ja auch die rechenleistung auf dem Server.

Bestialisch wär natürlich ein 5000*5000*320dpi grosses Bild hochzuladen und das dann noch hochrechnen zu lassen*g*

Wie issn die url, Mork? :D
 

Mork

Mitglied
Ähh Mork, ein 300MB Schadbild übers Netz hochzuladen geht glaub ich in 10 sec nicht, oder täusch ich mich da?
So funktioniert das auch nicht. Es werden bei solchen Exploits keine 300MB hochgeladen die dann zu nem Stack/Heap Overflow führen, sondern Bilder die Schadcode enthalten, die dann den Stack/Heap überlaufen lassen.

ImageMagik kann es aber nicht sein, da ImageMagik nicht innerhalb der VM läuft. War mein Denkfehler.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Speicherleck? Allgemeine Java-Themen 7
P Speicherleck Allgemeine Java-Themen 21
T Verflixtes Speicherleck . Allgemeine Java-Themen 7
Zrebna Aus einer jar-Datei eine exe-Datei erzeugen lassen Allgemeine Java-Themen 37
W Aggregierter JaCoCo.exec erzeugen Allgemeine Java-Themen 0
I Module-Info für Jar erzeugen Allgemeine Java-Themen 7
S Klickbare Stacktraces selber erzeugen..? Allgemeine Java-Themen 9
I OpenPDF (ehem. iText) will kein PDF mit CMYK only erzeugen Allgemeine Java-Themen 6
J Runable jar erzeugen Allgemeine Java-Themen 2
O Wie kann ich in Apache POI (Excel Dateien schreiben) Datumszellen in Excel erzeugen Allgemeine Java-Themen 6
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
temi Valides Dreieck erzeugen Allgemeine Java-Themen 6
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
dereki2000 Windows Benachrichtigung erzeugen Allgemeine Java-Themen 2
J In einem Set doppelte Elemente erzeugen Allgemeine Java-Themen 4
F Objekte erzeugen Allgemeine Java-Themen 1
M Variabe a[i] erzeugen Allgemeine Java-Themen 8
Meeresgott Kapselung Tabellen der Datenbank erzeugen. Allgemeine Java-Themen 7
Thallius String erzeugen sehr langsam Allgemeine Java-Themen 16
L ICS-Kalenderdatei aus PDF erzeugen Allgemeine Java-Themen 0
A Jasper Report Performance bei PDF erzeugen Allgemeine Java-Themen 0
F Java Spintax: Alle Kombinationen Erzeugen Allgemeine Java-Themen 2
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
H Vektor rekursiv erzeugen Allgemeine Java-Themen 2
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
V 2D-Grafik BufferdImage aus gif Datei in Jar erzeugen geht nicht. Allgemeine Java-Themen 6
R Aus Eclipse Projekt ein UML erzeugen Allgemeine Java-Themen 3
G Texte erzeugen Allgemeine Java-Themen 3
R Großes Hash-Set erzeugen Allgemeine Java-Themen 12
P Excel-Sheets erzeugen aus Report Allgemeine Java-Themen 2
Ollek Barcode mit Barcode4J erzeugen - Exception Allgemeine Java-Themen 4
P Arrays erzeugen Allgemeine Java-Themen 5
G Strings erzeugen Allgemeine Java-Themen 20
C QR-Codes erzeugen. Allgemeine Java-Themen 43
M Input/Output Datei erzeugen funktioniert nicht (immer) vom .jar aus Allgemeine Java-Themen 5
T "Platzsparende" und "schnelle" Indizes erzeugen Allgemeine Java-Themen 10
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
E Objekt beim Erzeugen in ArrayList Allgemeine Java-Themen 9
D 2D-Grafik Funktionierende .jar datei mit Images (jpg) erzeugen Allgemeine Java-Themen 2
S Schnell eine fortlaufende nummer erzeugen SQL, kein Primkey Allgemeine Java-Themen 8
M Graphen erzeugen und visualisieren, jgraph oder was was anderes? Allgemeine Java-Themen 2
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
Y Eclipse ppt Folie erzeugen + text plazieren Allgemeine Java-Themen 4
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
S Algorithmus um Labyrinth zu erzeugen Allgemeine Java-Themen 6
A HashCode von DatagrammPacket(content) erzeugen. Allgemeine Java-Themen 3
A auführbare Jar erzeugen mit ant Allgemeine Java-Themen 5
D Browser-Objekt erzeugen Allgemeine Java-Themen 8
Developer_X Java ton erzeugen Allgemeine Java-Themen 3
D character kodierung, barcode für barcode font erzeugen Allgemeine Java-Themen 4
D Worddocumente erzeugen Allgemeine Java-Themen 4
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
A Dummy-Objekte für Webgui erzeugen Allgemeine Java-Themen 12
S JUnit: Erzeugen einer IOException Allgemeine Java-Themen 9
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
A AES Key aus Text erzeugen Allgemeine Java-Themen 2
G JFrame Icon selbst erzeugen Allgemeine Java-Themen 2
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
F Klasse vorhanden - wie daraus Objekt erzeugen Allgemeine Java-Themen 8
C PDF erzeugen Allgemeine Java-Themen 3
Landei Objekte ohne Konstruktoraufruf erzeugen Allgemeine Java-Themen 7
F Zufallszahl erzeugen Allgemeine Java-Themen 4
P Objekt einer Klasse erzeugen, die als String vorliegt Allgemeine Java-Themen 3
multiholle Objekt einer Klasse anhand eines String erzeugen Allgemeine Java-Themen 3
M odt-Datei erzeugen Allgemeine Java-Themen 6
G File zur Laufzeit erzeugen Allgemeine Java-Themen 4
G Windows Pipe erzeugen Allgemeine Java-Themen 12
A Wie eine Seriennummer erzeugen und auswerten? Allgemeine Java-Themen 11
G erzeugen von "ArrayList<Integer>[][]" Allgemeine Java-Themen 7
T Log4J: Bei Programmstart immer eine neue LogDatei erzeugen Allgemeine Java-Themen 9
S Zweidimensionales Array neue Zeile erzeugen Allgemeine Java-Themen 3
A Objekt in einem Array erzeugen Allgemeine Java-Themen 6
Q Objekte durch Reflection erzeugen Allgemeine Java-Themen 18
V Enums aus Datei-Einträgen erzeugen? Allgemeine Java-Themen 6
M KML Datei automatisch erzeugen Allgemeine Java-Themen 3
H Problem mit erzeugen eienr neuen Session Allgemeine Java-Themen 3
G zweierKompliment erzeugen Allgemeine Java-Themen 12
L Objekt erzeugen Allgemeine Java-Themen 2
R Jasper iReport erzeugen Allgemeine Java-Themen 7
MQue über iBatis Tabellen erzeugen Allgemeine Java-Themen 4
V Aus String -> Objekt einer Klasse erzeugen Allgemeine Java-Themen 7
P UML erzeugen Allgemeine Java-Themen 3
M wav datei/ ton erzeugen Allgemeine Java-Themen 4
M eigenen Desktop erzeugen Allgemeine Java-Themen 3
S Asymmetrisches Array dynamisch erzeugen Allgemeine Java-Themen 4
T Objekte dynamisch über eine Methode erzeugen Allgemeine Java-Themen 10
X PowerPoint Files in Java erzeugen Allgemeine Java-Themen 2
M File im memory erzeugen Allgemeine Java-Themen 5
R Object Dynamisch erzeugen (Reflection API) Allgemeine Java-Themen 22
B Grafik erzeugen in java Allgemeine Java-Themen 2
P Image erzeugen Allgemeine Java-Themen 7
S Uml erzeugen (nicht: JavaCode-Erzeugung) Allgemeine Java-Themen 4
G Reflection objekt mit generics erzeugen Allgemeine Java-Themen 5
L iText: Mehrseitiges PDF erzeugen Allgemeine Java-Themen 9
G UML automatisch erzeugen lassen Allgemeine Java-Themen 2
S Demoversion erzeugen? Allgemeine Java-Themen 17
H In Testklasse Objekte erzeugen und in einer Schleife ausgebe Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben