Die Beschleunigung des Viewer-Caches

Eines der Nadelöhre in der Architektur jedes Second Life Viewers ist sein Cache auf der Festplatte. In dem Cache legt der Viewer sowohl die dargestellten Texturen als auch der Objekte einer Sim ab. Klingt erst einmal nicht dramatisch, aber das hat seine Konsequenzen, die in der Natur der Festplatte liegen.

Nun ist es so, dass die meisten Texturen abgelegt auf der Festplatte für sich alleine nicht viel Speicherplatz benötigen. Ein typischer Cache-Ordner besteht aus 10000-30000 Dateien. Es sind eben pro Sim schon sehr viele Texturen, die ihren Weg auf die Festplatte finden, und damit greift dann letzten Endes die Festplatte als Nadelöhr.

Jedes moderne Betriebssystem ist sich der Tatsache, dass der Zugriff auf die Festplatte um Längen langsamer als auf den Hauptspeicher ist, bewusst. Deswegen nutzt jedes Betriebssystem automatisch den nicht durch Programme genutzten Teil des Hauptspeichers als Schreib-Lese-Cache. Das bedeutet, dass Schreibzugriffe auf die Festplatte zeitverzögert stattfinden und vorher noch vom System optimiert werden, sowie oft benötigte Dateien möglichst lange im Hauptspeicher gehalten werden. Fordert ein Programm eine solche Datei an, dann wird erst geschaut, ob sie im Cache vorliegt und wenn ja (das nennt man dann einen Hit), wird sie direkt aus dem Cache geliefert und nicht von der Festplatte gelesen. So weit, so gut.

Was aber passiert, wenn wir den Rechner gerade erst gestartet haben, dabei noch nicht in Second Life waren und einen recht gut gefüllten Viewercache haben? Dann bleibt dem System nichts anderes übrig, als alle diese Texturen nacheinander von der Festplatte zu lesen. Und da dies schon auf einer normalen Sim, auf der man sich bewegt und ein normales Blickfeld hat, durchaus mehrere Hundert Stück sein können, dauert das dann eine Weile.

Wieso kommt dies so? Ganz einfach daher, weil hier nun die mechanischen Beschränkungen einer Festplatte greifen. Die Leistungsfähigkeit einer modernen Festplatte wird an zwei Kennziffern gemessen, nämlich der maximale Schreib-/Lesedurchsatz sowie die Zugriffszeit. Die Zugriffszeit ist dabei der Zeitraum, den die Festplatte im Schnitt benötigt, um den Schreib-Lese-Kopf auf den Anfang der gewünschten Datei zu positionieren. Diesen Vorgang nennt man übrigens auch Seek. Typischerweise wird diese Zeit in Millisekunden gemessen, und eine moderne Festplatte hat eine Zugriffszeit im Bereich von irgendwo 5-10 ms. Dabei gilt natürlich die Devise: je niedriger die Zugriffszeit, desto besser. Eine gewisse Zugriffszeit aber wird man mit Festplatten niemals unterschreiten können.

So. Was bedeutet das? Wenn wir neu einloggen auf irgendeine Sim, dann will der Viewer aus einem gut gefüllten Cache einen Haufen an Texturen von der Festplatte lesen. Das bedeutet, dass es innerhalb kurzer Zeit zu einem Haufen an Seeks kommt, die die Festplatte abarbeiten muss.

Und hier nun eine einfache Rechnung: wieviel Seeks pro Sekunde schafft eine Festplatte maximal? 1 Sekunde sind 1000 Millisekunden, also meinetwegen 1000 ms / 8 ms = 125 Seeks/Sekunde. A-ha, damit kommen wir der Sache dann nämlich schon näher. Und sollte die Festplatte meinetwegen 6 ms Zugriffszeit haben, dann kommen wir da auf 1000 ms / 6 ms = 167 Seeks/Sekunde, was auch nicht wirklich besser ist.

Wenn wir uns dann noch klar machen, dass die Festplatte meist nicht nur von Second Life alleine benutzt wird, sondern zeitgleich auch andere Programme sie benutzen, dann wird einem klar, dass der Viewer längst nicht immer die theoretisch maximal mögliche Anzahl an Seeks pro Sekunde für sich alleine zur Verfügung haben wird.

Mit anderen Worten: die Festplatte ist in der Regel für den Anwendungsfall gut gefüllter Cache, neu gestartetes System und man loggt mit dem Viewer gerade ein, das Nadelöhr. Der Prozessor könnte mehr leisten, aber er kann es eben nicht, weil er auf die Festplatte warten muss und das ist schlecht.

