Consideraciones de diseño de SQL ServerSQL Server Design Considerations

Se aplica a: System Center 2016 Operations ManagerApplies To: System Center 2016 - Operations Manager

Para admitir las bases de datos operativas, de almacenamiento de datos y de auditoria de ACS, System Center 2016 Operations Manager requiere acceso a una instancia de un servidor con Microsoft SQL Server 2012, 2014 o SQL Server 2016.System Center 2016 - Operations Manager requires access to an instance of a server running Microsoft SQL Server 2012, 2014, or SQL Server 2016 to support the operational, data warehouse, and ACS audit database. Las bases de datos operativas y de almacenamiento de datos se requieren y se crean cuando implementa su primer servidor de administración en el grupo de administración, mientras que la base de datos de ACS se crea cuando implementa un recopilador de ACS en su grupo de administración.The operational and data warehouse databases are required and created when you deploy the first management server in your management group, while the ACS database is created when you deploy an ACS collector in your management group.

En un entorno de laboratorio o en una implementación a pequeña escala de Operations Manager se puede colocalizar SQL Server en el primer servicio de administración en el grupo de administración.In a lab environment or small-scale deployment of Operations Manager, SQL Server can be co-located on the first management server in the management group. En una implementación distribuida de mediana escala empresarial, se puede localizar la instancia de SQL Server en un servidor independiente dedicado o en una configuración de SQL Server de alta disponibilidad.In a medium to enterprise-scale distributed deployment, the SQL Server instance should be located on a dedicated standalone server or in a SQL Server high-availability configuration. En cualquier caso, SQL Server debe existir y ser accesible antes de empezar la instalación del primer servidor de administración o recopilador de ACS.In either case, SQL Server must already exist and is accessible before you start the installation of the first management server or ACS collector.

Requisitos de SQL ServerSQL Server requirements

Las siguientes versiones de SQL Server son compatibles con instalaciones nuevas o ya existentes de Operations Manager.The following versions of SQL Server are supported for a new or existing installation of Operations Manager.

ComponenteComponent SQL Server 2012, SP3 Enterprise/Standard (x64)SQL Server 2012, SP3 Enterprise/Standard (x64) SQL Server 2014 SP2, Enterprise o Standard (x64)SQL Server 2014, SP2 Enterprise/Standard (x64) SQL Server 2016 Enterprise o Standard (x64)SQL Server 2016 Enterprise/Standard (x64)
Base de datos operativa de Operations ManagerOperations Manager Operational Database Sí.yes Sí.yes Sí.yes
Base de datos de almacenamiento de datos de Operations ManagerOperations Manager Data Warehouse Database Sí.yes Sí.yes Sí.yes
Base de datos de ACS de Operations ManagerOperations Manager ACS Database Sí.yes Sí.yes Sí.yes
Servidor de informes de Operations ManagerOperations Manager Reporting Server Sí.yes Sí.yes Sí.yes
Nota

Las bases de datos de System Center 2016 Operations Manager deben usar la misma versión de SQL Server, la configuración de intercalación de SQL Server debe ser uno de los siguientes tipos admitidos tal y como se describe en esa sección y, para las bases de datos operativas y de almacenamiento de datos, se requiere la búsqueda de texto completo de SQL Server.System Center 2016 – Operations Manager databases must use the same version of SQL Server, the SQL Server collation setting must be one of the following supported types as described in that section, and SQL Server Full Text Search is required for both the operational and data warehouse databases. Las opciones de instalación de Windows Server 2016 (Server Core, servidor con Experiencia de escritorio y Nano Server) compatibles con los componentes de base de datos de Operations Manager se basan en las opciones de instalación de Windows Server compatibles con SQL Server.The Windows Server 2016 installation options (Server Core, Server with Desktop Experience, and Nano Server) supported by Operations Manager database components, are based on what installation options of Windows Server are supported by SQL Server.

Nota

System Center 2016 Operations Manager Reporting no se puede instalar en paralelo con System Center Operations Manager 2012 R2 Reporting y solo debe instalarse en modo nativo.System Center 2016 – Operations Manager Reporting cannot be installed in a side-by-side fashion with the System Center Operations Manager 2012 R2 Reporting and must be installed in native mode only. (No se admite el modo integrado de SharePoint).(SharePoint integrated mode is not supported.)

Al planear el diseño se deben tener en cuenta consideraciones adicionales de hardware y software:Additional hardware and software considerations apply in your design planning:

  • Se recomienda ejecutar SQL Server 2012, 2014 y 2016 en equipos con el formato de archivo NTFS.We recommend that you run SQL Server 2012, 2014, and 2016 on computers with the NTFS file format.
  • Debe haber al menos 1024 MB de espacio libre en disco para la base de datos operativa y de almacenamiento de datos.There must be at least 1024 MB of free disk space for the operational and data warehouse database. Esto se aplica en el momento de creación de la base de datos y es probable que el espacio en disco requerido aumente considerablemente tras la instalación.This is enforced at the time of database creation, and it will likely grow significantly after setup.
  • Se requiere .NET Framework 4..NET Framework 4 is required.
  • Servidor de informes no es compatible con Windows Server Core.Reporting Server is not supported on Windows Server Core.

Para obtener información adicional, consulte Requisitos de hardware y software para instalar SQL Server 2014 o Requisitos de hardware y software para instalar SQL Server 2016.For additional information, please see Hardware and Software Requirements for Installing SQL Server 2014 or Hardware and Software Requirements for Installing SQL Server 2016.

Nota

Durante la instalación inicial de la base de datos operativa, utilice solamente la autenticación de Windows en el servidor SQL Server que hospeda la base de datos operativa de Operations Manager.During the initial installation of the operational database, only use Windows Authentication on the SQL Server that hosts the Operations Manager operational database. No utilice el modo mixto (autenticación de Windows y autenticación de SQL Server), porque si utiliza el modo de autenticación de SQL Server durante la instalación inicial de la base de datos operativa pueden surgir problemas.Do not use Mixed Mode (Windows Authentication and SQL Server Authentication) because using SQL Server Authentication mode during the initial installation of the operational database can cause issues. Aunque es posible habilitar la seguridad de modo mixto en el servidor SQL Server que hospeda la base de datos operativa de Operations Manager, no se admite ya que todo contacto con la base de datos se lleva a cabo con cuentas de Windows solamente.Although enabling Mixed Mode security is possible on the SQL Server hosting the Operations Manager operational database, it is not supported as all contact with the database is accomplished using Windows accounts only.

Configuración de intercalación de SQL ServerSQL Server collation setting

Las intercalaciones de SQL Server y Windows siguientes son compatibles con System Center 2016 - Operations Manager.The following SQL Server and Windows collations are supported by System Center 2016 - Operations Manager.

Intercalación de SQL ServerSQL Server collation

  • SQL_Latin1_General_CP1_CI_ASSQL_Latin1_General_CP1_CI_AS

Intercalación de WindowsWindows collation

  • Latin1_General_100_CI_ASLatin1_General_100_CI_AS
  • French_CI_ASFrench_CI_AS
  • French_100_CI_ASFrench_100_CI_AS
  • Cyrillic_General_CI_ASCyrillic_General_CI_AS
  • Chinese_PRC_CI_ASChinese_PRC_CI_AS
  • Chinese_Simplified_Pinyin_100_CI_ASChinese_Simplified_Pinyin_100_CI_AS
  • Chinese_Traditional_Stroke_Count_100_CI_ASChinese_Traditional_Stroke_Count_100_CI_AS
  • Japanese_CI_ASJapanese_CI_AS
  • Japanese_XJIS_100_CI_ASJapanese_XJIS_100_CI_AS
  • Traditional_Spanish_CI_ASTraditional_Spanish_CI_AS
  • Modern_Spanish_100_CI_ASModern_Spanish_100_CI_AS
  • Latin1_General_CI_ASLatin1_General_CI_AS
  • Cyrillic_General_100_CI_ASCyrillic_General_100_CI_AS
  • Korean_100_CI_ASKorean_100_CI_AS
  • Czech_100_CI_ASCzech_100_CI_AS
  • Hungarian_100_CI_ASHungarian_100_CI_AS
  • Polish_100_CI_ASPolish_100_CI_AS
  • Finnish_Swedish_100_CI_ASFinnish_Swedish_100_CI_AS

Tenga en cuenta que si la instancia de SQL Server no está configurada con una de las intercalaciones admitidas enumeradas anteriormente, la realización de una nueva configuración de Operations Manager producirá un error.Please note that if your SQL Server instance is not configured with one of the supported collations listed earlier, performing a new setup of Operations Manager setup will fail. Sin embargo, una actualización en contexto se completará correctamente.However, an in-place upgrade will complete successfully.

Configuración de firewallFirewall configuration

