OS-Optimierungen für Flash-SSDs

Hab ich so gemacht. Und ich hab auch noch die Auslagerungsdatei auf die RAMDisk gelegt. Wofür sind denn die ganzen Schieberegler da? Habs in der Hilfe nachgelesen aber begreife es nicht wirklich :confused: ca 920MB sind im Moment voll auf der RAMDisk
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich nen Alten Laptop(P MMX 266 32MB Ram) mit nem IDE Flash Modul von Transcend ausgrüstet jetzt würde ich darauf gerne NT 4.0 installieren(alternativ auch Windows 95)
Gibts da eine möglichkeit bei den OS die Schreibzugriffe zu minimieren?
Oder hat nur z.B. Windows NT 4.0 embedded auch dementsprechende optionen?

Win95 schrippt ganz wenig mit sich selbst, das würde sich anbieten.
Die Temp-Sachen (über die Autoexec.bat) sind dort aber auch enthalten.
Bei NT4 funktionieren auch einige der Tips. Z.b. auch das mit dem TEMP-Variablen oder das Systemlogging minimieren oder umbiegen.

Hab ich so gemacht. Und ich hab auch noch die Auslagerungsdatei auf die RAMDisk gelegt. Wofür sind denn die ganzen Schieberegler da? Habs in der Hilfe nachgelesen aber begreife es nicht wirklich :confused: ca 920MB sind im Moment voll auf der RAMDisk

Auslagerungsdatei auf die Ramdisk? Naja.
Mach doch mal bitte nen Screen und markiere darauf die Regler die Du nicht verstehst.
 
Zuletzt bearbeitet:
Keine gute Idee? Ok hab sie wieder auf die SSD verschoben. Aufgefallen is mir dass mit der Auslagerungsdatei auf der RAMDisk glaub ich kein Standby mehr möglich war, gab nen BSOD. Zumindest glaub ich dass das schuld war.

Im Prinzip alles unter Konfiguration:
 
Die Regler sind interessant für Leute die nur ein 32-Bit-OS haben, weil Du doch da die 4GB-Grenze hast. Du kannst dort genauer einstellen woher der Speicher für die Ramdisk her genommen wird. Interessiert 64-Bit-User nicht.
 
Gilt der Punkt mit Partitionen auf einem 128/256k-Block starten lassen eigentlich nur für Raids oder oder bei einer einzelnen SSD?
Wär vielleicht gut wenn man diesen Punkt mit 1-2 kernigen Sätzen erläutern würde...
 
antiram: wie sieht fdisk -lu auf deiner ocz aus?
Wenn ich das richtig verstehe hast du vorne 8MB - MBR (512byte, kbyte?) frei.
 
rally2 war grad ganz normal formatiert weil ich im Copyshop damit war. (edit: da war eine Partition drauf die bei Sektor 8192 begann mit Fat32, gab aber keine Probleme im Copyshop mit Windows oder Mac)

Habs nochmal gemacht mit 8MB Alignment.
1. Partition 200MB = (200*1024*1024)/512=409600 Sektoren. 200MB ist durch 8 ganzzahlig teilbar. Soll beginnen bei Sektor 16384, soll enden bei Sektor 409600+16383=425983
2. Partition ab 208MB von Sektor 425984 bis Ende

so gemacht
Code:
root@locutus:~# fdisk -u /dev/sdd

Befehl (m für Hilfe): n
Befehl  Aktion
   e      Erweiterte
   p      Primäre Partition (1-4)
p
Partitionsnummer (1-4): 1
Erster Sektor (62-7831551, Vorgabe: 62): 16384
Last Sektor, +Sektoren or +size{K,M,G} (16384-7831551, Vorgabe: 7831551): 425983

Befehl (m für Hilfe): n
Befehl  Aktion
   e      Erweiterte
   p      Primäre Partition (1-4)
p
Partitionsnummer (1-4): 2
Erster Sektor (62-7831551, Vorgabe: 62): 425984
Last Sektor, +Sektoren or +size{K,M,G} (425984-7831551, Vorgabe: 7831551): 
Benutze den Standardwert 7831551

Befehl (m für Hilfe): p