Wenn man den Viewer-Cache für den obigen Fallo also beschleunigen will, dann muss man dafür sorgen, dass die Anzahl an Seeks pro Sekunde erhöht wird. Klingt einfach und ist es auch eigentlich, denn man könnte ja anstelle einer Festplatte eine billige Solid State Disk (SSD) im Rechner einbauen und den Viewercache darauf speichern. SSDs sind für solche Anwendungsfälle, also Ordnerstrukturen mit tausenden, kleinen Dateien, gerade zu ideal. Eine SSD hat keinerlei bewegliche Teile und ihre Zugriffszeit ist in der Regel um den Faktor 100 besser als einer Festplatte.

Die Zugriffszeit einer SSD beim Lesen liegt so im Bereich von 0,05 bis 0,08 Millisekunden. Einfache Rechnung also: 1000 ms / 0,07 ms = 14285 Seeks/Sekunden. Und selbst günstige SSDs sind nur unwesentlich langsamer. Das bedeutet klar, dass eine SSD ganz einfach das Speichermedium der Wahl für solche Anwendungsfälle ist.

Wenn man aber keine SSD hat oder erwerben will, dann kann man dennoch seinen Rechner beschleunigen. Voraussetzung dafür ist, dass man mindestens zwei Festplatten im Rechner installiert hat. Moderne Betriebssyssteme haben die Möglichkeit, zwei Festplatten oder zwei gleich große Partitionen auf zwei verschiedenen Festplatten zu einem sog. Stripe-Set  zusammenzufassen. Die Anwendung sieht nur ein Laufwerk in der Größe der beiden Partitionen zusammengerechnet, in Wirklichkeit aber handelt es sich dabei um diese beiden Festplatten, die das Betriebssystem als eine ansteuert.

Dabei verteilt das Betriebssystem nun Schreib-/Lesezugriffe möglichst gleich zwischen beiden Festplatten, ebenso die Dateien. Dies hat den Vorteil, dass ein Stripeset umso schneller wird, auf je mehr Festplatten es angelegt ist, denn die Zahl der Seeks pro Festplatte addiert sich (d.h. ein Set auf zwei Platten erreicht theoretisch bei 8 ms Zugriffszeit je Platte eben maximal 125 * 2 = 250 Seeks/s, bei 3 Platten 125 * 3 = 375 Seeks/s usw.), allerdings bietet es absolut keine Sicherheit für die darauf befindlichen Dateien. Geht eine Platte kaputt, dann ist das komplette Set unbrauchbar.

Das aber macht im Falle des Viewercaches absolut nichts aus, da dies ohnehin nur ein temporärer Zwischenspeicher ist, der jederzeit erneuert werden kann. Sollte man also beispielsweise unter Windows mehr als eine Festplatte im Rechner verbaut haben, dann kann sich der Aufbau eines Stripesets für den Viewercache durchaus lohnen, denn es bringt einem ohne Mehrkosten einen spürbaren Leistungsgewinn.

Eine Anleitung, wie man unter Windows 7 solch eine Konfiguration aufbaut, findet sich hier. Dabei ist wie immer zu beachten, dass man besser weiß, was man tut, denn man arbeitet an der Festplattenpartitionierung und ein falscher Handgriff kann da schlimmstenfalls Datenverlust nach sich ziehen. Also Vorsicht.

Opensim, das tote Pferd

Manchmal entdeckt man in den Kommentaren zu Beiträgen von Hypergrid Business doch interessante Perlen. So auch in dem offenen Brief von Maria Korolov an die Lindens, wo sie eine Öffnung Linden Labs zu Opensim hin propagiert. Meine Meinung dazu habe ich schon gepostet gehabt: es liest sich so, als sei Opensim in Meinung Korolovs gescheitert, warum sonst will sie Zugriff auf den größten, etablierten Asset Store für virtuelle Welten haben?

Ich meine, schon alleine aus rein logischen Gründen: warum sollte Linden Lab so etwas tun? Das Einzige, was daraus resultieren würde, wäre ein massiver Aufstand der Content Creators, die ihre mühevoll erzeugten Objekte überall hin kopiert sehen und mit Abwanderung drohen. Mehr aber auch nicht.

So, nun aber zu dem Kommentar einer gewissen Cam an sich, den ich mal vollständig übersetze:

Ich kann es nicht glauben, dass du noch immer an der Schürze von Linden Lab hängst.

Zu allererst ist, was du vorschlägst, dass Linden Lab sein bisheriges Geschäftsmodell (das immerhin mehrere Millionen Dollar Umsatz erzeugt) aus irgendwelchen Gründen aufgeben soll. Sie fällen ihre täglichen Geschäftsentscheidungen auf der Grundlage verschiedener Daten und Jahren an Erfahrung, aber du meinst, sie sollten es ändern.

