Freigeben über


Leistungsvergleich beim Lesen von der Festplatte im Vergleich zum Lesen aus dem Windows Server AppFabric-Cache

In diesem Beispiel wird gezeigt, dass das Speichern und Lesen im bzw. aus dem AppFabric-Cache effizienter ist als die gleichen Vorgänge auf einer Festplatte.

Im Beispiel wird eine Anzahl Bilddateien gelesen, um Benutzeranforderungen für den Zugriff auf Dateien auf der Festplatte oder im Cache zu simulieren, und die Zeit für das Bereitstellen der Bilddateien verglichen.

Hinweis

Beispiele werden nur zu Anschauungszwecken bereitgestellt. Sie sind nicht für die Verwendung in einer Produktionsumgebung gedacht und wurden nicht in einer Produktionsumgebung getestet. Microsoft bietet keinen technischen Support für diese Beispiele.

Voraussetzungen

Idealerweise sollten die Benutzer über Kenntnisse im Skripten in Windows PowerShell verfügen.

Das Beispiel setzt Folgendes voraus:

  • Windows PowerShell 2.0 ist installiert.

  • Windows Server AppFabric ist installiert. (Dadurch werden außerdem dem GAC die erforderlichen DLLs hinzugefügt.)

Konfigurieren des AppFabric-Caches

Wenn dies noch nicht erfolgt ist, konfigurieren Sie den AppFabric-Cache mithilfe des Windows Server AppFabric-Konfigurationstools (verwenden Sie die Standardeinstellungen). In dem Beispiel wird angenommen, dass ein AppFabric-Cache mit den Standardeinstellungen konfiguriert ist (cacheHostName=AppFabricCachingService und cacheName=default).

Starten des Cacheclusters

  1. Öffnen Sie ein Windows PowerShell-Befehlsfenster mit erhöhten Rechten, und führen Sie den folgenden Befehl aus, um das Verwaltungsmodul für den verteilten Cache hinzuzufügen:

    Import-Module DistributedCacheAdministration
    
  2. Führen Sie den folgenden Befehl aus, um Ihrem Benutzerkonto Zugriff auf den Cachecluster als Client zu erteilen. Geben Sie den Benutzer- und Domänennamen an.

    Grant-CacheAllowedClientAccount domain\username
    
  3. Verwenden Sie den Befehl Get-CacheAllowedClientAccounts, um zu überprüfen, ob Ihrem Benutzerkonto der Zugriff erteilt wurde.

  4. Start den Sie den Cluster mithilfe des Befehls Start-CacheCluster.

Erstellen und Ausführen des Beispiels

Das Beispiel stellt automatisch eine Verknüpfung mit den AppFabric-Cache-DLLs (Microsoft.ApplicationServer.Caching.Client.dll und Microsoft.ApplicationServer.Caching.Core.dll) aus dem globalen Assemblycache (GAC) her.

  1. Öffnen Sie die Projektmappe DiskVersusCachePerformance.sln in Visual Studio.

  2. Öffnen Sie eine Eingabeaufforderung, und wechseln Sie in das Verzeichnis: <Speicherort des Beispiels>\CacheVersusDiskPerformance\DiskVersusCachePerformance\bin\Debug

  3. Diesem Beispiel muss ein Befehlszeilenparameter übergeben werden: der Pfad zum Verzeichnis der Dateifreigabe, die Teil des Ordners DiskVersusCachePerformance ist. (Sie können diesen auch den Projekteigenschaften im Abschnitt „command line arguments“ hinzufügen.)

  4. Führen Sie die EXE-Programmdatei aus, um den Beispieltest zu starten:

    <Location of the sample>\CacheVersusDiskPerformance\DiskVersusCachePerformance\bin\Debug> DiskVersusCachePerformance.exe ..\..\..\fileshare
    

Die vom Beispiel durchgeführten Aktionen werden in der Datei useractions.xml im Dateifreigabeordner beschrieben. Die folgenden Aktionen werden unterstützt.