Operations Manager depende de SQL Server para hospedar las bases de datos y una plataforma de informes para analizar y presentar los datos operativos históricos.Operations Manager depends on SQL Server to host its databases and a reporting platform to analyze and present historical operational data. El servidor de administración y los roles de consola web y de operador tienen que poder comunicarse correctamente con SQL Server, y es importante comprender los puertos y la ruta de comunicación para configurar el entorno correctamente.The management server, Operations and Web console roles need to be able to successfully communicate with SQL Server, and its important to understand the communication path and ports in order to configure your environment correctly.

Si va a diseñar una implementación distribuida que requiera grupos de disponibilidad de SQL Always On para proporcionar funcionalidad de conmutación por error para las bases de datos de Operations Manager, hay ajustes de configuración del firewall que se deben incluir en la estrategia de seguridad de firewall.If you are designing a distributed deployment that will require SQL Always On Availability Groups to provide failover functionality for the Operations Manager databases, there are additional firewall configuration settings that need to be included in your firewall security strategy.

La tabla siguiente le ayuda a identificar los puertos de firewall necesarios para SQL Server que se deben permitir como mínimo para que los roles de servidor en el grupo de administración de Operations Manager se puedan comunicar correctamente.The following table helps you identify the firewall ports required by SQL Server that will need to be allowed at a minimum in order for server roles in your Operations Manager management group to successfully communicate.

EscenarioScenario PuertoPort DirectionDirection Rol de Operations ManagerOperations Manager Role
SQL Server que hospeda bases de datos de Operations ManagerSQL Server hosting Operations Manager databases TCP 1433 *TCP 1433 * EntranteInbound servidor de administración y consola web (para Application Advisor y Diagnóstico de aplicaciones)management server and Web console (for Application Advisor and Application Diagnostics)
Servicio SQL Server BrowserSQL Server Browser service UDP 1434UDP 1434 EntranteInbound Servidor de administraciónmanagement server
Conexión de administración dedicada de SQL ServerSQL Server Dedicated Admin Connection TCP 1434TCP 1434 EntranteInbound Servidor de administraciónmanagement server
Escucha de grupo de disponibilidad de SQL Server Always OnSQL Server Always On Availability Group Listener Puerto configurado por el administradorAdministrator configured port EntranteInbound Servidor de administraciónmanagement server
SQL Server Reporting Services que hospeda el servidor de informes de Operations ManagerSQL Server Reporting Services hosting Operations Manager Reporting Server TCP 80 (predeterminado)/443 (SSL)TCP 80 (default)/443 (SSL) EntranteInbound servidor de administración y consola del operadormanagement server and Operations console

* Aunque el puerto estándar para la instancia predeterminada del motor de base de datos es TCP 1433, si crea una instancia con nombre en un servidor de SQL Server independiente o ha implementado un grupo de disponibilidad de SQL Always On, se definirá un puerto personalizado y se incluirá como referencia para que configure los firewalls correctamente y especifique esta información durante la instalación.* While TCP 1433 is the standard port for the default instance of the Database Engine, if you create a named instance on a standalone SQL Server or have deployed a SQL Always On Availability Group, a custom port will be defined and should be documented for reference so that you properly configure your firewalls and enter this information during setup.

Para obtener información general más detallada sobre los requisitos de firewall para SQL Server, consulte Configure the Windows Firewall to Allow SQL Server Access (Configurar el firewall de Windows para permitir el acceso a SQL Server).For a more detailed overview of the firewall requirements for SQL Server, please see Configure the Windows Firewall to Allow SQL Server Access.

Consideraciones de capacidad y almacenamientoCapacity and storage considerations

Base de datos OperationsManagerOperations Manager database

La base de datos de Operations Manager es una base de datos de SQL Server que contiene todos los datos que necesita Operations Manager para la supervisión diaria.The Operations Manager database is a SQL Server database that contains all of the data needed by Operations Manager for day-to-day monitoring. El ajuste y configuración del servidor de bases de datos es fundamental para el rendimiento general del grupo de administración.Sizing and configuration of the database server is critical to the overall performance of the management group. El recurso más importante que usa la base de datos de Operations Manager es el subsistema de almacenamiento, pero la CPU y RAM también son significativas.The most critical resource used by the Operations Manager database is the storage subsystem, but CPU and RAM are also significant.

Los factores que influyen en la carga de la base de datos de Operations Manager incluyen:Factors that influence the load on the Operations Manager database include:

  • Frecuencia de recopilación de datos operativos.Rate of operational data collection. Los datos operativos constan de todos los eventos, alertas, cambios de estado y datos de rendimiento recopilados por los agentes.Operational data consists of all the events, alerts, state changes, and performance data collected by agents. La mayoría de los recursos usados por la base de datos de Operations Manager se usan para escribir estos datos en el disco a medida que llegan al sistema.Most of the resources that are used by the Operations Manager database are used to write this data to disk as it comes into the system. La frecuencia de los datos operativos recopilados tiende a aumentar a medida que se importan los módulos de administración adicionales y se agregan los agentes adicionales.The rate of operational data collected tends to increase as additional management packs are imported and additional agents are added. El tipo de equipo que supervisa un agente también es un factor importante que se usa al determinar la frecuencia global de recopilación de datos operativos.The type of computer that an agent is monitoring is also an important factor used when determining the overall rate of operational data collection. Por ejemplo, puede esperarse que un agente que supervisa un equipo de escritorio fundamental para la empresa recopile menos datos que un agente que supervisa un servidor que ejecuta una instancia de SQL Server con un gran número de bases de datos.For example, an agent that is monitoring a business-critical desktop computer can be expected to collect less data than an agent monitoring a server that is running an instance of SQL Server with a large number of databases.
  • Frecuencia de cambios de espacio de instancia.Rate of instance space changes. La actualización de estos datos en la base de datos de Operations Manager es costoso en comparación con el costo de escribir nuevos datos operativos.Updating this data in the Operations Manager database is costly relative to writing new operational data. Además, cuando cambian los datos del espacio de instancia, los servidores de administración pueden hacer consultas adicionales a la base de datos de Operations Manager con el fin de calcular los cambios de configuración y de grupo.In addition, when instance space data changes, the management servers make additional queries to the Operations Manager database in order to compute configuration and group changes. La frecuencia de cambios de espacio de instancia aumenta a medida que importa módulos de administración adicionales a un grupo de administración.The rate of instance space changes increases as you import additional management packs into a management group. Agregar nuevos agentes a un grupo de administración también aumenta temporalmente la frecuencia de cambios de espacio de instancia.Adding new agents to a management group also temporarily increases the rate of instance space changes.
  • Número de consolas de Operations Manager y otras conexiones de SDK que se ejecutan simultáneamente.Number of Operations Consoles and other SDK connections running simultaneously. Cada consola de operaciones lee los datos de la base de datos de Operations Manager.Each Operations console reads data from the Operations Manager database. Consultar estos datos consume potencialmente grandes cantidades de almacenamiento de recursos de E/S, tiempo de CPU y RAM.Querying this data consumes potentially large amounts of storage I/O resources, CPU time, and RAM. La mayor carga de la base de datos la suelen provocar las consolas del operador que muestran grandes cantidades de datos operativos en la vista de eventos, vista de estado, vista de alertas y vista de datos de rendimiento.Operations consoles that display large amounts of operational data in the Events View, State View, Alerts View, and Performance Data View tend to cause the largest load on the database.

La base de datos de Operations Manager es un único origen de error para el grupo de administración, por lo que se puede hacer que esté altamente disponible con configuraciones de conmutación por error admitidas, como los grupos de disponibilidad de SQL Server Always On o las instancias de clúster de conmutación por error.The Operations Manager database is a single source of failure for the management group, so it can be made highly available using supported failover configurations such as SQL Server Always On Availability Groups or Failover Cluster Instances.

Base de datos de almacenamiento de datos de Operations ManagerOperations Manager data warehouse database

System Center 2016 – Operations Manager inserta datos en el almacenamiento de datos de informes casi en tiempo real, por lo que es importante que este servidor disponga de capacidad suficiente que permita escribir todos los datos recopilados en el almacén de datos de informes.System Center 2016 – Operations Manager inserts data into the Reporting data warehouse in near-real time, it is important to have sufficient capacity on this server that supports writing all of the data that is being collected to the Reporting data warehouse. Al igual que con la base de datos de Operations Manager, el recurso más importante en el almacenamiento de datos de informes es el subsistema de E/S de almacenamiento.As with the Operations Manager database, the most critical resource on the Reporting data warehouse is the storage I/O subsystem. En la mayoría de los sistemas, las cargas en el almacenamiento de datos de informes son similares a las de la base de datos de Operations Manager, pero pueden variar.On most systems, loads on the Reporting data warehouse are similar to those on the Operations Manager database, but they can vary. Además, la carga de trabajo sobre el almacenamiento de datos de informes por informar es diferente de la carga sobre la base de datos de Operations Manager debida al uso de la consola del operador.In addition, the workload put on the Reporting data warehouse by reporting is different than the load put on the Operations Manager database by Operations console usage.

