Comparación de rendimiento entre la lectura del disco y la de la caché de AppFabric
Este ejemplo muestra que almacenar y leer datos en la caché de AppFabric resulta más eficiente que hacerlo desde un disco.
El ejemplo lee varios archivos de imagen para simular solicitudes de usuario de acceso a los archivos del disco o de la caché y compara el tiempo que tarda en obtenerlos.
Nota
Los ejemplos se proporcionan únicamente con fines de aprendizaje. No están concebidos para su uso en un entorno de producción ni se han probado en este tipo de entorno. Microsoft no proporciona asistencia técnica para estos ejemplos.
Requisitos previos
Preferiblemente, los usuarios deben estar familiarizados con el lenguaje de scripting de Windows PowerShell.
Para el ejemplo se supone lo siguiente:
Windows PowerShell 2.0 está instalado.
Microsoft AppFabric 1.1 para Windows Server está instalado. (Esto agrega los archivos .DLL necesarios a la GAC).
Configuración de la caché de AppFabric
Si todavía no lo ha hecho, configure la caché de AppFabric mediante la herramienta de configuración de Microsoft AppFabric 1.1 para Windows Server (use la configuración predeterminada). En el ejemplo se supone que se ha configurado una memoria caché de AppFabric con las opciones predeterminadas (cacheHostName=AppFabricCachingService y cacheName=default).
Inicio del clúster de caché
Abra una ventana de comandos de Windows PowerShell en un modo con privilegios elevados y ejecute el comando siguiente para agregar el módulo de administración de caché distribuida:
Import-Module DistributedCacheAdministration
Ejecute el comando siguiente para conceder a la cuenta de usuario acceso al clúster de caché como cliente. Indique el nombre de usuario y de dominio.
Grant-CacheAllowedClientAccount domain\username
Use el comando Get-CacheAllowedClientAccounts para comprobar si se ha concedido acceso a la cuenta de usuario.
Para iniciar el clúster, use el comando Start-CacheCluster.
Generación y ejecución de este ejemplo
El ejemplo se vincula automáticamente con los archivos DLL de la memoria caché de AppFabric Microsoft.ApplicationServer.Caching.Client.dll y Microsoft.ApplicationServer.Caching.Core.dll) de la GAC.
Abra la solución DiskVersusCachePerformance.sln en Visual Studio.
Abra un símbolo del sistema y cambie el directorio a: <Ubicación del ejemplo>\CacheVersusDiskPerformance\DiskVersusCachePerformance\bin\Debug
En este ejemplo, es necesario pasar un parámetro de línea de comandos: la ruta de acceso al directorio de recursos compartidos que forma parte de la carpeta DiskVersusCachePerformance. También se puede agregar a las propiedades del proyecto en la sección “Argumentos de línea de comandos”.
Ejecute el archivo .exe para iniciar la prueba de ejemplo:
<Location of the sample>\CacheVersusDiskPerformance\DiskVersusCachePerformance\bin\Debug> DiskVersusCachePerformance.exe ..\..\..\fileshare
Las acciones que realiza la muestra se describen en el archivo useractions.xml de la carpeta de recursos compartidos. Se admiten las acciones siguientes.
Acción | Parámetro(s) | Descripción |
---|---|---|
PageSize |
Size |
Define el tamaño de página (número de archivos de lectura) |
LogIn |
UserName |
Inicio de sesión del usuario |
LogOut |
UserName |
Fin de sesión del usuario |
ViewAlbum |
AlbumIndex |
Desplazamiento a la carpeta “album[Index]” |
ViewPage |
PageIndex |
Lectura de archivos [PageIndex*PageSize - PageIndex*(PageSize+1)-1] |
ViewNextPage |
N/D |
Desplazamiento al siguiente grupo de archivos [(PageIndex+1)*PageSize - PageIndex*(PageSize+2)-1] |
ViewPrevPage |
N/D |
Desplazamiento al grupo de archivos anterior |
Las secuencias de acciones se definen como se describe a continuación.
<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>
Interpretación del segmento anterior:
Definir el número de elementos por página en 500
Iniciar sesión en tom (permite el acceso a la página al usuario conectado)
Seleccionar album0
Ver primera página (leer archivos 0-499 del disco o caché)
Ver página siguiente (intentar leer archivos 500-999 del disco)
Ver página anterior (volver a leer archivos 0-499 de la caché ahora que están cargados)
Cerrar sesión (revocar el permiso concedido)
Al cerrar sesión, el ejemplo notifica una comparación de rendimiento del acceso a los archivos del disco y a los de la memoria caché de AppFabric.
Nota
Para cada ejecución subsiguiente de este ejemplo, use el comando Restart-CacheCluster
para borrar la memoria caché y espere entre 10 y 15 segundos.
Nota
Al ejecutar este ejemplo, puede que aparezcan mensajes como [size2_il.cur-DiskRead- error 2 Delay (ticks) 7128]. Este error indica la diferencia entre el tamaño de archivo que notifica FileInfo y el tamaño real del archivo del disco que se lee. Puede ignorar esta diferencia, ya que los datos almacenados en la memoria caché tienen el mismo tamaño que los datos que se leen del disco.
Solución de problemas
Si no se agregan los datos a la caché, es posible que la directiva de expulsión de la caché lo impida. Para asegurarse de que la memoria caché no tiene ninguna directiva de expulsión configurada, ejecute los comandos siguientes para quitar la memoria caché predeterminada y volver a crearla sin directivas de expulsión:
Remove-Cache -CacheName default
New-Cache -CacheName default -Eviction None
Eliminación de este ejemplo
Use el comando Restart-CacheCluster para limpiar los datos de la caché y reiniciar el clúster de caché.
Vea también
Otros recursos
Ejemplos (Almacenamiento en caché de AppFabric 1.1)
2012-03-05