Posts mit dem Label SAP werden angezeigt. Alle Posts anzeigen
Posts mit dem Label SAP werden angezeigt. Alle Posts anzeigen

Dienstag, 26. Januar 2010

Microsoft 64 Bit Speicherverwaltung

Microsoft hat bei der x64 Implementierung ihrer Speicherverwaltung offensichtlich einiges verkackt. Offensichtlich haben sie die x64 Implementierung nicht richtig durchdesigned und einfach mal die normale 32 Bit Verwaltung genommen und aufgebohrt. Leider hat Microsoft dabei vergessen, dass das der System File Cache jetzt nicht mehr so limitiert ist wie früher *muahaha*. Ich erklärs mal kurz:

Der System Cache ist teil des Working Set und liegt im Kernel Address Space, der in jeden Prozess gemappt wird. (bei 32 Bit ist die der Kernel Address Space überlichweise 2 GB (bei /3GB in der Boot.ini liegt er sogar nur bei 1 GB!). Das war früher kein großes Problem, weil der Platz beschränkt war.

Bei 64 Bit gibt es hier auf einmal das Problem dass der Kernel Address Space faktisch keiner Limitierung mehr unterliegt. Das hat Microsoft offensichtlich vergessen: Beim Kopieren großer Files oder während Backups wächst der Cache jetzt ständig an - er hat ja keine Grenze mehr (bzw diese Grenze liegt so hoch dass sie das physical RAM übersteigt). Irgendwann ist alles RAM für den Cache aufgebraucht und andere Prozesse werden zum pagout gezwungen und die Performace bricht dramatisch ein.

Deshalb haben dann so unwesentliche Systeme wie SAP (die man meist auf x64 laufen lässt) auf einmal so massive Performanceprobleme, wenn ein Backup läuft (oder auch einfach mal so im Lauf der Zeit). SAP supported deshalb übrigens CRM nur noch auf Unix und nicht auf Windows x64.


SAP:
MS:

Mittwoch, 7. Oktober 2009

TREX

Kennt ihr TREX? Das ist die Search Enginge von SAP und die ist voller Bugs. Schon immer. SAP findet daran auch nichts blödes, und ein Bug hindert sie auch nicht eine neue TREX Revision rauszubringen.

Neulich hab ich sogar von einem SAP Support'ler (schriftich!) bestätigt bekommen, dass Rev. 34 released wurde obwohl SAP weiß, dass sie einen Bug enthält. (Trex Preprocessor Filter sind kaputt und manche Dokumente können nicht geparsed werden). Grund: SAP programmiert die Dinger nicht selbst sondern kauft bei Oracle zu. Ist ja schon fast fahrlässig ein Release zu publishen von dem man weiß dass es kaputt ist, das Quality Management (sofern vorhanden) hat da ja mal total versagt...

Mittwoch, 9. September 2009

java.lang.outOfMemory und SAP Netweaver

Mich wollte neulich jemand davon überzeugen, dass die J2EE engine von SAP (EP 7.0 auf x64 VM von Sun) zwangsläufig crashed und restarted wird sobald sie auf einen OutOfmemory error läuft, weil Out of Memory Errors ja so schlimm, "da geht gar nix mehr!".

Ich musste richtig dagegen halten um ihn vom Gegenteil zu überzeugen (wahrscheinlich glaubt er es auch heute noch nicht), aber dem ist NICHT so.
  • Erstens weil wir hier ungefähr 10000 dieser OutOfMemory Errors sehen, wo definitiv nichts restarted wird
  • Zweitens, weil ein OOM eigentlich ein normaler Fehler ist, der (wenn er richtig behandelt wird) auch nicht zum Problem wird.

Es scheint irgendwie common sense zu sein, dass die halbe Welt glaubt dass man mit Java unbegrentzt Objekte zaubern kann - bei einem malloc in C/C++ muss doch auch darauf gefasst sein, dass man mal kein Memory mehr bekommt!

Naja, ich habe besagtem Kollegen dann versucht zu erklären dass es sein könnte dass ein Programm den Fehler berücksichtigt, die OOM Exception fängt und aufgibt. Danach kann der Garbage Collector dann aufräumen weil die Objekte nicht mehr referenziert werden. Die Antwort: *seufz* "OOM Errors kann man nicht fangen".

Lieber Senior Consultant (oder was-auch-immer Kollege), schau bitte hier und wirf deine alten Java Mythen über Bord. Wenn man keine Ahnung hat einfach mal...

http://www.velocityreviews.com/forums/t146111-catching-an-outofmemoryerror.html

http://www.google.de/search?source=ig&hl=de&rlz=&q=Java+Catch+out+of+memory+exception+&meta=lr%3D&aq=f&oq=