Platte /dev/sdd: 4009 MByte, 4009754624 Byte
124 Köpfe, 62 Sektoren/Spuren, 1018 Zylinder, zusammen 7831552 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Disk identifier: 0x25d5d54f

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdd1           16384      425983      204800   83  Linux
Partition 1 endet nicht an einer Zylindergrenze.
/dev/sdd2          425984     7831551     3702784   83  Linux
Partition 2 endet nicht an einer Zylindergrenze.

Befehl (m für Hilfe): w
Die Partitionstabelle wurde verändert!

Rufe ioctl() um Partitionstabelle neu einzulesen.
Synchronisiere Platten.
ergibt dann mit fdisk -lu
Code:
root@locutus:~# fdisk -lu /dev/sdd

Platte /dev/sdd: 4009 MByte, 4009754624 Byte
124 Köpfe, 62 Sektoren/Spuren, 1018 Zylinder, zusammen 7831552 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Disk identifier: 0x25d5d54f

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdd1           16384      425983      204800   83  Linux
Partition 1 endet nicht an einer Zylindergrenze.
/dev/sdd2          425984     7831551     3702784   83  Linux
Partition 2 endet nicht an einer Zylindergrenze.
 
Zuletzt bearbeitet:
Das vmware doc hab ich nur gepostet weil dort die Bedienung der Programme erklärt wird. Die Bedienung ist für einzelne SSDs gleich.

Ich hab das alte Post überarbeitet. Ist es jetzt verständlich?
http://www.forumdeluxx.de/forum/showthread.php?p=10371389#post10371389

Etwas mehr, ja. Vielleicht könntest du kurz noch den Begriff "Alignment" erläutern: heißt das einfach dass man eine SSD/HDD zwingt eine Partition an einer gewissen Stelle beginnen zu lassen, in Abhängigkeit der "Erase-Blocks"?
Hat das schon jemand mit einer Mtron Mobi in Verbindung mit NTFS-Dateisystem getestet? Sind hier die Performance-Gewinne ähnlich hoch wie beim Linux-Dateisystem? Welche SSD hast du verwendet, eine OCZ V1?
 
Genau so hab ich das auch verstanden.
Damit verhinderst Du das bei einer Schreib-Aktion gezwungenermaßen zwei Blöcke gelesen, gelöscht und neu geschrieben werden.
 
bei kleinen Dateien (9-15k) ist ntfs 12% schneller auf meinem stick (ocz rally2 4GB mlc) mit 4MB alignment im Vergleich zu einer normalen Partition (die bei Sektor 63) beginnt.

bei großes Dateien (0,1-3MB) 2,5% langsamer

ist aber mit der ntfs Implementierung von Linux getestet.

heißt das einfach dass man eine SSD/HDD zwingt eine Partition an einer gewissen Stelle beginnen zu lassen, in Abhängigkeit der "Erase-Blocks"?
ja
 
Zuletzt bearbeitet:
Hier mal eine Antwort von Superspeed.

Frage:
Good afternoon from Germany,

I have question about the Ram usage of RamDisk Plus.

System:

WinXP Pro 32(bit)
ASUS P5Q-E
4 GB Ram
X-FI Extreme Music
8800GTS 640MB

Now I would like to buy RD Plus. At on Your HP there is a description that I could use the Ram that is above 3,5 GB. If I install 4 GB more of Ram, I would have 8 GB Ram. Could I use the rest of 4,5 GB for a RamDisk? Where is the limit?

Thank You for Your help

Sincerely Yours

hugaduga

Antwort:
Hello hugaduga,
Good Morning from America!
Thank you for taking the time to evaluate our software.

That is correct! We are very proud of the unique capabililty. Please tell all your friends!
You could probably make a 6.5 to 7.25GB RamDisk but that depends on how much free RAM your system has.

Regards,
Michael Horniak
SuperSpeed LLC
 
Genau das wollte ich von den Leuten bei Superspeed auch wissen, habe ihnen dann 2x gemailt aber bis heute keine Antwort bekommen. Danke für die Info.
 
[*]Auslagerungsdatei verlagern
[...]
Das liegt einfach daran das ein 32-Bit-Programm von seinen 4GB virtuellem Speicher sowieso nur 1,8GB physikalisch nutzen kann, braucht es mehr geht dieser Teil in die Swapdatei.
Warum sollte das so sein?