Aktion Parameter Beschreibung

PageSize

Größe

Festlegen der Seitengröße (Anzahl der zu lesenden Dateien)

LogIn

Benutzername

Anmelden des Benutzers

LogOut

Benutzername

Abmelden des Benutzers

ViewAlbum

AlbumIndex

Verschieben in den Ordner „album[Index]“

ViewPage

PageIndex

Lesen von Dateien [PageIndex*PageSize - PageIndex*(PageSize+1)-1]

ViewNextPage

n/v

Weiter zum nächsten Satz Dateien [(PageIndex+1)*PageSize - PageIndex*(PageSize+2)-1]

ViewPrevPage

n/v

Zurück zum vorhergehenden Satz Dateien

Eine Sequenz von Aktionen, die wie folgt definiert werden kann.

  <useraction>    <action>PageSize</action>     <data>500</data>      </useraction>
  <useraction>    <action>LogIn</action>        <data>tom</data>      </useraction>
  <useraction>    <action>ViewAlbum</action>    <data>0</data>        </useraction>
  <useraction>    <action>ViewPage</action>     <data>0</data>        </useraction>
  <useraction>    <action>ViewNextPage</action> <data>null</data>     </useraction>
  <useraction>    <action>ViewPrevPage</action> <data>null</data>     </useraction>
  <useraction>    <action>LogOut</action>       <data>tom</data>      </useraction>

Das vorhergehende Segment wird in dieser Weise interpretiert:

  1. Festlegen der Anzahl der Elemente pro Seite auf 500

  2. Anmeldung von „tom“ (ermöglicht dem angemeldeten Benutzer den Zugriff auf die Seite)

  3. Auswählen von album0

  4. Anzeigen der ersten Seite (Lesen der Dateien 0-499 von der Festplatte oder aus dem Cache)

  5. Anzeigen der nächsten Seite (Versuch, die Dateien 500-999 von der Festplatte zu lesen)

  6. Anzeigen der vorhergehenden Seite (erneutes Lesen der Dateien 0-499 aus dem Cache, da die Dateien jetzt in den Cache geladen sind)

  7. Abmelden (Widerrufen der erteilten Berechtigung)

Bei jedem Abmeldevorgang meldet das Beispiel einen Leistungsvergleich des Zugriffs auf die Daten auf der Festplatte gegenüber dem Zugriff auf den AppFabric-Cache.

Hinweis

Verwenden Sie für jede nachfolgende Ausführung dieses Beispiels den Befehl Restart-CacheCluster, um den Cache zu leeren, und und warten Sie dann 10-15 Sekunden.

Hinweis

Während der Ausführung des Beispiels werden möglicherweise Nachrichten wie [size2_il.cur-DiskRead- error 2 Delay (ticks) 7128] angezeigt. Der Fehler zeigt den Unterschied zwischen der von FileInfo gemeldeten Dateigröße und der tatsächlichen Größe der von der Festplatte gelesenen Datei. Dieser Unterschied kann ignoriert werden, da die im Cache gespeicherten Daten die gleiche Größe wie die von der Festplatte gelesenen Daten aufweisen.

Problembehebung

Wenn dem Cache keine Daten hinzugefügt werden, wird dies möglicherweise durch die Entfernungsrichtlinie des Caches verhindert. Zum Sicherstellen, dass für den Cache keine Entfernungsrichtlinie festgelegt ist, führen Sie die folgenden Befehle aus, um den Standardcache zu entfernen und ihn ohne Entfernungsrichtlinie neu zu erstellen:

Remove-Cache -CacheName default
New-Cache -CacheName default -Eviction None

Entfernen dieses Beispiels

Starten Sie den Cachecluster erneut mithilfe des Befehls Restart-CacheCluster, um Daten aus dem Cache zu entfernen.

Siehe auch

Weitere Ressourcen

Windows Server AppFabric-Cachebeispiele

  2011-12-05