Los factores que influyen en la carga en el almacenamiento de datos de informes incluyen:Factors that influence the load on the Reporting data warehouse include:

  • Frecuencia de recopilación de datos operativos.Rate of operational data collection. Para permitir una generación de informes más eficaz, el almacenamiento de datos de informes calcula y almacena los datos agregados, además de una cantidad limitada de datos sin procesar.To allow for more efficient reporting, the Reporting data warehouse computes and stores aggregated data in addition to a limited amount of raw data. Este trabajo adicional implica que la recopilación de datos operativos para el almacenamiento de datos de informes puede ser ligeramente más costosa que la base de datos de Operations Manager.Doing this extra work means that operational data collection to the Reporting data warehouse can be slightly more costly than to the Operations Manager database. Este costo adicional normalmente se equilibra mediante la reducción del costo de procesamiento de los datos de detección por el almacenamiento de datos de informes frente a la base de datos de Operations Manager.This additional cost is typically balanced by the reduced cost of processing discovery data by the Reporting data warehouse versus the Operations Manager database.
  • Número de usuarios que informan simultáneamente o generación de informes programados.Number of concurrent reporting users or scheduled report generation. Dado que generalmente los informes resumen grandes volúmenes de datos, cada usuario que informa puede agregar una carga significativa en el sistema.Because reports frequently summarize large volumes of data, each reporting user can add a significant load on the system. Tanto el número de informes que se ejecutan simultáneamente como el tipo de informes que se va a ejecutar afectan a las necesidades de capacidad total.The number of reports run simultaneously and the type of reports being run both affect overall capacity needs. Por lo general, los informes que consultan grandes intervalos de fechas o grandes cantidades de objetos requieren recursos adicionales del sistema.Generally, reports that query large date ranges or large numbers of objects require additional system resources.

En base a estos factores, hay varios procedimientos recomendados que se deben tener en cuenta al cambiar el tamaño del almacenamiento de datos de informes:Based on these factors, there are several best practices to consider when sizing the Reporting data warehouse:

  • Elija un subsistema de almacenamiento adecuado.Choose an appropriate storage subsystem. Dado que el almacenamiento de datos de informes es una parte integral del flujo de datos en el grupo de administración, es importante elegir un subsistema de almacenamiento adecuado para el almacenamiento de datos de informes.Because the Reporting data warehouse is an integral part of the overall data flow through the management group, choosing an appropriate storage subsystem for the Reporting data warehouse is very important. Al igual que con la base de datos de Operations Manager RAID 0 + 1 suele ser la mejor opción.As with the Operations Manager database, RAID 0 + 1 is often the best choice. En general, el subsistema de almacenamiento para el almacenamiento de datos de informes debería ser similar al subsistema de almacenamiento para la base de datos de Operations Manager, y las instrucciones que se aplican a la base de datos de Operations Manager también se aplican al almacenamiento de datos de informes.In general, the storage subsystem for the Reporting data warehouse should be similar to the storage subsystem for the Operations Manager database, and the guidance that applies to the Operations Manager database also applies to the Reporting data warehouse.
  • Considere cuál es la ubicación adecuada de los registros de datos frente a los registros de transacciones.Consider appropriate placement of data logs vs. transaction logs. Al igual que con las bases de datos de Operations Manager, separar los registros de transacciones y de datos de SQL a medida que aumenta el número de agentes suele ser una opción adecuada.As for the Operations Manager database, separating SQL data and transaction logs is often an appropriate choice as you scale up the number of agents. Si tanto la base de datos de Operations Manager como el almacenamiento de datos de informes están ubicados en el mismo servidor y quiere separar los datos y los registros de transacciones, debe poner los registros de transacciones de la base de datos de Operations Manager en un volumen físico y ejes de disco independientes del almacenamiento de datos de informes para obtener algún beneficio.If both the Operations Manager database and Reporting data warehouse are located on the same server and you want to separate data and transaction logs, you must put the transaction logs for the Operations Manager database on a separate physical volume and disk spindles from the Reporting data warehouse to receive any benefit. Los archivos de datos para la base de datos de Operations Manager y el almacenamiento de datos de informes pueden compartir el mismo volumen físico siempre que el volumen proporcione una capacidad adecuada y el rendimiento de E/S del disco no impide la supervisión y generación de informes.The data files for the Operations Manager database and Reporting data warehouse can share the same physical volume as long as the volume provides adequate capacity and disk I/O performance does not impeded monitoring and reporting functionality.
  • Considere la posibilidad de ubicar el almacenamiento de datos de informes en un servidor independiente de la base de datos de Operations Manager.Consider placing the Reporting data warehouse on a separate server from the Operations Manager database. Aunque las implementaciones a menor escala a menudo pueden consolidar la base de datos de Operations Manager y el almacenamiento de datos de informes en el mismo servidor, resulta beneficioso separarlos a medida que aumenta el número de agentes y el volumen de datos operativos entrantes.Although smaller-scale deployments can often consolidate the Operations Manager database and Reporting data warehouse on the same server, it is advantageous to separate them as you scale up the number of agents and the volume of incoming operational data. Esto se debe a que se obtiene un mejor rendimiento en la elaboración de informes cuando el almacén de datos de informes y el servidor de informes se encuentran en un servidor independiente de la base de datos de Operations Manager.This is because better reporting performance results when the Reporting data warehouse and Reporting Server are on a separate server from the Operations Manager database.

La base de datos de almacenamiento de datos de Operations Manager es un único origen de error para el grupo de administración, por lo que se puede hacer que esté altamente disponible con configuraciones de conmutación por error admitidas, como los grupos de disponibilidad de SQL Server Always On o las instancias de clúster de conmutación por error.The Operations Manager data warehouse database is a single source of failure for the management group, so it can be made highly available using supported failover configurations such as SQL Server Always On Availability Groups or Failover Cluster Instances.

SQL Server Always OnSQL Server Always On

Los grupos de disponibilidad Always On de SQL Server admiten entornos de conmutación por error para un conjunto discreto de bases de datos de usuario (bases de datos de disponibilidad).SQL Server Always On availability groups support failover environments for a discrete set of user databases (availability databases). Una réplica de disponibilidad hospeda cada conjunto de bases de datos de disponibilidad.Each set of availability databases is hosted by an availability replica.

Con System Center 2016 Operations Manager, es preferible usar SQL Always On en vez de la conmutación por error para proporcionar alta disponibilidad para bases de datos.With System Center 2016 - Operations Manager, SQL Always On is preferred over failover clustering to provide high availability for databases. En un grupo de disponibilidad Always On se pueden hospedar todas las bases de datos excepto la instalación del modo nativo de Reporting Services, que usa dos bases de datos para separar el almacenamiento de datos persistentes de los requisitos de almacenamiento temporal.All databases except the native mode Reporting Services installation, which uses two databases to separate persistent data storage from temporary storage requirements, can be hosted in an AlwaysOn Availability Group.

Para configurar un grupo de disponibilidad, deberá implementar un clúster de Clústeres de conmutación por error de Windows Server (WSFC) para hospedar la réplica de disponibilidad y habilitar Always On en los nodos de clúster.To set up an availability group you'll need to deploy a Windows Server Failover Clustering (WSFC) cluster to host the availability replica, and enable Always On on the cluster nodes. Luego, puede agregar la base de datos de Operations Manager de SQL Server como una base de datos de disponibilidad.You can then add the Operations Manager SQL Server database as an availability database.

Optimización de SQL ServerOptimizing SQL Server