Ein 32-Bit Programm im 32-Bit Windows OS hat maximal 2GB virtuellen Speicher. Mit dem Linker flag /LARGEADDRESSAWARE übersetzt, kann es 3GB virtuellen Speicher nutzen, wenn auch noch der /3GB Bootswitch (bzw. increaseuserva in BCDEDIT) mitspielt.

Wer aber die Auslagerungsdatei deaktivieren möchte, hat im Moment vermutlich eh >4GB. Sprich, wenn es ein Windows OS ist, hat er eine 64-Bit Version wie z.B. Vista 64-Bit. Dort hat jede Anwendung mit obigem Compileswitch dann 4 GB:
http://msdn.microsoft.com/en-us/library/aa366778.aspx

Wieviel Virtueller Adresspeicher von einer Anwendung adressiert werden kann (s.o. 2-4GB) hat natürlich nichts damit zu tun welche 4k Pages davon im Physikalischen Speicher liegen und welche im Swapfile. Vielmehr ist das Sache des Betriebssystem hier nach Zugriffsmustern zu entscheiden welche Pages ins Swapfile kommen und welche nicht. Dies im Gleichgewicht mit konkurrierenden Diensten wie z.B. Windows Datenträgercache und Superfetch, die prinzipiell so viel physikalischen Speicher haben wollen wie sie kriegen können.

Woher die 1,8GB Einschränkung kommen soll ist mir schleierhaft. Im Microsoft Jargon heißt die Menge an pages, die im physikalischen Speicher liegen, und einem Prozess gehören das Working Set. Ich kenne solche Einschränkungen nicht für das Working Set. Darüberhinaus gibt es auch eine API gibt um noch schneller und einfacher Speicher jenseits der 2GB anzusprechen (AWE) und explizit physikalischen Speicher (non-paged) zu fordern:
http://msdn.microsoft.com/en-us/library/aa366527(VS.85).aspx
Somit ist es ein leichtes für Anwendungen >1,8GB physikalisch anzusprechen.
--

Die Auslagerungsdatei zu deaktivieren ist möglicherweise auch bei 8GB Hauptspeicher nicht die beste Idee. Manche Anwendungen gehen verschwenderisch mit Hauptspeicher um (*), da ist es günstiger die Seiten wegzupagen u. den physikalischen Speicher für sinnvollere Dinge zu verwenden (und wenn es Superfetch ist). Angeblich soll sich Photoshop auch beschweren, wenn die Auslagerungsdatei deaktiviert ist.

Ich stimme also zu, dass das Auslagerungsdatei deaktivieren nicht unbedingt gut ist. Die Begründung mit den 1,8GB höre ich hingegen zum ersten Mal u. hätte gerne einen Link zum Nachlesen zu dem Thema. Auch wenn's Offtopic ist.

(*) entweder weil sie zu viel Speicher vorausschauend allokieren, ihn aber nicht nutzen. Oder aufgrund von Speicherleaks, die in C(++) schnell auftreten können wenn nicht sorgfältig analysiert und bei größeren Projekten Toolgestützt überprüft.
 
Zuletzt bearbeitet:
Kann mir jmd erklären, warum Windows (Vista x64) trotz ausreichend Ram (4GB) auf pagefile.sys schreibt und davon liest?
Ich hab nun wie HisN auf I-Ram ausgelagert. Frage mich aber trotzdem, ob es nicht besser wäre auf 8GB aufzurüsten (kosten unter 60€) und dann pagefile.sys auf die Software-Ramdisk auszulagern. Immerhin wäre das x-fach schneller als I-Ram.

hc_4530mev.jpg
 
Zuletzt bearbeitet:
Kann mir jmd erklären, warum Windows (Vista x64) trotz ausreichend Ram (4GB) auf pagefile.sys schreibt und davon liest
4GB nennst Du ausreichend für Vista x64? Das ist ja weniger als 3,5GB unter Vista 32-Bit...

Selbst mit 8GB würde Vista pagen. Er tut es aus folgendem Grund:
. Geht Dir der Speicher aus, so müsste er erst speicher auf HDD auslagern (= langsam) und dann kann der freigewordene genutzt werden.