Denke doch mal darüber nur eine Sekunde nach, dies würde bedeuten, dass jeder Linden Lab brandmarkt, sie ihre Geschäftsbedingungen neu schreiben müssten und ihre Produkte neu schreiben. Man muss verrückt sein, zu glauben, dass Linden Lab auch nur eine Sekunde daran denken würde. Und was wäre das Ergebnis? Sie würden ihre Umsätze und Benutzerbasis teilen, und ab da wird es nur noch lächerlicher.

Linden Lab hat den Ruf, die Wünsche ihrer Benutzer komplett zu ignorieren, warum also meinst du, sie würden auf etwas, dass du oder ich (ihre Konkurrenz) möglicherweise zu sagen haben.

Als Philip Rosedale zurücktrat, da nahm er alles innovatige Denken mit sich und Linden Lab wurde zu einer Firma, deren einziger Daseinszweck ist, den Bestand von Second Life zu erhalten, es nicht zu verbessern, aber auch nicht zu verschlechtrern, nicht es freundlicher zu machen oder billiger oder all diese Dinge, die wir vielleicht gerne hätten, aber es einfach am Leben zu erhalten und sicherlich nicht wegen dir die Erfolgsformel zu ändern, auf welcher Meinung oder fragwürdigen Daten die auch errichtet sein mag.

Second Life war immer überteuert und das hat die Verkäufe nicht wirklich beeinträchtigt, was den Weggang verursacht ist, dass ganz einfach viele Leute mit Second Life durch sind. Man kann eben nur eine gewisse Zeit umherlaufen und in leeren Clubs sitzen, bevor man das Gefühl bekommt „das war’s.“ Ich bin mir sicher, jeder der dies liest, der kennt das Gefühl.

Nein Alex, du bist nicht der Negative hier, ich bin es und hier ist, warum…

Opensim ist das ungeliebte Kind von Linden Lab und sie wünschen, dass es einfach nur verschwinden würde. Du sprichst auch darüber, was „Opensim bereits habe“. Opensim hat alles, was falsch an Second Life ist plus einige Sachen noch dazu, es basiert auf einer zehn Jahre alten Technologie, die nicht wirklich gut skaliert. Diese Technologie ist in unserer schnellebigen Welt schon als archaisch zu bezeichnen, und Opensim ist noch immer eine Alpha, voller Fehler und die Entwicklung wird durch die ständigen Kämpfe darüber, in welche gemeinsame Richtung es sich eigentlich entwickeln soll, Egoismus und sporadisch vorkommende Sabotage behindert.

Verstehe mich nicht falsch, ich liebe Opensim, ich habe mehrere Grids und Communityprojekte selbst betrieben gehabt, bin mehrmals hingefallen und wieder aufgestanden, wie die meisten Gridbetreiber eben auch und aus irgendwelchen Gründen interessiert es keine Benutzer, niemand ist daran interessiert und die Leute, die es wirklich interessiert, die sind in Second Life. Was in Opensim übrig blieb sind Entwickler, Programmierer und Enthusiasten, aber keine normalen Benutzer, keine Spieler, diese sind weiter gezogen, wir nicht.

Hier ist die schlechte Nachricht, die ihr alle wisst aber nicht wahr haben wollt: das Einzige, was zwischen Opensim und seinem Niedergang steht ist die Möglichkeit, dass irgendwer irgendwann die Möglichkeit entwickelt, es einfach in einem Webbrowser laufen zu lassen. Wenn das passieren würde, dann hätten wir anstelle von vielen, leeren Welten in den man sich nur langweilt und es nichts zu tun gibt die fortschrittlichsten, 3D-Webseiten der Welt. Es wäre ein Durchbruch, denn die Leute könnten einfach von Ebay oder Facebook in dein Gridfliegen und dann könnte es abheben (ich persönlich denke nicht, dass dies möglich ist, warte aber auf den Pixieviewer, sofern Sunny da etwas vorweisen wird.)

Ich habe drei Jahre lang die Akzeptanz von Opensim im Firmenumfeld studiert und dies ist eine Zusammenfassung der Ergebnisse. Firmen werden niemals eine Software nutzen, die im Alphastadium ist, ganz einfach wegen der schnellen Änderungen in der Software und Firmen wollen keine großen Risiken in einem engen Markt eingehen, was nichts anderes bedeutet als, dass solange Opensim im Alphastadium ist, eine Menge an Möglichkeiten vorbeizieht und der Code einfach nur älter wird. Die andere Sache, die Firmen davon abhält, es einzusetzen ist der Fakt, dass Opensimulator unsicher ist, die Liste der Sicherheitslücken lange ist und kaum jemand etwas benutzen wird, dass nach all diesen Jahren immer noch so unsicher ist. Also verrotet die Möglichkeit des kommerziellen Takeoffs direkt am Weinstock.

