Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Supervise una instancia de SQL Server periódicamente para confirmar que el uso de memoria se encuentra dentro de los rangos normales.
Configuración de la memoria máxima de SQL Server
De forma predeterminada, una instancia de SQL Server puede consumir con el tiempo la mayor parte de la memoria del sistema operativo Windows disponible en el servidor. Una vez que se ha adquirido la memoria, no se liberará a menos que se detecte presión de memoria. Esto es por diseño y no indica una pérdida de memoria en el proceso de SQL Server. Use la opción memoria de servidor máxima para limitar la cantidad de memoria que SQL Server puede adquirir para la mayoría de sus usos. Para obtener más información, vea la Guía de arquitectura de administración de memoria.
En SQL Server para Linux, establezca el límite de memoria con la herramienta mssql-conf y el valor memory.memorylimitmb.
Supervisión de la memoria del sistema operativo
Para supervisar las condiciones de memoria insuficiente, use los contadores de servidor de Windows siguientes. Muchos contadores de memoria del sistema operativo se pueden consultar a través de las vistas de administración dinámica sys.dm_os_process_memory y sys.dm_os_sys_memory.
Memoria: bytes disponibles Este contador indica cuántos bytes de memoria están disponibles actualmente para su uso por los procesos. Los valores bajos del contador Bytes disponibles pueden indicar una escasez general de memoria del sistema operativo. Este valor se puede consultar mediante T-SQL con sys.dm_os_sys_memory.available_physical_memory_kb.
Memoria: páginas/s Este contador indica el número de páginas que se recuperaron del disco debido a errores de página dura o escritos en el disco para liberar espacio en el conjunto de trabajo debido a errores de página. Un valor alto en el contador Páginas/s puede indicar una paginación excesiva.
Memoria: Errores de página/s Este contador indica la tasa de errores de página para todos los procesos, incluidos los del sistema. Una tasa baja pero distinta de cero de paginación en disco (y, por tanto, de errores de página) es normal, incluso si el equipo tiene mucha memoria disponible. El Administrador de memoria virtual (VMM) de Microsoft Windows sustrae páginas de SQL Server y otros procesos a medida que recorta los tamaños del espacio de trabajo para estos procesos. lo que suele provocar errores de página.
Proceso: Errores de página/s Este contador indica la tasa de errores de página para un proceso de usuario concreto. Supervise Proceso: Errores de página/s para determinar si la actividad de disco está causada por la paginación de SQL Server. Para determinar si SQL Server u otro proceso causan una paginación excesiva, supervise el contador Proceso: Errores de página/s de la instancia del proceso de SQL Server.
Para obtener más información sobre cómo solucionar la paginación excesiva, vea la documentación del sistema operativo.
Aislamiento de la memoria usada por SQL Server
Para supervisar el uso de memoria de SQL Server, use el siguiente uso de objetos de SQL Server. Muchos contadores de objeto de SQL Server se pueden consultar a través de las vistas de administración dinámica sys.dm_os_performance_counters o sys.dm_os_process_memory.
De forma predeterminada, SQL Server cambia dinámicamente sus requisitos de memoria, según los recursos del sistema disponibles. Si SQL Server necesita más memoria, consulta el sistema operativo para determinar si hay memoria física disponible y la utiliza. Si hay poca memoria libre para el sistema operativo, SQL Server vuelve a liberar memoria en el sistema operativo hasta que se reduzca la condición de memoria baja o hasta que SQL Server alcance el límite mínimo de memoria del servidor . Pero se puede invalidar el uso dinámico de la memoria mediante las opciones de configuración del servidor memoria de servidor mínima y memoria de servidor máxima. Para obtener más información, consulta Opciones de configuración de memoria del servidor.
Para supervisar la cantidad de memoria que utiliza SQL Server, examine los siguientes contadores de rendimiento:
SQL Server: Administrador de memoria: memoria total del servidor (KB) Este contador indica la cantidad de memoria del sistema operativo que el administrador de memoria de SQL Server ha confirmado actualmente en SQL Server. Se espera que este número crezca en función de las necesidades de la actividad real y lo haga después del inicio de SQL Server. Consulte este contador mediante la vista de administración dinámica sys.dm_os_sys_info y observe la columna committed_kb.
SQL Server: Administrador de memoria: memoria del servidor de destino (KB) Este contador indica una cantidad ideal de memoria que SQL Server podría consumir, en función de la carga de trabajo reciente. Compárelo con Memoria total del servidor después de un período de funcionamiento normal para determinar si SQL Server tiene una cantidad de memoria deseada asignada. Después del funcionamiento normal, los valores Memoria total del servidor y Memoria del servidor de destino deben ser similares. Si la memoria total del servidor es significativamente inferior a la memoria del servidor de destino, la instancia de SQL Server podría estar experimentando presión de memoria. Durante un período posterior al inicio de SQL Server, se espera que el valor de Memoria total del servidor sea inferior al de Memoria del servidor de destino mientras aumenta Memoria total del servidor. Consulte este contador mediante la vista de administración dinámica sys.dm_os_sys_info y observe la columna committed_target_kb. Para obtener más información y los procedimientos recomendados para configurar la memoria, vea Opciones de configuración de memoria del servidor.
Proceso: Conjunto de trabajo Este contador indica la cantidad de memoria física que está en uso por un proceso actualmente, según el sistema operativo. Observe la instancia de sqlservr.exe de este contador. Consulte este contador mediante la vista de administración dinámica sys.dm_os_process_memory y observe la columna
physical_memory_in_use_kb.Proceso: Bytes privados Este contador indica la cantidad de memoria que un proceso ha solicitado para su propio uso en el sistema operativo. Observe la instancia de sqlservr.exe de este contador. Como este contador incluye todas las asignaciones de memoria solicitadas por sqlservr.exe, incluidas las que no están limitadas por la opción de memoria de servidor máxima, puede notificar valores mayores que la opción de memoria de servidor máxima.
SQL Server: Administrador de búferes: Páginas de base de datos Este contador indica el número de páginas del grupo de búferes con contenido de base de datos. No incluye otra memoria de grupo que no sea de búfer en el proceso de SQL Server. Consulte este contador con la vista de administración dinámica sys.dm_os_performance_counters.
SQL Server: Administrador de búferes: proporción de aciertos de caché del búfer Este contador es específico de SQL Server. Lo recomendables es una proporción de 90 o superior. Un valor mayor de 90 indica que se ha atendido más del 90% de todas las solicitudes de datos desde la caché de datos en memoria sin tener que leer del disco. Para obtener más información sobre el Administrador de búferes de SQL Server, vea el objeto SQL Server, Administrador de búferes. Consulte este contador con la vista de administración dinámica sys.dm_os_performance_counters.
SQL Server: Administrador de búferes: duración prevista de la página Este contador mide la cantidad de tiempo en segundos en que la página más antigua permanece en el grupo de búferes. En los sistemas que usan una arquitectura NUMA, es el promedio de todos los nodos de NUMA. Se recomienda un valor creciente más alto. Una caída repentina indica una renovación significativa de datos dentro y fuera del grupo de búferes, lo que indica que la carga de trabajo no pudo beneficiarse completamente de los datos ya en la memoria. Cada nodo de NUMA tiene su propio nodo del grupo de búferes. En servidores con más de un nodo de NUMA, vea la duración prevista de la página de cada nodo del grupo de búferes mediante SQL Server: Buffer Manager: Duración prevista de la página. Consulte este contador con la vista de administración dinámica sys.dm_os_performance_counters.
Ejemplos
Determinar la asignación de memoria actual
Las consultas siguientes devuelven información sobre la memoria asignada actualmente.
SELECT
(total_physical_memory_kb/1024) AS Total_OS_Memory_MB,
(available_physical_memory_kb/1024) AS Available_OS_Memory_MB
FROM sys.dm_os_sys_memory;
SELECT
(physical_memory_in_use_kb/1024) AS Memory_used_by_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_by_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;
Determinación del uso de memoria actual de SQL Server
La consulta siguiente devuelve información sobre el uso de memoria actual de SQL Server.
SELECT
sqlserver_start_time,
(committed_kb/1024) AS Total_Server_Memory_MB,
(committed_target_kb/1024) AS Target_Server_Memory_MB
FROM sys.dm_os_sys_info;
Determinación de la duración prevista de la página
En la consulta siguiente se usa sys.dm_os_performance_counters para observar el valor Duración prevista de la página actual de la instancia de SQL Server en el nivel general del administrador de búfer y en cada nivel de nodo de NUMA.
SELECT
CASE instance_name WHEN '' THEN 'Overall' ELSE instance_name END AS NUMA_Node, cntr_value AS PLE_s
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Page life expectancy';
Contenido relacionado
- Supervisión del uso de recursos (Monitor de rendimiento)
- sys.dm_os_sys_memory (Transact-SQL)
- sys.dm_os_process_memory (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)
- sys.dm_os_performance_counters (Transact-SQL)
- Administrador de memoria (objeto de SQL Server)
- Administrador de búfer (objeto de SQL Server)
- Opciones de configuración de la memoria del servidor
- Guía de arquitectura de administración de memoria