Windows ist schlauer und geht wie folgt vor:
. Von dem gesamten pageable memory lagert er schon einen Teil während dem Betrieb mit geringer Prozesspriorität auf HDD aus.
. Fordert ein Prozess mehr Ram als z.Z. verfügbar, so braucht zum großen Teil nicht ausgelagert zu werden, sondern lediglich einige Hauptspeicher Pages dem Prozess zugeordnet werden. Das funktioniert, da einige Seiten ja schon als 1:1 Kopie auf dem Hintergrundspeicher (pagefile) liegen.

Es ist also tatsächlich eine Performanceoptimierung von 2000/XP/Vista. Siehe in diesem Buch S. 819 "The Page Replacement Algorithm":
http://www.amazon.de/Modern-Operating-Systems-2-e/dp/0130926418/
 
Ok, dann erkläre mir warum Vista nicht die freien 30% Ram nutzt. Das sind ca. 1230MB freie Kapazität. Die Belegung in der pagefile.sys ist aber wesentlich weniger als 1230MB. In meinen Fall momentan ca. 310MB.
 
Weil obiges Prinzip nicht die alleinige Regel ist. Windows sorgt dafür, dass nicht ein Prozess einfach das gesamte Ram auffrisst und 99 andere Prozesse darunter leiden, indem sie sehr oft swappen müssen. Windows gibt einem Prozess nicht einfach Hauptspeicher, sondern nur innerhalb der Working Set Minimum/Maximum Pages. Fordert ein Prozess mehr, so werden zunächst die Pages des Prozesses beschnitten: Für jede Page, die der Prozess neu anlegt, wird erstmal eine andere des selben Prozesses ausgelagert. Also auch, wenn eigentlich noch genügend Ram verfügbar ist.

Minimum/Maximum Pages kann man als Administrator anpassen (weiß nicht auswendig wie, wird ein Registry Key sein). Die Grenzen sind aber ohnehin nicht statisch. In Windows sind genügend Heuristisken, die abhänig von der "Natur der Anwendung" das Paging Verhalten anpassen. Das mit den Minimum/Maximum Pages wusste ich auch gerade nicht auswendig. Hab's nachgeschlagen in besagtem Buch. Das erklärt dann warum Vista/XP auslagert auch wenn freier Speicher noch verfügbar ist. Allerdings aus einem anderen Blickwinkel als die geposteten 1,8GB.

Das funktioniert eigentlich auch sehr gut. Zumal Anwendungen auch explizit nicht pagebaren Speicher anfordern können. Der Programmierer einer Anwendung weiß womöglich noch besser welche Daten oder Code Teile er sehr häufig benötigt u. kann dafür sorgen, dass diese nicht ausgelagert werden.

Das Paging besteht aus einer Reihe von Prinzipien und von noch viel mehr Sonderfällen und Ausnahmen. Die wenigsten davon sind für XP/Vista irgendwo dokumentiert. Ist halt closed source.

Das beste was Du tun kannst (wenn Du kein Hibernation Feature benutzt): 6GB oder 8GB Ram. Das ist einfach und nützlich. Rumtweaken kann man sicher auch hier und da.

Der Prozess Scheduler ist ähnlich: Ein paar Prinzipien und sehr viele Ausnahmen. Selbst eine vermeindlich "simple" Kopierroutine in Windows ist unheimlich kompliziert. Für letzteres gibt's wenigstens auch einen Online Verweis:
http://blogs.technet.com/markrussinovich/archive/2008/02/04/2826167.aspx
 
Zuletzt bearbeitet:
Wow. Dank dir für die Erklärung! Das gleiche hat mich auch immer gewundert (Festplatte am rattern wie wild und 800 MB RAM frei).
 
Ohne zu wissen wie die interen Schreibroutine von SSDs auf feste Dateien aussieht:
Macht es vielleicht Sinn, die Auslagerungsdatei variable zu halten, zwischen 0 und bspw. 4 GB, um dafür zu sorgen, dass Änderungen innerhalb der Datei nicht immer auf die gleichen Blöcke der SSD geschrieben werden, wie es ja bei HDDs der Fall ist?
 
Ohne zu wissen wie die interen Schreibroutine von SSDs auf feste Dateien aussieht:
Macht es vielleicht Sinn, die Auslagerungsdatei variable zu halten, zwischen 0 und bspw. 4 GB, um dafür zu sorgen, dass Änderungen innerhalb der Datei nicht immer auf die gleichen Blöcke der SSD geschrieben werden, wie es ja bei HDDs der Fall ist?