En general, la experiencia de implementación con clientes muestra que los problemas de rendimiento normalmente no están causados por un alto uso de recursos (es decir,In general, previous deployment experience with customers shows that performance issues are typically not caused by high resource utilization (i.e. procesador o memoria) con SQL Server, sino que están directamente relacionados con la configuración del subsistema de almacenamiento.processor or memory) with SQL Server itself; rather it is directly related to the configuration of the storage subsystem. Normalmente se atribuye a que no se siguen las instrucciones de configuración recomendadas para el almacenamiento de información para la instancia de base de datos de SQL Server.This is commonly attributed to not following recommended configuration guidance for the storage provisioned for the SQL Server database instance.
Dichos ejemplos son:Such examples are,

  • Asignación insuficiente de ejes para que el LUN admita los requisitos de E/S de Operations Manager.Insufficient allocation of spindles for the LUNs to support the IO requirements of Operations Manager.
  • Hospedaje en el mismo volumen de registros de transacciones y archivos de bases de datos.Hosting transaction logs and database files on the same volume. Estas dos cargas de trabajo tienen características de E/S y latencia muy diferentes.These two workloads have very different IO and latency characteristics.
  • Configuración incorrecta de TempDB, con respecto a la ubicación, tamaño, etc.Configuration of TempDB is incorrect with respect to placement, sizing, etc.
  • Error de alineación de particiones de disco de los volúmenes que hospedan los registros de transacciones y archivos de la base de datos y TempDB.Disk partition misalignment of volumes hosting the database transaction logs, database files, and TempDB
  • Omisión de la configuración básica de SQL Server, como el uso de AUTOGROW para los archivos de registro de transacciones y de base de datos, configuración de MAXDOP para el paralelismo de consultas, creación de varios archivos de datos TempDB por núcleo de CPU, etc.Overlooking the basic SQL Server configuration such as using AUTOGROW for database and transaction log files, MAXDOP setting for query parallelism, creating multiple TempDB data files per CPU core, etc.

La configuración de almacenamiento es uno de los componentes fundamentales para la implementación de SQL Server para Operations Manager.Storage configuration is one of the critical components to a SQL Server deployment for Operations Manager. Los servidores de base de datos suelen estar muy limitados en E/S debido a la actividad de lectura y escritura de la base de datos y el procesamiento de registro de transacciones rigurosos.Database servers tend to be heavily I/O bound due to rigorous database read and write activity and transaction log processing. El patrón de comportamiento de E/S de Operations Manager normalmente es de un 20 % de lecturas y un 80 % de escrituras.Operations Manager’s I/O behavior pattern is typically 80% writes and 20% reads. Como resultado, una configuración incorrecta de los subsistemas de E/S puede provocar un rendimiento y funcionamiento deficientes de los sistemas de SQL Server, algo bastante notable en Operations Manager.As a result, improper configuration of I/O subsystems can lead to poor performance and operation of SQL Server systems and becomes quite noticeable in Operations Manager.

Es muy importante probar el diseño de SQL Server mediante la realización de pruebas del subsistema de E/S antes de implementar SQL Server.It is very important to test the SQL Server design by performing throughput testing of the IO subsystem prior to deploying SQL Server. Asegúrese de que estas pruebas pueden cumplir los requisitos de E/S con una latencia aceptable.Make sure these tests are able to achieve your IO requirements with an acceptable latency. Aproveche la herramienta de comparación de rendimiento del subsistema de disco SQLIO para determinar la capacidad de E/S del subsistema de almacenamiento compatible con SQL Server.Leverage the SQLIO disk subsystem benchmarking tool to determine the I/O capacity of the storage subsystem supporting SQL Server. El siguiente artículo de blog, escrito por un miembro del equipo del servidor de archivos en el grupo de producto, proporciona instrucciones y recomendaciones detalladas sobre cómo proceder para realizar pruebas de esfuerzo con esta herramienta con algún código de PowerShell y capturar los resultados con PerfMon.The following blog article, authored by a member of the File Server team in the product group, provides very detailed guidance and recommendations on how to go about performing stress testing using this tool with some PowerShell code, and capturing the results using PerfMon. Para obtener una orientación inicial también puede consultar la Operations Manager Sizing Helper (Aplicación auxiliar para cambio de tamaño de Operations Manager).You can also refer to the Operations Manager Sizing Helper for initial guidance.

Tamaño de la unidad de asignación de NTFSNTFS allocation unit size

La alineación de volumen, conocida comúnmente como la alineación de sectores, se debe realizar en el sistema de archivos (NTFS) cada vez que se cree un volumen en un dispositivo RAID.Volume alignment, commonly referred to as sector alignment, should be performed on the file system (NTFS) whenever a volume is created on a RAID device. Si no lo hace, puede provocar una degradación significativa del rendimiento. Este suele ser el resultado de un error de alineación de partición con límites de unidad de bandas.Failure to do so can lead to significant performance degradation; these are most commonly the result of partition misalignment with stripe unit boundaries. Esto también puede ocasionar un error de alineación de caché del hardware, lo que provocará un uso poco eficaz de la caché de matriz.This can also lead to hardware cache misalignment, resulting in inefficient utilization of the array cache. Al formatear la partición que se usará para los archivos de datos de SQL Server, se recomienda que use un tamaño de unidad de asignación de 64 KB (es decir, 65 536 bytes) para datos, registros y tempdb.When formatting the partition that will be used for SQL Server data files, it is recommended that you use a 64-KB allocation unit size (that is, 65,536 bytes) for data, logs, and tempdb. Pero tenga en cuenta que si usa tamaños de unidades de asignación mayores de 4 KB no podrá usar la compresión NTFS en el volumen.Be aware however, that using allocation unit sizes greater than 4 KB results in the inability to use NTFS compression on the volume. Aunque SQL Server admite datos de solo lectura en los volúmenes comprimidos, no se recomienda hacerlo.While SQL Server does support read-only data on compressed volumes, it is not recommended.

Reserva de memoriaReserve memory

No es tarea sencilla establecer la cantidad adecuada de memoria física y procesadores para asignar en el servidor Windows para SQL Server 2014 y 2016 para que admita System Center 2016 Operations Manager, ni siquiera para otras cargas de trabajo externas a este producto y con dicho fin.Identifying the right amount of physical memory and processors to allocate to the Windows server for SQL Server 2014 and 2016 in support of System Center 2016 - Operations Manager is not an easy question to answer (not even for other workloads outside of this product for that matter). Aunque la calculadora de tamaño proporcionada por el grupo de producto, que se basa en pruebas realizadas en un entorno de laboratorio que pueden coincidir o no con la carga de trabajo y configuración típicas en la realidad, proporciona instrucciones basadas en la escala de la carga de trabajo (es decir, 500 sistemas, 1000 sistemas, etc.), el valor que indica a menudo se pone en entredicho.While the sizing calculator provided by the product group, which is based off of testing performed in a lab environment that may or may not align with the typical workload and configuration in the real-world, provides guidance based on workload scale (i.e. 500 systems, 1000 systems, etc.) the integrity of what's stated is often brought into question. Sirve como recomendación inicial con la que partir, pero no es, ni puede considerarse, la configuración final.It serves as an initial recommendation to start with, however it's not and cannot be considered the final configuration.

De forma predeterminada, SQL Server puede cambiar de forma dinámica los requisitos de memoria, en base a los recursos del sistema disponibles.By default, SQL Server can change its memory requirements dynamically based on available system resources. El valor predeterminado de min server memory es 0 y el valor predeterminado de max server memory es 2147483647.The default setting for min server memory is 0, and the default setting for max server memory is 2147483647. La cantidad mínima de memoria que puede especificar para max server memory es 16 megabytes (MB).The minimum amount of memory you can specify for max server memory is 16 megabytes (MB). Varios problemas de rendimiento y relacionados con la memoria se deben a que el cliente no estableció un valor para max.A number of performance and memory related problems are because customer’s don’t set a value for Max. server memory, y no lo hace porque no sabe qué poner.Server Memory and they don’t do that because they don’t know what to set. Muchos otros factores influyen en la cantidad máxima de memoria que puede asignar a SQL para asegurar que el sistema operativo tiene memoria suficiente para admitir los demás procesos en ejecución en dicho sistema, como la tarjeta de HBA, agentes de administración, examen en tiempo real del antivirus, etc. De lo contrario, el sistema operativo y SQL se paginarán al disco y, después, se producirán incrementos de E/S del disco, reducción adicional del rendimiento y creación de un efecto dominó que se hará patente en Operations Manager.A number of other factors influence the maximum amount of memory you allocate to SQL to ensure the operating system has enough memory to support the other processes running on that system, such as HBA card, management agents, anti-virus real-time scanning, etc. Otherwise, the OS and SQL will page to disk and then disk I/O increases, further decreasing performance and creating a "ripple" effect where it is noticeable in Operations Manager.

SQL Server le permite configurar la cantidad mínima y máxima de memoria que debería reservar y usar este proceso.SQL Server allows you to configure the minimum and maximum amount of memory that should be reserved and used by its process. Se recomienda especificar al menos 4GB de RAM como cantidad mínima.It is recommended to specify at least 4GB of RAM as minimum amount. Esto se debe hacer para cada nodo de SQL que hospede una de las bases de datos de Operations Manager (operativa, almacenamiento de datos, ACS).This should be done for every SQL node hosting one of the Operations Manager databases (Operational, Datawarehouse, ACS).

Se recomienda que empiece primero por reservar 1 GB de RAM para el sistema operativo, 1 GB para cada 4 GB de RAM instalada de 4 a 16 GB y 1 GB para cada 8 GB de memoria RAM instalada por encima de 16 GB de RAM.It is recommended to first start by reserving 1 GB of RAM for the OS, 1 GB for each 4 GB of RAM installed from 4–16 GB, and then 1 GB for every 8 GB RAM installed above 16 GB RAM. Después, supervise el contador de rendimiento de Memoria/MBytes disponibles de Windows para determinar si puede aumentar la memoria disponible para SQL Server por encima del valor inicial.Then monitor the Memory\Available MBytes performance counter in Windows to determine if you can increase the memory available to SQL Server above the starting value. (Nota: este contador debería mantenerse por encima de los 150-300 MB como mínimo. Windows indica la LowMemoryResourceNotification a los 96 MB por lo que quiere un búfer, pero debería considerar tener inicialmente más de 1 GB en servidores más grandes con 256 GB o más de RAM).(Note: This counter should remain above the 150-300 MB at a bare minimum, Windows signals the LowMemoryResourceNotification at 96MB so you want a buffer, but you should consider having it start above 1GB on larger servers with 256 GB or higher RAM). Normalmente esto también ha funcionado para los servidores que están dedicados a SQL Server.This has typically worked out well for servers that are dedicated to SQL Server. También puede ponerse mucho más técnico al determinar dónde establecer “max server memory” al calcular los requisitos de memoria específicos para el sistema operativo, otras aplicaciones, la pila de subprocesos de SQL Server y otros asignadores de varias páginas.You can also get much more technical with determining where to set 'max server memory' by working out the specific memory requirements for the OS, other applications, the SQL Server thread stack, and other multipage allocators. Normalmente sería: ((Memoria total del sistema) – (memoria de pila de subprocesos) – (requisitos de memoria del sistema operativo~ 2-4 GB) – (memoria para otras aplicaciones) – (memoria para asignaciones de varias páginas, SQLCLR, servidores vinculados, etc.)), donde la memoria de pila de subprocesos = ((máx. de subprocesos de trabajo) *(tamaño de la pila)) y el tamaño de la pila es de 512 KB para los sistemas x86, 2 MB para los sistemas x64 y 4 MB para los sistemas IA64.Typically this would be ((Total system memory) – (memory for thread stack) – (OS memory requirements ~ 2-4 GB) – (memory for other applications) – (memory for multipage allocations; SQLCLR, linked servers, etc.)), where the memory for thread stack = ((max worker threads) *(stack size)) and the stack size is 512 KB for x86 systems, 2 MB for x64 systems and 4 MB for IA64 systems. Puede encontrar el valor de “máx. de subprocesos de trabajo” en la columna max_worker_count de sys.dm_os_sys_info.The value for 'max worker threads' can be found in the max_worker_count column of sys.dm_os_sys_info. Pero la suposición con cualquiera de estos métodos es que quiere que SQL Server use todo lo que esté disponible en el equipo, a menos de que haya reservado algo en los cálculos para otras aplicaciones.However, the assumption with either of these methods is that you want SQL Server to use everything that is available on the machine, unless you've made reservations in the calculations for other applications.

A medida que más clientes avanzan hacia la virtualización de SQL Server en su entorno, esta pregunta es más relevante para determinar cuál es la cantidad mínima de memoria que necesita SQL Server para ejecutarse en una máquina virtual.As more customers move towards virtualizing SQL Server in their environment, this question is more relevant in determining what is the minimum amount of memory that a SQL Server will need to run in a virtual machine. Lamentablemente, no hay ninguna manera para calcular cuál es la cantidad de memoria ideal para una determinada instancia de SQL Server podría ser, debido a que SQL Server está diseñado para almacenar datos en caché en el grupo de búferes y normalmente usará toda la memoria que le pueda dar.Unfortunately there is no way to calculate what the ideal amount of memory for a given instance of SQL Server might actually be since SQL Server is designed to cache data in the buffer pool, and it will typically use as much memory as you can give it. Una de las cosas que se debe tener en cuenta cuando intenta reducir la memoria asignada a una instancia de SQL Server es que finalmente llegará a un punto donde se sacrificará la memoria inferior para obtener acceso de E/S a un disco superior.One of the things to keep in mind when you are looking at reducing the memory allocated to a SQL Server instance, is that you will eventually get to a point where the lower memory gets traded off for higher disk I/O access.

Si necesita averiguar la configuración ideal para la memoria de SQL Server en un entorno que se haya sobre aprovisionado, la mejor manera de intentar hacerlo es empezar por realizar una línea base del entorno y las métricas de rendimiento actuales.If you need to figure out the ideal configuration for SQL Server memory in an environment that has been over provisioned, the best way to try to go about doing this is start off with a baseline of the environment and the current performance metrics. Los contadores que comenzarán a supervisar incluyen:Counters to begin monitoring would include:

  • SQL Server:Buffer Manager\Duración prevista de la páginaSQL Server:Buffer Manager\Page Life Expectancy
  • SQL Server:Buffer Manager\Lecturas de página/seg.SQL Server:Buffer Manager\Page reads/sec
  • Disco físico\Lecturas de disco/seg.Physical Disk\Disk Reads/sec

Normalmente si el entorno tiene un exceso de memoria para el grupo de búferes, el valor de Duración prevista de la página continuará aumentando en uno cada segundo y no caerá por debajo de la carga de trabajo porque todas las páginas de datos acabarán siendo almacenadas en caché.Typically if the environment has excess memory for the buffer pool, the Page Life Expectancy value will continue to increase by a value of one every second and it won't drop off under the workload because all of the data pages end up being cached. Al mismo tiempo, el número de SQL Server:Buffer Manager\Lecturas de página/seg. será bajo después de que se produzca el incremento de memoria caché, lo cual también se corresponderá con un valor bajo de Disco físico\Lecturas de disco/seg.At the same time, the number of SQL Server:Buffer Manager\Page reads/sec will be low after the cache ramp up occurs, which will also correspond to a low value for Physical Disk\Disk Reads/sec.

Una vez que tenga la línea base para el entorno, haga un cambio en la opción de sp_configure “max server memory” para reducir el tamaño del grupo de búferes en 1 GB y, después, supervise el impacto en los contadores de rendimiento una vez se hayan estabilizado las cosas del vaciado de caché inicial que normalmente se produce cuando se ejecuta RECONFIGURE en el entorno.Once you have your baseline for the environment, make a change to the sp_configure 'max server memory' option to reduce the size of the buffer pool by 1GB and then monitor the impact to the performance counters after things stabilize from the initial cache flushing that may typically occur when RECONFIGURE is run in the environment. Si el nivel de Duración prevista de la página sigue siendo aceptable para su entorno (teniendo en cuenta que un destino fijo de > = 300 es ridículo para servidores con grandes cantidades de RAM instalada), y el número de SQL Server:Buffer Manager\Lecturas de página/seg. se encuentra dentro de los valores que puede admitir el subsistema de E/S del disco sin degradación del rendimiento, repita el proceso de reducir el valor de sp_configure de “max server memory” en 1 GB y siga supervisando el impacto en el entorno.If the level of Page Life Expectancy remains acceptable for your environment (keeping in mind that a fixed target of >= 300 is ridiculous for servers with large amounts of RAM installed), and the number of SQL Server:Buffer Manager\Page reads/sec is within what the disk I/O subsystem can support without performance degradation, repeat the process of reducing the sp_configure value for 'max server memory' by 1GB and continuing to monitor the impact to the environment.

También puede consultar las instrucciones en MSDN para SQL 2014.You can also refer to the guidance on MSDN for SQL 2014.

Optimizar TempDBOptimize TempDB

El tamaño y la ubicación física de la base de datos tempdb pueden afectar al rendimiento de Operations Manager.The size and physical placement of the tempdb database can affect the performance of Operations Manager. Por ejemplo, si el tamaño definido para tempdb es demasiado pequeño, parte de la carga de procesamiento del sistema puede que se rellene con el crecimiento automático de tempdb hasta el tamaño necesario para admitir la carga de trabajo cada vez que se reinicie la instancia de SQL Server.For example, if the size that is defined for tempdb is too small, part of the system-processing load may be taken up with autogrowing tempdb to the size required to support the workload every time you restart the instance of SQL Server. Para conseguir un rendimiento óptimo, se recomienda la siguiente configuración para tempdb en un entorno de producción:To achieve optimal tempdb performance, we recommend the following configuration for tempdb in a production environment:

  • Establezca el modelo de recuperación de tempdb en SIMPLE.Set the recovery model of tempdb to SIMPLE. Este modelo recupera automáticamente espacio de registro para mantener bajos los requisitos de espacio.This model automatically reclaims log space to keep space requirements small.
  • Asigne espacio previamente para todos los archivos de tempdb estableciendo el tamaño del archivo en un valor lo suficientemente grande como para dar cabida a una carga de trabajo típica del entorno.Preallocate space for all tempdb files by setting the file size to a value large enough to accommodate the typical workload in the environment. Esto evita que tempdb se expanda con demasiada frecuencia, lo que puede afectar al rendimiento.This prevents tempdb from expanding too frequently, which can affect performance. Se puede establecer la base de datos tempdb en crecimiento automático, pero esto debería usarse para aumentar el espacio en disco para las excepciones imprevistas.The tempdb database can be set to autogrow, but this should be used to increase disk space for unplanned exceptions.
  • Cree tantos archivos como sea necesario para maximizar el ancho de banda del disco.Create as many files as needed to maximize disk bandwidth. El uso de varios archivos reduce la contención de almacenamiento de tempdb y produce una escalabilidad considerablemente superior.Using multiple files reduces tempdb storage contention and yields significantly better scalability. Pero no cree demasiados archivos, ya que esto puede reducir el rendimiento y aumentar el trabajo administrativo.However, do not create too many files because this can reduce performance and increase management overhead. Como norma general, cree un archivo de datos para cada procesador lógico en el servidor (teniendo en cuenta los valores de máscara de afinidad) y, después, ajuste el número de archivos hacia arriba o hacia abajo según sea necesario.As a general guideline, create one data file for each logical processor on the server (accounting for any affinity mask settings) and then adjust the number of files up or down as necessary. Como regla general, si el número de procesadores lógicos es menor o igual a 8, use el mismo número de archivos de datos que procesadores lógicos.As a general rule, if the number of logical processors is less than or equal to 8, use the same number of data files as logical processors. Si el número de procesadores lógicos es mayor que 8, use 8 archivos de datos y, después, si se mantiene la contención, aumente el número de archivos de datos en múltiplos de 4 (hasta el número de procesadores lógicos) hasta que la contención se reduzca y alcance niveles aceptables o realice cambios en el código o la carga de trabajo.If the number of logical processors is greater than 8, use 8 data files and then if contention continues, increase the number of data files by multiples of 4 (up to the number of logical processors) until the contention is reduced to acceptable levels or make changes to the workload/code. Si no se reduce la contención, tendrá que aumentar más el número de archivos de datos.If the contention is not reduced, you may have to increase the number of data files more.
  • Haga que cada archivo de datos tenga el mismo tamaño. Esto permite obtener el máximo rendimiento de relleno proporcional.Make each data file the same size; this allows for optimal proportional-fill performance. El tamaño uniforme de archivos de datos es importante porque el algoritmo de relleno proporcional se basa en el tamaño de los archivos.The equal sizing of data files is critical because the proportional fill algorithm is based on the size of the files. Si se crean archivos de datos con distintos tamaños, el algoritmo de relleno proporcional intenta usar el archivo más grande para las asignaciones de página GAM en lugar de distribuir las asignaciones entre todos los archivos, con lo que frustra el propósito de crear varios archivos de datos.If data files are created with unequal sizes, the proportional fill algorithm tries to use the largest file more for GAM allocations instead of spreading the allocations between all the files, thereby defeating the purpose of creating multiple data files.
  • Coloque la base de datos tempdb en un subsistema de E/S rápido con unidades de estado sólido para obtener un rendimiento óptimo.Put the tempdb database on a fast I/O subsystem using solid state drives for the most optimal performance. Cree bandas en disco si hay muchos discos conectados directamente.Use disk striping if there are many directly attached disks.
  • Coloque la base de datos tempdb en discos diferentes de los que usan las bases de datos de usuario.Put the tempdb database on disks that differ from those that are used by user databases.

Para configurar tempdb, puede ejecutar la siguiente consulta o modificar sus propiedades en Management Studio.To configure tempdb, you can run the following query or modify its properties in Management Studio.

 USE [tempdb]
 GO
 DBCC SHRINKFILE (N'tempdev' , 8)
 GO
 USE [master]
 GO
 ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'tempdev', NEWNAME = N'tempdb', SIZE = 2097152KB , FILEGROWTH = 512MB )
 GO
 ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdb2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\tempdb2.mdf' , SIZE = 2097152KB , FILEGROWTH = 512MB )
 GO

Ejecute la consulta de T-SQL SELECT * desde sys.sysprocesses para detectar contención de asignación de páginas de la base de datos tempdb.Run the T-SQL query SELECT * from sys.sysprocesses to detect page allocation contention for the tempdb database. En la salida de tabla del sistema, waitresource puede aparecer como "2:1:1" (página PFS) o "2:1:3" (Página del mapa de asignación global compartida).In the system table output, the waitresource may show up as "2:1:1" (PFS Page) or "2:1:3" (Shared Global Allocation Map Page). Según el grado de contención, esto también podría hacer que SQL Server parezca no responder durante períodos cortos.Depending on the degree of contention, this may also lead to SQL Server appearing unresponsive for short periods. Otro enfoque es examinar las vistas de administración dinámica [sys.dm_exec_request o sys.dm_os_waiting_tasks].Another approach is to examine the Dynamic Management Views [sys.dm_exec_request or sys.dm_os_waiting_tasks]. Los resultados mostrarán que estas solicitudes o tareas están esperando por recursos tempdb y tienen valores similares, tal como se muestra anteriormente al ejecutar la consulta sys.sysprocesses.The results will show that these requests or tasks are waiting for tempdb resources, and have similar values as highlighted earlier when you execute the sys.sysprocesses query.
Si las recomendaciones anteriores no reducen de forma significativa la contención de la asignación y la contención de páginas SGAM, implemente la marca de seguimiento - T1118 en los parámetros de inicio de SQL Server para que permanezca en vigor incluso después de que SQL Server se recicle.If the previous recommendations do not significantly reduce the allocation contention and the contention is on SGAM pages, implement trace flag -T1118 in the Startup parameters for SQL Server so that the trace flag remains in effect even after SQL Server is recycled. Bajo esta marca de seguimiento, SQL Server asigna extensiones completas a cada objeto de base de datos, lo que elimina la contención en las páginas SGAM.Under this trace flag, SQL Server allocates full extents to each database object, thereby eliminating the contention on SGAM pages. Tenga en cuenta que esta marca de seguimiento afecta a todas las bases de datos en la instancia de SQL Server.Note that this trace flag affects every database on the instance of SQL Server.

Grado máximo de paralelismoMax degree of parallelism

La configuración predeterminada de SQL Server para implementaciones de Operations Manager de tamaño pequeño a mediano es adecuada para la mayoría de las necesidades.The default configuration of SQL Server for small to medium size deployments of Operations Manager is adequate for most needs. Pero cuando la carga de trabajo del grupo de administración escala ascendentemente hacia un escenario de clase empresarial (normalmente de sistemas administrados con agente de más de 2000 y una configuración de supervisión avanzada, que incluye la supervisión de nivel de servicio con transacciones sintéticas avanzadas, supervisión del dispositivo de red, multiplataforma, etc.) es necesario optimizar la configuración de SQL Server que se describe en esta sección del documento.However, when the workload of the management group scales upwards towards an enterprise class scenario (typically 2,000+ agent-managed systems and an advanced monitoring configuration, which includes service-level monitoring with advanced synthetic transactions, network device monitoring, cross-platform, and so forth) it is necessary to optimize the configuration of SQL Server described in this section of the document. Una opción de configuración que no se ha tratado en las instrucciones anteriores, es MAXDOP.One configuration option that has not been discussed in previous guidance, is MAXDOP.

La opción de configuración del grado máximo de paralelismo de Microsoft SQL Server (MAXDOP) controla el número de procesadores que se usan para la ejecución de una consulta en un plan paralelo.The Microsoft SQL Server max degree of parallelism (MAXDOP) configuration option controls the number of processors that are used for the execution of a query in a parallel plan. Esta opción determina los recursos de proceso y subproceso que se usan para los operadores de plan de consultas que realizan el trabajo en paralelo.This option determines the computing and thread resources that are used for the query plan operators that perform the work in parallel. Dependiendo de si SQL Server está configurado en un equipo multiproceso simétrico (SMP), un equipo de acceso a memoria no uniforme (NUMA) o procesadores habilitados para hiperproceso, tendrá que configurar adecuadamente la opción de grado máximo de paralelismo.Depending on whether SQL Server is set up on a symmetric multiprocessing (SMP) computer, a non-uniform memory access (NUMA) computer, or hyperthreading-enabled processors, you have to configure the max degree of parallelism option appropriately.
Cuando SQL Server se ejecuta en un equipo con más de un microprocesador o CPU, detecta el mejor grado de paralelismo, es decir, el número de procesadores usados para ejecutar una única instrucción, para cada ejecución de planes paralelos.When SQL Server runs on a computer with more than one microprocessor or CPU, it detects the best degree of parallelism, that is, the number of processors employed to run a single statement, for each parallel plan execution. De forma predeterminada, el valor para esta opción es 0, lo que permite a SQL Server determinar el grado máximo de paralelismo.By default, its value for this option is 0, which allows SQL Server to determine the maximum degree of parallelism.

