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:

Keine Kommentare:

Kommentar veröffentlichen