Der Controller in der SSD regelt wo was hingeschrieben wird. Einen festen "Platz" auf dem Speicherträger gibt es nicht mehr.
Wenn ein Block ins Pagefile geschrieben wird, dann wandert der ganze Löschblock doch sowieso an eine andere Stelle der SSD :-)
Ob das jetzt mit dem Ändern der Pagefile-Größe was gerissen wird weiß ich nicht.
 
Zuletzt bearbeitet:
Wenn ein Block ins Pagefile geschrieben wird, dann wandert der ganze Löschblock doch sowieso an eine andere Stelle der SSD :-)
.
Das war ja worauf ich hinaus wollte. Afair wird das ganze ja nicht gelöscht sondern nur aktualisiert/überschrieben.
Aber wenn das SSD-intern als löschen gehandelt wird, dann ist es ja ok ;-)
 
OK, bin auf meinem Notebook eben alle schritte durchgegangen.
Problem: Windows XP 32 will sich nicht als NTFS auf eine "aligned Partitionen" installieren, nur als FAT32.

Nun die frage, welches FS is für SSD besser?
Ein convert C: /FS:NTFS wäre ja schnell durchgeführt.

Mit dem WBEM bin ich mir noch nicht sicher, da ist noch jede menge Zeug drinnen was ziemlich mysteriös ist.

Edit: Ohne oder mit geändertem Workdir mag das ATI CC nicht!
Wobei WBEM auch nur schreibt wenn es benutzt wird => ambesten keine Monitoring sachen laufen lassen (z.b. SpeedFan & Co, mit Filemon beobachtet)
 
Zuletzt bearbeitet:
Vielen Dank an antiram für den Tipp mit dem Partiton alignment! Ich habe dazu noch ein paar Hinweise:

Benutzer von Windows Server 2003 SP1 und Windows Vista haben bereits die aktuelle Version von diskpart.exe und können dieser einfachen Anleitung folgen: http://technet.microsoft.com/en-us/library/aa995867(EXCHG.65).aspx

Wer jedoch eine ältere Version von diskpart.exe hat (die in Windows XP und 2000) der bekommt eine Fehlermeldung beim Versuch den Parameter "align" zu benutzen. Es gibt aber eine Lösung. Entweder man holt sich die neue diskpart.exe von einem anderen Windows-System (habe ich nicht getestet). Ansonsten gibt es noch von Microsoft ein Windows 2000 Resource Kit, welches das Tool "diskpar.exe" (ohne t) enthält. Mit diesem Tool können auch unter XP und 2000 Partitionen ausgerichtet werden. Leider bietet MS dieses Kit nicht mehr zum Download an. Mit Google sollte man das Programm diskpar.exe aber finden können (ich will hier keinen Direktlink posten, bin mir nicht sicher ob das erlaubt ist).

Benutzung von diskpar.exe:

Programm in der Konsole öffnen: "diskpar -s x" wobei x die Nummer der SSD bzw. Festplatte ist. Diese Nummer kann man in der Datenträgerverwaltung nachschauen (wenn dort die SSD "Datenträger 2" heisst muss bei diskpar entsprechend eine 2 eingegeben werden). Dann bestätigen, und man bekommt die Option einen Startsektor für die erste Partition anzugeben. Jetzt muss man nur noch in die Datenträgerverwaltung gehen und die Platte mit dem gewünschten Dateisystem formatieren.

Ganz hartgesottene können den Startsektor auch direkt in den Master Boot Record schreiben, es müssen die CHS-Einträge des ersten und letzten Sektors für die gewünschte Partition eingetragen werden (siehe http://de.wikipedia.org/wiki/Partitionstabelle ).


Mal was zur Zuordnungseinheit des Dateisystems. Ich habe mir folgendes überlegt. Ich lasse ATTO laufen und sehe, dass ich bei den Random Writes einen sehr großen Sprung von 8k auf 16k habe (mehr als die doppelte Geschwindigkeit). Würde es dann Performancetechnisch sinn machen, die Clustergröße auf 16kb zu setzen? Oder habe ich da (mal wieder) falsch gedacht? ;) Ich glaube fast ja, ich bringe dauernd durcheinander wie das alles zusammenhängt... und bringt es etwas, die Clustergröße auf die Größe eines erasable Blocks zu setzen?
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh