Descripción del impacto que ejercen sobre el rendimiento las cantidades elevadas de elementos y las vistas restringidas

 

Última modificación del tema: 2009-01-14

En este tema encontrará ayuda para comprender, diagnosticar y resolver problemas de rendimiento de Microsoft Exchange Server 2007 relacionados con cantidades elevadas de elementos en las carpetas de rutas principales y solicitudes de vistas restringidas cuando se usa Microsoft Office Outlook en línea, Outlook en modo caché con acceso delegado y Outlook Web Access. Las carpetas de ruta principales son las carpetas Calendario, Contactos, Bandeja de entrada y Elementos enviados. Las vistas restringidas son vistas de datos que limitan la información en función de criterios de búsqueda que dan como resultado vistas de sólo un subconjunto de los elementos de una carpeta. Los problemas de rendimiento relacionados con estas situaciones normalmente están relacionados y pueden afectar a los usuarios finales ralentizando el acceso de cliente. Sólo hacen falta unos cuantos usuarios que tengan unas cantidades de elementos anormalmente altas en sus carpetas de ruta principales para que se produzcan problemas en el rendimiento que afecten a toda la organización de Exchange.

Con Exchange Server 2003, la cantidad máxima de elementos recomendada por carpeta era 5.000. Con Exchange 2007, las mejoras de E/S, el tamaño de página más grande y el aumento de la caché contribuyen a aumentar la cantidad máxima de elementos recomendada. Con una arquitectura de hardware adecuada, puede mantenerse una experiencia de usuario aceptable con una cantidad de elementos de hasta 20.000.

Nota

Una experiencia de usuario aceptable para operaciones habituales equivale a un tiempo de respuesta de 100 milisegundos desde que se hace clic hasta que se produce la acción. Para operaciones poco habituales como, por ejemplo, la creación de un nuevo criterio de ordenación o la selección de una carpeta por primera vez, se considera aceptable un tiempo de respuesta de hasta un minuto.

Este máximo recomendado varía dependiendo de si hay algún programa de terceros que obtenga acceso a buzones de usuario. Estos programas de terceros incluyen los siguientes programas y cualquier otro similar:

  • Complementos de Outlook

  • Archivo de correos electrónicos

  • Antivirus

  • Dispositivo móvil

  • Correo de voz

  • Otros programas o complementos de Outlook que creen vistas adicionales o carpetas de búsqueda.

En este escenario, la cantidad de elementos debe determinarse mediante la revisión de toda la carga del servidor junto con la forma en la que el servidor procesa cada solicitud del programa de terceros.

Este máximo recomendado depende también de la capacidad de rendimiento del entorno de Exchange. Las opciones de hardware específicas pueden dar lugar a cantidades inferiores. En condiciones ideales, es mejor mantener las carpetas Buzón de entrada y Elementos enviados con menos de 20.000 elementos, y la cantidad de elementos de Contactos y Calendario por debajo de 5.000. Incluso si se mantiene la cantidad de elementos en los valores máximos recomendados, o por debajo de ellos, existen algunas operaciones que pueden tardar bastante más tiempo (por lo general, aproximadamente un minuto). Estas operaciones incluyen nuevos criterios de ordenación y la selección de carpetas por primera vez. Las primeras vistas de una carpeta pueden tardar incluso más en generar la vista. Las grandes cantidades de elementos en las carpetas de ruta principales ejercen un efecto adverso sobre el rendimiento del servidor, ya que se trata de las carpetas a las que se tiene acceso con mayor frecuencia en el buzón de un usuario. Otras carpetas, especialmente las carpetas personalizadas que crean los usuarios finales, pueden administrar grandes números de elementos sin que ello tenga un efecto adverso en la experiencia del usuario, ya que no se tiene acceso a ellas con tanta frecuencia. Es importante tener en cuenta que, aunque el efecto sobre el rendimiento que supone tener grandes cantidades de elementos en carpetas a las que se tiene acceso con menos frecuencia es reducido, esto también puede dar lugar a problemas intermitentes de rendimiento a medida que aumenta tanto el número de carpetas menos frecuentes como el número de usuarios activos del servidor.

Importante

Las primeras vistas de una carpeta pueden tardar incluso más en generar la vista. Por lo tanto, las operaciones de movimiento de buzones producirán un deterioro del rendimiento de la primera vista de todas las carpetas con una gran cantidad de elementos. Esto puede dar lugar a problemas de rendimiento intermitentes cuando los usuarios trasladados a nuevos servidores tienen acceso a sus carpetas y vuelven a crear las vistas de carpetas. Este problema se puede minimizar siguiendo las prácticas recomendadas para mover buzones mediante la propagación del movimiento en varios servidores y la disminución del número de buzones trasladados al mismo tiempo al mismo servidor.

Cuando evalúe la cantidad máxima de elementos adecuada para la organización, tenga en cuenta que no se produce un vacío al alcanzar el valor máximo sino que el rendimiento se va deteriorando progresivamente. Los límites indicados no son datos insertados directamente en el código. Son cantidades basadas en pruebas y análisis de código. A medida que aumenta la cantidad de elementos, el rendimiento puede deteriorarse hasta un nivel perceptible para el usuario. El nivel de rendimiento aceptable para los usuarios de su entorno establecerá la cantidad máxima de elementos adecuada para dicho entorno.

Es importante entender que no hay límites de tamaño inherentes impuestos a los buzones individuales. Los principales factores que limitan el tamaño de los buzones son los siguientes: espacio disponible en disco, tiempos de copia de seguridad y restauración, acuerdos de nivel de servicio y rendimiento de Outlook. Con rendimiento de Outlook, nos referimos específicamente a las latencias que experimenta el usuario final.

Descripción del impacto sobre el rendimiento de las opciones de hardware

Aunque debería ser autoexplicativo, merece la pena repetirlo: si el hardware de su organización no está adecuadamente dimensionado, es posible que los usuarios experimenten un rendimiento pobre incluso con una cantidad pequeña de elementos. En modo en línea, los requisitos de E/S de un sistema aumentarán a medida que se incremente la cantidad de elementos en los buzones. Las latencias del disco son uno de los factores más importantes que hay que tener en cuenta cuando se evalúa el rendimiento de hardware en relación con grandes cantidades de elementos. Para una experiencia óptima del usuario, es importante garantizar que las latencias de disco sean bajas (20 milisegundos o menos) incluso durante los picos de uso del servidor.

Para mostrar cómo la latencia del disco puede influir en el rendimiento del servidor, considere el siguiente ejemplo. Al solicitar una vista, la solicitud de los datos se realiza en una secuencia serializada de solicitudes individuales del disco y no en operaciones masivas. Por ejemplo, si un complemento devuelve una vista de 1.000 elementos, el almacén de Exchange probablemente realizará unas 200 solicitudes de datos independientes (suponiendo que se recuperen unos 5 mensajes por solicitud). A 20 milisegundos, ese es un retraso garantizado de 4 segundos sólo desde el subsistema del disco. Piense en el crecimiento del impacto sobre el rendimiento cuando la latencia del disco aumenta a 50 ó 100 milisegundos. El problema se complica si se usan varios complementos para hacer solicitudes similares. En una situación así, puede que los usuarios se encuentren a menudo con Outlook bloqueado.

Para más información acerca de las recomendaciones de tamaño del servidor para garantizar un buen rendimiento con Exchange 2007, consulte Planeamiento de la arquitectura de servidor y almacenamiento.

Descripción de posibles causas de que se requiera tiempo adicional de procesamiento

Al considerar el impacto sobre el rendimiento que ejercen las cantidades elevadas de elementos y las solicitudes de vistas restringidas, y cómo eso afecta a la capacidad de procesamiento del servidor, es necesario conocer los procesos subyacentes que tienen lugar y la relación que tienen dichas cantidades y solicitudes de vista con los procesos.

El contenido de las carpetas se almacena en una tabla dentro de la base de datos del almacén de información. A medida que el número de elementos aumenta, la complejidad del almacenamiento crece en consecuencia. El mecanismo de almacenamiento del almacén de Exchange es el Motor de almacenamiento extensible (ESE). ESE usa estructuras de árbol B+ para almacenar los registros. A medida que aumenta el número de registros, el número potencial de solicitudes de E/S del disco necesarias para localizar la información y atravesar el árbol B+ también aumenta. Para obtener más información, consulte Arquitectura del motor de almacenamiento extensible.

A medida que aumenta la cantidad de elementos, la posibilidad de que los datos solicitados se localicen en ubicaciones físicamente adyacentes del disco duro disminuye enormemente. Por lo tanto, hacen falta más solicitudes de E/S.

La creación de vistas restringidas precisa del procesamiento por parte del servidor de Exchange.

Existes dos formas de filtrar mensajes en MAPI:

  • Carpetas de búsqueda

Una carpeta de búsqueda se asemeja a una carpeta MAPI típica. Sin embargo, en lugar de mensajes, la carpeta de búsqueda sólo contiene vínculos a mensajes de otras carpetas. Estos mensajes cumplen una restricción específica.

  • Restricciones

    Una restricción se crea llamando al método IMAPITable::Restrict en una tabla MAPI. La tabla resultante sólo muestra los elementos que cumplen la restricción especificada. Una tabla con contenido restringido sólo muestra mensajes de una única carpeta. En ocasiones, esta clase de restricción puede confundirse con la estructura definida por MAPI que describe los criterios de filtro para una carpeta de búsqueda. Este tipo de estructura definida por MAPI se conoce también como restricción.

Las carpetas de búsqueda y las restricciones requieren un procesamiento adicional. Por ejemplo, la creación de una carpeta de búsqueda que se rellena con elementos que coincidan con el criterio del usuario. Este proceso requiere que se examine cada elemento de la carpeta para determinar si se debe incluir en la carpeta de búsqueda. Por lo tanto, si una carpeta contiene muchos elementos, hace falta más tiempo para crear la vista. Estas carpetas de búsqueda están almacenadas como SearchFID bajo cada carpeta en la que se originó la búsqueda. De manera predeterminada, una vez llenada una carpeta de búsqueda, puede existir durante hasta 40 días.

La presencia de vistas restringidas afecta a la rapidez con la que se realizan las modificaciones en los elementos de una carpeta. Cuando una carpeta de búsqueda está asociada a una carpeta, el procesamiento se repite cuando se agregan, eliminan o actualizan elementos en la otra carpeta. Esto se debe a que Exchange tiene que determinar si es necesario actualizar la carpeta de búsqueda. Cuando se establecen muchas carpetas de búsqueda, cada cambio debe evaluarse con respecto a todas las carpetas de búsqueda con el fin de determinar si es necesario actualizarlas.

Cuando se agregan más propiedades no estándar a una vista de carpeta en Outlook, puede que se necesiten llamadas de procedimiento remoto (RPC) adicionales para recuperar las propiedades que no son estándar del almacén de Exchange. Cuando una carpeta contiene muchos elementos, son necesarias más idas y vueltas para recuperar los datos desde el servidor de Exchange.

Al intentar ver una carpeta de calendario, Outlook tiene que localizar todas las citas del intervalo de fechas especificado. Para ello, son necesarias como mínimo dos solicitudes de procesamiento. La primera solicitud obtiene todas las citas estáticas del intervalo de fechas especificado. La segunda solicitud obtiene cualquier cita periódica que tenga lugar en el intervalo de fechas especificado. El tiempo necesario para procesar la segunda solicitud es proporcional al número de elementos de la carpeta de calendario. Esto se debe a que Outlook solicita todas las citas periódicas. Una vez recibida la lista de citas periódicas, se examina cada una de ellas para determinar si tiene lugar en el intervalo de fechas especificado. Cuantos más elementos contenga el calendario, más tiempo será necesario para procesar estas solicitudes.

Descripción del impacto sobre el rendimiento de la cantidad de elementos en comparación con el tamaño del buzón

Es importante comprender que la mayoría de los problemas de rendimiento no son el resultado de un buzón de gran tamaño (definido como un buzón mayor de 2 GB), sino más bien del número de elementos de la carpeta o carpetas a las que se tiene acceso en el servidor. Tener muchos elementos en una carpeta afecta de forma adversa al rendimiento, ya que las operaciones de esas carpetas tardan más tiempo. En concreto, la cantidad de elementos de las carpetas de ruta principales influye significativamente en el rendimiento: Calendario, Contactos, Bandeja de entrada y Elementos enviados. Para obtener más información acerca de cómo planear buzones grandes, consulte White Paper: Planning for Large Mailboxes with Exchange 2007 (en inglés).

Entre las operaciones que dependen del número de elementos de la carpeta se incluyen la adición de una columna nueva a la vista, la ordenación por una columna nueva y la realización de búsquedas. Muchos complementos de Outlook ordenan elementos o realizan búsquedas al mismo tiempo que se ejecutan, y esas solicitudes pueden superponerse a otras solicitudes MAPI de Outlook. Esto da como resultado una mala experiencia para el usuario.

Si usa el programa en modo caché (el modo predeterminado para Outlook 2003 y versiones posteriores), el rendimiento del cliente puede ser un problema a medida que aumenta el número de elementos de una carpeta. Es importante mantener los archivos OST (la memoria caché de datos local) sin fragmentar. Para ello, se puede usar la herramienta Windows SysInternals Config. Para descargar la última versión de Contig, vaya a Contig v1.55.

Además del número de elementos de las carpetas de ruta principales, existen otros factores que afectan a la experiencia de Outlook y que se agravan por las grandes cantidades de elementos, como la cantidad de otras aplicaciones MAPI o los complementos de Outlook que funcionan en el equipo del usuario. Todas las solicitudes MAPI precisan de tiempo de procesamiento con emsmdb32.dll. Si un usuario tiene gran cantidad de complementos que realizan solicitudes, Outlook funcionará más lentamente y es posible que el impacto sobre el servidor se note más. Asimismo, el impacto también dependerá de la complejidad de la acción solicitada. Por ejemplo, marcar todos los elementos de una carpeta como leídos llevará más tiempo que marcar un sólo elemento. Entre otras acciones que pueden tardar mucho tiempo se incluyen la recuperación de la información de disponibilidad de muchos usuarios en una solicitud de reunión o la realización de una búsqueda en varias carpetas. Si los usuarios realizan a menudo acciones complejas, tienen muchos complementos de Outlook o usan habitualmente las carpetas Contactos y Calendario, la probabilidad de que el rendimiento se vea penalizado debido a un número alto de elementos aumenta significativamente.

Descripción de las vistas restringidas (restricciones MAPI)

MAPI representa los datos normalmente en forma de tabla. Cuando el cliente solicita una lista de proveedores, se le presenta una tabla; lo mismo ocurre para las carpetas, el contenido de las carpetas, los datos adjuntos, etc. Cada tabla consta de varias columnas. Cada columna es una propiedad MAPI distinta que representa atributos como el remitente, el asunto y la hora de entrega. Cada fila representa un elemento específico. En una tabla de contenido de carpetas, cada fila representa un mensaje. Las acciones del cliente en estas tablas se representan mediante actividades, como ordenar los datos. El cliente puede buscar en la tabla una fila específica que coincida con los criterios especificados. Esta operación se denomina FindRow(). También puede solicitar que sólo se incluyan en la tabla los elementos que cumplan un determinado criterio. Por ejemplo, se podrían incluir sólo los elementos creados en un día determinado. Esto se denomina restricción. En la tabla resultante de contenido de carpetas sólo habría elementos que cumplieran los criterios dados. Las restricciones se usan cuando se espera que el cliente solicite la misma representación de datos con cierta frecuencia.

Impacto de las vistas restringidas sobre el rendimiento

Para comprender las ramificaciones de las restricciones, es necesario tener en cuenta que el Almacén de información en realidad almacena los datos que un cliente MAPI solicita y el modo en que interpreta solicitudes como FindRow y Restrict. Dentro del esquema del almacén existen diversas tablas que representan colectivamente elementos como buzones, carpetas, contenidos de carpetas y mensajes.

Cuando un cliente solicita una lista del contenido de una carpeta, esa solicitud se asigna a una carpeta especial llamada tabla MessageFolder (MsgFolder). Cada carpeta que se crea en el sistema dispone de una tabla de carpetas de mensajes independiente. La finalidad de la tabla MsgFolder consiste en asignar a cada carpeta su contenido.

Para controlar las expectativas de una llamada Restrict (una repetición frecuente de la solicitud para los mismos datos), se crea una carpeta nueva especial (y su correspondiente tabla MsgFolder) denominada Carpeta de búsqueda restringida. Esta carpeta está vinculada de nuevo a la carpeta original y existe una relación lógica entre las dos carpetas. En la carpeta de búsqueda se impone una condición, de forma que sólo incluya los elementos que cumplan los criterios especificados en la restricción. En esta carpeta de búsqueda, existe un vínculo de retroceso hacia la fila original de la tabla MsgFolder para cada mensaje de la tabla de MsgFolder que cumple los criterios de la restricción.

El problema de rendimiento que se produce con este comportamiento es el tiempo que es necesario para administrar la actualización de cada una de las carpetas de búsqueda. Cuando tiene lugar un cambio en la carpeta original, el cambio se compara con cada una de las carpetas de búsqueda restringida asociadas con la carpeta en cuestión para determinar si también tienen que actualizarse. Esto ejerce un impacto mayor cuando existen muchas carpetas de búsqueda para una o muchas carpetas. El segundo problema es la creación de las carpetas de búsqueda restringida. Para crear una carpeta de búsqueda restringida hace falta una pasada completa a la carpeta original para extraer los elementos individuales que se deben vincular a la carpeta de búsqueda restringida. Si este proceso tiene lugar como resultado directo de una acción del cliente, el retraso en el tiempo provocar que el usuario experimente un bloqueo del sistema o que reciba el cuadro desplegable de RPC de Outlook que indica que una solicitud está tardando demasiado en procesarse. El tiempo necesario para crear la carpeta de búsqueda restringida es proporcional al número de elementos de la carpeta normal. A medida que el número de elementos de una carpeta aumenta, la probabilidad de que esos elementos estén situados en sectores adyacentes del disco se reduce significativamente. Esto se traduce en un aumento significativo de las E/S aleatorias del disco cuando se hacen solicitudes de vista restringida sobre carpetas con cantidades elevadas de elementos. A medida que aumenta el número de solicitudes de vista restringida en las carpetas que tienen una cantidad elevada de elementos, todos los usuarios que tengan acceso a los recursos del servidor notarán el efecto correspondiente en las operaciones de E/S.

En Exchange 2000 Server, Exchange Server 2003 y Exchange Server 2007, existe un número máximo de carpetas de búsqueda restringida permitido por carpeta. El número máximo predeterminado es 11 y la vigencia predeterminada de la carpeta de búsqueda es 40 días.

Las carpetas de búsqueda restringida se procesan según el procedimiento FIFO (primera en entrar, primera en salir). Si una carpeta ya tiene 11 carpetas de búsqueda restringida asociadas y se hace una nueva solicitud de restricción, la lista de carpetas de búsqueda se evalúa teniendo en cuenta la última utilización de cada restricción. Esto significa que la carpeta de búsqueda restringida menos usada se quita para permitir el procesamiento de la nueva solicitud. Como se mencionó anteriormente, esta acción requiere una pasada completa de la tabla MsgFolder normal y, si el cliente la realiza como acción directa, puede notar un problema de rendimiento mientras que la tabla se construye y se le presenta. Por lo tanto, es posible que a diario o semanalmente se soliciten más de 12 carpetas de búsqueda restringida. Esto provoca que un cliente incurra en una solicitud de restricción que actualmente no tiene una carpeta de búsqueda coincidente. Esto, a su vez, da lugar a la eliminación y la creación de nuevas carpetas de búsqueda restringidas. Todas esas solicitudes se procesan en serie. Eso significa que si tiene muchos usuarios con cantidades de elementos elevadas en carpetas en las que se solicitan regularmente vistas restringidas, esas solicitudes pueden formar una cola. Esto causará una lentitud general que percibirán todos los usuarios que tengan acceso a los datos del buzón que resida en el servidor. Es importante entender que eso no afecta sólo a los usuarios que tienen acceso a sus buzones. Por ejemplo, los usuarios de otros servidores que tengan acceso a los datos de calendario almacenados en el servidor también percibirán la lentitud.

Importante

La instalación de configuraciones regionales adicionales en el cliente puede crear incluso más vistas para el usuario de Outlook Web Access y Outlook en modo en línea.

Vistas restringidas y calendarios compartidos

Al visualizar las carpetas Calendario, Contactos, etc. de otros usuarios, se pueden producir retrasos. Cuando la carpeta ya se ha visualizado, cambiar y volver hacia atrás es bastante rápido. Sin embargo, transcurrido un tiempo, el acceso a la carpeta se ralentizará. El retraso será especialmente largo si el número de elementos del calendario supera los 5.000.

Cuando Outlook tiene acceso a las carpetas de otro usuario, aplica una vista que restringe la capacidad del usuario para ver los elementos privados.

El hecho de aplicar una vista a una carpeta crea carpetas de búsqueda en el almacén. Cuando se crea una carpeta de búsqueda, queda almacenada en la memoria caché para su uso posterior. Si un usuario intenta crear una carpeta de búsqueda que ya existe, se usa la carpeta de búsqueda almacenada en la memoria caché. Eso permite que las futuras visualizaciones se realicen con relativa rapidez.

De manera predeterminada, Exchange no almacena en caché indefinidamente todas las carpetas de búsqueda. Almacenar demasiadas carpetas de búsqueda en la memoria caché produciría retrasos en el servidor asociados con la actualización de las carpetas de búsqueda. Por el contrario, si no se almacena en caché un número suficiente de carpetas de búsqueda, se producirá un problema similar, ya que las carpetas de búsqueda se tendrán que generar y actualizar.

Para ilustrar este problema, imagine el caso en el que el servidor de Exchange se haya configurado para guardar 11 carpetas de búsqueda (vistas) por carpeta. Imagine que Frank tiene una carpeta de calendario que comparte con otros 15 usuarios. Sally tiene acceso a la carpeta y experimenta un retraso mientras su carpeta de búsqueda se genera. Una vez generada, el acceso es rápido. A continuación, Sally no ve la carpeta durante un día pero otros 11 usuarios tienen acceso a la carpeta. Se genera una nueva carpeta de búsqueda para cada uno de ellos. Como sólo hay en caché 11 carpetas de búsqueda, cuando el usuario decimosegundo entra en la carpeta, Exchange elimina la carpeta de búsqueda que se generó para Sally. Así, la próxima vez que Sally tenga acceso a la carpeta, deberá esperar mientras Exchange genera su carpeta de búsqueda.

En cambio, imagine que configuramos el servidor de buzones de Frank para que almacene en caché 20 vistas. Sally y los otros 14 usuarios pueden entrar en la carpeta Calendario de Frank, de manera que sólo se generarán 15 carpetas de búsqueda. Como 15 es un número inferior a 20, nunca tendremos que reciclar una vista, por lo que el acceso será rápido para todos después de la primera vez que entren, que es cuando se crean las carpetas de búsqueda.

El número predeterminado de carpetas de búsqueda en caché es 11. Esta configuración está definida en un nivel de base de datos. El valor configurado se puede visualizar mediante ADSIEdit. Utilice ADSIEdit para visualizar el objeto de almacén y, a continuación, examine el atributo msExchMaxCachedViews. El nombre distintivo es el siguiente:

CN=Base de datos, CN=Grupo de almacenamiento,CN=Almacén de información,CN=NOMBRE de servidor,CN=Servidores,CN=Nombre AG,CN=Grupos administrativos,CN=Nombre de org.,CN=Microsoft Exchange,CN=Servicios,CN=Configuración,DC=Contoso,DC=com.

En algunos casos, puede resultar útil aumentar el valor a más de 11 para mejorar el impacto del rendimiento sobre un determinado entorno.

Importante

El valor definido para el atributo msExchMaxCachedViews nunca debe ser superior a 50.

Importante

Si tiene Outlook 2003 RTM en su entorno, asegúrese de que Service Pack 1 o una versión posterior estén implementados para solucionar un problema conocido de rendimiento lento que se produce al trabajar con calendarios compartidos.