Reden wir also über soziale und freizeitliche Aspekte. Macht mal eine Google Trends Analyse, beginnend mit „Opensim“ als Suchbegriff, gut das liefert einige Treffer, die nach 2009 langsam aber stetig sinken, wenn man nun  „virtual worlds“ hinzufügt sieht man, dass Opensim im Vergleich dazu mickrig aussieht, was nur bedeutet, dass Opensim für den Bereich nicht die erste Wahl ist. Wenn man nun als Suchbegriff „Second Life“ eingibt, dann sieht man den Konkurrenten in der Sache und wogegen man antritt. Opensim verschwindet gegenüber Second Life nahezu in der Bedeutungslosigkeit.

Danach gebe man einmal „Minecraft“ ein und lande so in der Realität. Ich könnte nun noch ausführen, wieso Minecraft Second Life und Opensim killt, das ist aber eine andere Geschichte (und sage keiner, Minecraft sei nur ein Spiel, denn viele nutzen es auch als eine virtuelle Welt).

Sagen wir mal, wenn Philip Rosedale das Beste aus Second Life mit dem Besten an Mine Craft kombiniert, dazu die neueste und beste Technologie verwendet, dann wird Hi-Fi Minecraft das antun, was Minecraft Second Life angetan hat und diese Diskussion hier sinnlos sein. Dies wird dann die neue Plattform mit globaler Reichweite, Opensource, skalierbar, und am allerwichtigsten, brandneu. Was werde ich da wohl tun?

Ich höre nun einfach auf, auf ein totes Pferd einzudreschen und ziehe weiter.

Sorry.

Das hat schon interessante Punkte, wobei der Viewer im Browser ist so eine Sache. Mit Cloudparty hatte es solch einen gehabt, aber wirklich profitabel war die Firma wohl nie. Es reicht eben nicht nur aus, die Technik zu haben, sondern man braucht auch noch ein Alleinstellungsmerkmal, so dass genügend Leute gewillt sind, sich da zu engagieren.

Sagen wir mal einfach, Opensim hat eine für sich einigermaßen komfortable Nische belegt, das trifft es im Grunde ganz gut. Mehr wird da aber mit dem jetzigen Entwicklungsmodell auch nicht mehr drin sein.

Ach diese bösen Schweizer…

Wat sind wir Deutsche nun darüber empört, ja EMPÖRT!, dass die Schweizer mit uns Deutschen verfahren wollen wie die Deutschen sonst gerne mit Leuten aus Rumänien&Co. verfahren würden. Ha ha und ha.

Im Grunde will die Initiative das, was Deutschland auch gerne hätte, aber sich bisher zu schade ist, das wirklich zu praktizieren: eine gelenkte Zuwanderung. Nicht mehr und nicht weniger. Das macht das Land weder per se ausländerfeindlich, überhaupt sollte da Deutschland bei sowas lieber schön ruhig sein (man schaue sich nur mal die Kampagne gegen Griechenland im Stürmer v2, also der BLÖD an), noch sonst was. Das Volk hat entschieden und da soll man nun mal nicht so einen Bohau darüber machen.

Interessanter als das, was in der Schweiz passiert, ist für mich gerade die Frage, was man bei uns politisch vertuschen will und deswegen lässt man das gerade so hoch kochen. Irgendwelche Ideen außer den neuen Stromtrassen?

Nur Deutsch?

Kiu schreibt bei sich zum Thema Deutschdümelei auf Gor, genauer dass da viele eben die Internationalität verpassen, wenn sie nicht willens sind, sich auf dieses Publikum einzulassen.

Mag sein. Nur hat es eben auch Gründe, warum diese deutsche Gorgemeinschaft entstanden ist: Mentalitätsgründe, Zeitverschiebung und vor allem genieren sich viele einfach, wenn sie nicht wirklich gut Englisch können, auf Englisch zu spielen.

Nicht, dass denn unbedingt viele auf Deutsch besser spielen würden, aber so ist es eben. Man kann es nun gut oder schlecht finden, aber diejenigen, die willens sind, sich auf solche externen Impulse einzulassen, sind eben schon sowieso dort. Der Rest deutschdümelt vor sich hin.