REVISIÓN: Error de falta de memoria cuando el espacio de direcciones virtuales del proceso de SQL Server es muy poco memoria disponible

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 3074434
Aviso
Después de aplicar esta actualización, se debe agregar el seguimiento indicador - T8075 como parámetro de inicio para permitir este cambio.
Síntomas
Cuando ejecuta una consulta en una versión de 64 bits de 2014 de Microsoft SQL Server o Microsoft SQL Server 2012, recibirá un mensaje de error de falta de memoria similar al siguiente en el registro de errores de SQL Server:

No se pudo asignar páginas: FAIL_PAGE_ALLOCATION 513

Las consultas tardan mucho tiempo en Finalizar ejecución y encontrar SOS_MEMORY_TOPLEVELBLOCKALLOCATOR esperas.

Al examinar los siguientes puntos de información, encontrará que hay un espacio virtual de direcciones disponible muy bajo:

  • Memoria Virtual disponible de DBCC MEMORYSTATUS - sección cuenta de proceso o sistema:
  • DMV: sys.dm_os_process_memory - virtual_address_space_available_kb de columna
Estos valores empiezan alrededor de 8 terabytes (TB) en un x64 de proceso y seguir Subir abajo y llegar a unos pocos gigabytes (GB).

Cuando esté en la etapa donde el espacio de direcciones virtual disponible es muy bajo, las consultas que intente realizar la asignación también puede encontrar un tipo de espera de CMEMTHREAD de memoria.

Los siguientes puntos de datos continuará aumentando con el tiempo:
  • DMV: sys.dm_os_process_memory y sys.dm_os_memory_nodes - virtual_address_space_reserved_kb de columna
  • VM de DBCC MEMORYSTATUS - sección del Administrador de memoria - reservado

Estos valores normalmente aumentará en múltiplos del valor "max server memory" hasta casi 8 TB.
Causa
Cuando el proceso de SQL Server alcanza el estado donde Total Server Memory = memoria del servidor de destino = memoria máxima del servidor, hay directivas en el Administrador de memoria de SQL Server para permitir que las nuevas asignaciones a solicitar varias páginas de 8 KB para triunfar temporalmente. Patrón de asignación repetida bajo dicha condición puede causar la fragmentación de los bloques de memoria y el consumo de espacio de direcciones virtuales. Si este proceso se repite muchas veces, se agotará el espacio de direcciones virtuales de SQL Server, y observará los síntomas que se han mencionado anteriormente.
Solución

Información de la revisión

Para resolver este problema, instale la revisión desde REVISIÓN: Error cuando el procedimiento almacenado llama a otro procedimiento almacenado en un servidor vinculado en SQL Server de 2014.

Requisitos previos

Debe tener Actualización acumulativa 3 para SQL Server 2014 Service Pack 1 instalado para aplicar esta revisión.

Aviso

Después de aplicar esta actualización, se debe agregar el seguimiento indicador - T8075 como parámetro de inicio para permitir este cambio.

Información de actualización acumulativa

El problema se solucionó primero en la siguiente actualización acumulativa de SQL Server.

Recomendación: Instale la actualización acumulativa más reciente para SQL Server
Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de la seguridad que se incluyeron en la actualización acumulativa anterior. Recomendamos que se descargue e instalación las actualizaciones acumulativas más recientes para SQL Server:


Esta revisión evita que la salida de la memoria y la reducción continua del espacio de direcciones virtuales disponibles que puede experimentar.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Más información
  • Windows 2012 R2 permite el espacio de direcciones virtuales crecer hasta 128 TB. Por lo tanto, no puede observar este problema en entornos Windows 2012 R2. Para obtener más información, consulte el tema siguiente en el centro de desarrollo de Windows:

    Límites de memoria para las versiones de Windows y Windows Server
  • Si ve el continuo crecimiento en el espacio de direcciones virtuales incluso después de aplicar la revisión, puede determinar qué consultas u operaciones solicitan grandes fragmentos de memoria utilizando la Page_allocated evento ampliada. Una secuencia de comandos de ejemplo tiene el siguiente aspecto:

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO
    Normalmente, son las copias de seguridad del registro y operaciones de mantenimiento del índice, que ocurren con frecuencia.

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 3074434 - Última revisión: 10/10/2016 02:23:00 - Revisión: 9.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3074434 KbMtes
Comentarios