Las consultas y procedimientos almacenados predefinidos en Operations Manager, ya que se relaciona con la base de datos operativa, de almacenamiento de datos e incluso de auditoría, no incluyen la opción MAXDOP, puesto que no hay ninguna manera durante la instalación de consultar dinámicamente cuántos procesadores se presentan en el sistema operativo ni intenta codificar el valor de esta configuración, lo que podría tener consecuencias negativas cuando se ejecute la consulta.The stored procedures and queries pre-defined in Operations Manager as it relates to the operational, data warehouse, and even audit database do not include the MAXDOP option, as there is no way during installation to dynamically query how many processors are presented to the operating system, nor does it attempt to hardcode the value for this setting, which could have negative consequences when the query is executed.

Nota

La opción de configuración de grado máximo de paralelismo no limita el número de procesadores que usa SQL Server.The max degree of parallelism configuration option does not limit the number of processors that SQL Server uses. Para configurar dicho número, use la opción de configuración de máscara de afinidad.To configure the number of processors that SQL Server uses, use the affinity mask configuration option.

  • Para servidores que usan más de ocho procesadores, use la siguiente configuración: MAXDOP=8.For servers that use more than eight processors, use the following configuration: MAXDOP=8
  • Para servidores que usan ocho o menos procesadores, use la siguiente configuración: MAXDOP=0 a N. Tenga en cuenta que, en esta configuración, N representa el número de procesadores.For servers that use eight or fewer processors, use the following configuration: MAXDOP=0 to N Note In this configuration, N represents the number of processors.
  • Para servidores con NUMA configurado, MAXDOP no debería superar el número de CPU que se asignan a cada nodo de NUMA.For servers that have NUMA configured, MAXDOP should not exceed the number of CPUs that are assigned to each NUMA node.
  • Para servidores que tienen habilitado el hiperproceso, el valor de MAXDOP no debería superar el número de procesadores físicos.For servers that have hyperthreading enabled, the MAXDOP value should not exceed the number of physical processors.
  • Para servidores que tienen NUMA configurado y habilitado el hiperproceso, el valor de MAXDOP no debería superar el número de procesadores físicos por nodo de NUMA.For servers that have NUMA configured and hyperthreading enabled, the MAXDOP value should not exceed number of physical processors per NUMA node.

Puede supervisar el número de trabajadores en paralelo con la consulta sys.dm_os_tasks.You can monitor the number of parallel workers by querying sys.dm_os_tasks.
En una implementación de cliente de Operations Manager 2012, que supervisaba varias cargas de trabajo de infraestructura de centro de datos a través de cinco mil sistemas Windows administrados por agente, la instancia de SQL Server que hospeda la base de datos operativa mostró una degradación del rendimiento significativa.In one customer deployment of Operations Manager 2012, which was monitoring multiple datacenter infrastructure workloads across five thousand Windows agent-managed systems, the SQL Server instance hosting the operational database exhibited significant performance degredation. La configuración de hardware de este servidor es un HP Blade G6 con 24 procesadores de núcleo y 196 GB de RAM.The hardware configuration of this server is a HP Blade G6 with 24 core processors and 196 GB of RAM. La instancia que hospeda la base de datos de Operations Manager tiene una configuración de MAXMEM de 64 GB.The instance hosting the OperationsManager database has a MAXMEM setting of 64 GB. Después de realizar las optimizaciones sugeridas en esta sección, el rendimiento mejoró, pero siguió habiendo un cuello de botella de paralelismo de consultas.After performing the suggested optimizations in this section, performance improved, however there continued to be a query parallelism bottleneck. Después de probar diferentes valores, el rendimiento óptimo se encontró estableciendo MAXDOP=4.After testing different values, the most optimal performance was found by setting MAXDOP=4.

Tamaño inicial de la base de datosInitial database sizing

Calcular el crecimiento futuro de las bases de datos de Operations Manager, concretamente las bases de datos operativas y de almacenamiento de bases de datos, en los primeros meses tras su implementación no es una tarea sencilla.Estimating the future growth of the Operations Manager databases, specifically the operational and data warehouse databases, within the first several months after its deployment is not a simple exercise. Aunque la Operations Manager Sizing Helper es razonable en la estimación de crecimiento potencial en base a la fórmula derivada por el grupo de producto de sus pruebas de laboratorio, no tiene en cuenta varios factores que pueden influir en el crecimiento a corto plazo contra largo plazo.While the Operations Manager Sizing Helper is reasonable in estimating potential growth based on the formula derived by the product group from their testing in the lab, it does not take into account serveral factors which can influence growth in the near term verus long term.

El tamaño inicial de la base de datos, como sugiere la Sizing Helper, se debe asignar a su tamaño previsto, para reducir la fragmentación y la correspondiente sobrecarga, que se puede especificar para las bases de datos operativas y de almacenamiento de datos durante la instalación.The initial database size, as suggested by the Sizing Helper, should be allocated to its predicted size, to reduce fragmentation and corresponding overhead, which can be specified at setup time for the Operational and Data Warehouse databases. Si durante la instalación no hay suficiente espacio de almacenamiento disponible, las bases de datos se pueden expandir más adelante mediante SQL Management Studio y, después, volver a indizar posteriormente para desfragmentar y optimizar según corresponda.If during setup not enough storage space is available, the databases can be expanded later by using SQL Management Studio and then re-indexed thereafter to defragment and optimize accordingly. Esta recomendación también se aplica a la base de datos de ACS.This recommendation applies also to the ACS database.

La supervisión proactiva del crecimiento de la base de datos operativa y de almacenamiento de datos debe realizarse en un ciclo diario o semanal.Proactive monitoring of the growth of the operational and data warehouse database should be performed on a daily or weekly cycle. Esto será necesario para identificar incrementos repentinos de crecimiento significativos y empezar a solucionar problemas para determinar si está provocado por un error en un flujo de trabajo del módulo de administración (es decir, regla de detección, regla de recopilación de rendimiento o de evento o reglas de alerta o monitor) o cualquier otro síntoma con un módulo de administración no identificado durante las pruebas y la fase de control de calidad del proceso de administración de versiones.This will be necessary to identify unexpected and significant growth spurts, and begin troubleshooting in order to determine if it is caused by a bug in a management pack workflow (i.e. discovery rule, performance or event collection rule, or monitor or alert rule) or other symptom with a management pack that was not identified during testing and quality assurance phase of the release management process.

Crecimiento automático de la base de datosDatabase autogrow

Cuando el tamaño de archivo de las bases de datos que se ha reservado en el disco se llena, SQL Server puede aumentar automáticamente el tamaño, en un porcentaje o una cantidad fija.When the databases file size that has been reserved on disk becomes full, SQL Server can automatically increase the size, by a percentage or by a fixed amount. Además, se puede configurar un tamaño máximo de base de datos, para evitar que se llene todo el espacio disponible en disco.Moreover, a maximum database size can be configured, to prevent filling up all the space available on disk. De forma predeterminada, la base de datos de Operations Manager no está configurada con la función de crecimiento automático habilitada, sino que solo lo están las bases de datos de ACS y de almacenamiento de datos.By default, the OperationsManager database is not configured with autogrow enabled; only the Data Warehouse and ACS databases are.

Confíe en el crecimiento automático solo como medida de contingencia para el crecimiento imprevisto.Only rely on autogrow as a contingency for unexpected growth. El crecimiento automático presenta una reducción del rendimiento que se debe tener en cuenta cuando se trabaja con una base de datos altamente transaccional.Autogrow introduces a performance penalty that should be considered when dealing with a highly transactional database. La reducción del rendimiento incluye:Performance penalties include:

  • Fragmentación del archivo de registro o base de datos si no proporciona un incremento de crecimiento adecuado.Fragmentation of the log file or database if you don’t provide an appropriate growth increment.
  • Si se ejecuta una transacción que requiere más espacio de registro del que está disponible y ha activado la opción de crecimiento automático del registro de transacciones de esa base de datos, el tiempo que tarde en finalizar la transacción incluirá el tiempo que tarda el registro de transacciones en crecer la cantidad configurada.If you run a transaction that requires more log space than is available, and you have turned on the autogrow option for the transaction log of that database, then the time it takes the transaction to complete will include the time it takes the transaction log to grow by the configured amount.
  • Si ejecuta una transacción grande que requiere que el registro crezca, otras transacciones que requieran una escritura en el registro de transacciones también tendrán que esperar hasta que se complete la operación de crecimiento.If you run a large transaction that requires the log to grow, other transactions that require a write to the transaction log will also have to wait until the grow operation completes.

Si se combinan las opciones de crecimiento automático y autorreducción, puede crear una sobrecarga innecesaria.If you combine the autogrow and autoshrink options, you might create unnecessary overhead. Asegúrese de que los umbrales que desencadenan las operaciones de crecimiento y reducción no provocarán cambios de tamaño frecuentes.Make sure that the thresholds that trigger the grow and shrink operations will not cause frequent up and down size changes. Por ejemplo, puede ejecutar una transacción que hace que el registro de transacciones crezca en 100 MB en el momento en que confirma.For example, you may run a transaction that causes the transaction log to grow by 100 MB by the time it commits. Algún tiempo después, se inicia la autorreducción y reduce el registro de transacciones en 100 MB.Some time after that the autoshrink starts and shrinks the transaction log by 100 MB. Entonces, vuelve a ejecutar la misma transacción y esta provoca que el registro de transacciones vuelva a crecer 100 MB.Then, you run the same transaction and it causes the transaction log to grow by 100 MB again. En el ejemplo, está creando un trabajo innecesario y probablemente una fragmentación del archivo de registro, y cualquiera de ellas puede afectar negativamente al rendimiento.In that example, you are creating unnecessary overhead and potentially creating fragmentation of the log file, either of which can negatively affect performance.

Se recomienda configurar estos dos valores con mucho cuidado.It is recommended to configure these two settings very carefully. En realidad, la configuración específica depende del entorno.The particular configuration really depends on your environment. Por lo general, se recomienda aumentar el tamaño de la base de datos en una cantidad fija para reducir la fragmentación del disco.In general, it is recommended to increase database size by a fixed amount in order to reduce disk fragmentation. Vea por ejemplo la siguiente figura, donde la base de datos está configurada para crecer en 1024 MB cada vez que se necesita la función de crecimiento automático.See for example the following figure, where the database is configured to grow by 1024 MB each time autogrow is required.

Directiva de clúster de conmutación por errorCluster failover policy

La característica de clústeres de conmutación por error de Windows Server es una plataforma de alta disponibilidad que supervisa constantemente las conexiones de red y el estado de los nodos en un clúster.Windows Server Failover Clustering is a high availability platform that is constantly monitoring the network connections and health of the nodes in a cluster. Si un nodo no es accesible a través de la red, se toma la acción de recuperación para recuperar y poner las aplicaciones y servicios en línea en otro nodo del clúster.If a node is not reachable over the network, then recovery action is taken to recover and bring applications and services online on another node in the cluster. La configuración predeterminada de fábrica está optimizada para errores donde hay una pérdida completa de un servidor, que se considera un error grave.The default settings out of the box are optimized for failures where there is a complete loss of a server, which is considered a ‘hard’ failure. Estos serían los escenarios de error irrecuperable como un error de hardware no redundante o del suministro eléctrico.These would be unrecoverable failure scenarios such as the failure of non-redundant hardware or power. En estas situaciones, se pierde el servidor y el objetivo es que el clúster de conmutación por error detecte rápidamente esta pérdida y se recupere rápidamente en otro servidor del clúster.In these situations, the server is lost and the goal is for Failover Clustering to very quickly detect the loss of the server and rapidly recover on another server in the cluster. Para lograr la recuperación rápida de errores grave, la configuración predeterminada para la supervisión de estado de clúster es bastante exigente.To accomplish this fast recovery from hard failures, the default settings for cluster health monitoring are fairly aggressive. Pero son totalmente configurables para permitir la flexibilidad para diversos escenarios.However, they are fully configurable to allow flexibility for a variety of scenarios.

Estos valores predeterminados ofrecen el mejor comportamiento para la mayoría de los clientes pero, a medida que los clústeres se extienden desde pulgadas hasta posiblemente millas de distancia, el clúster puede exponerse a componentes de red adicionales y potencialmente no confiables entre los nodos.These default settings deliver the best behavior for most customers, however as clusters are stretched from being inches to possibly miles apart, the cluster may become exposed to additional and potentially unreliable networking components between the nodes. Otro factor es que la calidad de los servidores básicos está aumentando constantemente, junto con una resistencia aumentada mediante componentes redundantes (por ejemplo, dos fuentes de alimentación, formación de equipos NIC y E/S de múltiples rutas), el número de errores de hardware no redundante puede ser bastante poco frecuente.Another factor is that the quality of commodity servers is constantly increasing, coupled with augmented resiliency through redundant components (such as dual power supplies, NIC teaming, and multi-path I/O), the number of non-redundant hardware failures may potentially be fairly rare. Debido a que los errores graves pueden ser menos frecuentes, algunos clientes podrían querer ajustar el clúster para los errores transitorios, donde es más resistente a errores de red breves entre los nodos del clúster.Because hard failures may be less frequent, some customers may wish to tune the cluster for transient failures, where the cluster is more resilient to brief network failures between the nodes. Al aumentar los umbrales de error predeterminados puede disminuir la sensibilidad a los problemas de red breves que duran un período de tiempo corto.By increasing the default failure thresholds you can decrease the sensitivity to brief network issues that last a short period of time.

Es importante comprender que no hay ninguna respuesta correcta en este caso y que la configuración optimizada puede variar según sus requisitos empresariales y los contratos de nivel de servicio.It is important to understand that there is no right answer here, and the optimized setting may vary by your specific business requirements and service level agreements.

Virtualización de SQL ServerVirtualizing SQL Server

En entornos virtuales, por motivos de rendimiento, se recomienda que almacene la base de datos operativa y la base de datos de almacenamiento de datos en un almacenamiento conectado directamente y no en un disco virtual.In virtual environments, for performance reasons, it is recommended that you store the operational database and data warehouse database on a direct attached storage, and not on a virtual disk. Use siempre Operations Manager Sizing Helper para hacer una estimación de IOPS necesaria y comprobar los discos de datos con una prueba de esfuerzo.Always use Operations Manager Sizing Helper to estimate required IOPS, and stress test your data disks to verify. Puede aprovechar la herramienta SQLIO para esta tarea.You can leverage the SQLIO tool for this task . Consulte también Compatibilidad de virtualización en Operations Manager para obtener información adicional sobre el entorno virtualizado de Operations Manager.See also Operations Manager virtualization support for additional guidance on virtualized Operations Manager environment.

Always On y el modelo de recuperaciónAlways On and recovery model

Aunque no es estrictamente una optimización, una consideración importante con respecto al grupo de disponibilidad de Always On es que, por diseño, esta característica requiere que las bases de datos se establezcan en el modelo de recuperación "Completo".Although not strictly an optimization, an important consideration regarding Always On Availability Group is the fact that, by design, this feature require the databases to be set in the “Full” recovery model. Esto significa que los registros de transacciones nunca se eliminan hasta que se realice una copia de seguridad completa o solo del registro de transacciones.Meaning, the transaction logs are never discarded until either a full backup is done, or only the transaction log. Por esta razón, la estrategia de copia de seguridad no es opcional, sino una parte necesaria del diseño de Always On para las bases de datos de Operations Manager.For this reason, a backup strategy is not an optional but a required part of the AlwaysOn design for Operations Manager databases. De lo contrario, los discos que contienen los registros de transacciones se llenarán con el tiempo.Otherwise, with time, disks containing transaction logs will fill up.

Una estrategia de copia de seguridad debe tener en cuenta los detalles del entorno.A backup strategy must take into account the details of your environment. En la siguiente tabla se muestra una programación de copia de seguridad típica.A typical backup schedule is given in the following table.

Tipo de copia de seguridadBackup Type ProgramaSchedule
Solo del registro de transaccionesTransaction log only Cada una horaEvery one hour
FullFull Semanalmente, los domingos a las 3:00.Weekly, Sunday at 3:00 AM

Optimización de SQL Server Reporting ServicesOptimizing SQL Server reporting services

La instancia de Reporting Services actúa como un proxy para el acceso a datos en la base de datos de almacenamiento de datos.The Reporting Services instance acts as a proxy for access to data in the Data Warehouse database. Genera y muestra los informes basados en plantillas almacenadas dentro de los módulos de administración.It generates and displays reports based on templates stored inside the management packs.

En segundo plano de Reporting Services, hay una instancia de base de datos de SQL Server que hospeda las bases de datos de ReportServer y ReportServerTempDB.Behind the scenes of Reporting Services, there is a SQL Server Database instance that hosts the ReportServer and ReportServerTempDB databases. Se aplican las recomendaciones generales relacionadas con el ajuste del rendimiento de esta instancia.General recommendations regarding the performance tuning of this instance apply.