Solución de problemas de uso elevado de CPU en un servidor WSUS
En este artículo se presentan varios procedimientos para solucionar problemas de uso elevado de CPU en Windows Server Update Service (WSUS).
Nota:
Usuarios domésticos: este artículo está pensado solo para agentes de soporte técnico y profesionales de TI. Si busca ayuda con un problema, pregunte a la Comunidad de Microsoft.
Versión original del producto: Configuration Manager (rama actual)
Número de KB original: 4489045
Se puede producir un uso elevado de la CPU si la base de datos WSUS (SUSDB) no está limpia. Una vez que el servidor se ejecuta durante un tiempo, puede haber demasiadas actualizaciones para que el servidor WSUS proporcione a los clientes.
En esta situación, si se produce un error o se instala un nuevo servidor WSUS o un problema no relacionado impide que los clientes examinen durante unos días, todos los clientes pueden iniciar el examen y seguir examinando constantemente y nunca completar realmente un examen o instalar actualizaciones.
Para corregir el problema, debe limpiar el servidor WSUS y rechazar las actualizaciones reemplazadas. Siga los pasos descritos en el orden siguiente como una rutina de limpieza mensual. Sin embargo, si va a solucionar problemas elevados de CPU, se recomienda realizar primero el paso 4 y, a continuación, el paso 3. Debe aplazar los pasos 1 y 2 hasta que el nivel de uso de la CPU disminuya.
Paso 1: Copia de seguridad de la base de datos WSUS
La copia de seguridad de la base de datos WSUS puede mejorar ligeramente el rendimiento.
Paso 2: Ejecutar el Asistente para limpieza del servidor WSUS
La ejecución del Asistente para limpieza del servidor WSUS puede mejorar el rendimiento de la base de datos. Sin embargo, no reduce el número de actualizaciones que examinan los clientes. Además, el asistente puede tardar muchas horas o días en ejecutarse sin resolver necesariamente el problema.
Paso 3: Volver a indexar la base de datos WSUS
Volver a indexar la base de datos WSUS puede mejorar el rendimiento de la base de datos si está fragmentado. Para ello, ejecute los siguientes comandos.
Actualice mediante
statistics
laFULLSCAN
opción .Use <dbname> Go Exec sp_msforeachtable 'update statistics ? with fullscan' Go
Vuelva a generar los índices.
Use <dbname> Go Exec sp_msforeachtable 'DBCC DBREINDEX (''?'')' Go
Paso 4: Rechazar actualizaciones reemplazadas
La disminución de las actualizaciones reemplazadas reduce inmediatamente el número de actualizaciones que se están examinando.
Para rechazar las actualizaciones reemplazadas o realizar cualquier acción de WSUS en una situación en la que el grupo de aplicaciones de WSUS se recicla demasiado rápidamente, primero puede impedir que los clientes se conecten al grupo de aplicaciones de WSUS. Para ello, conéctese al servidor WSUS mediante la consola de WSUS y, a continuación, sincronice el servidor WSUS con el servidor ascendente y con Configuration Manager (si se usa). Si usa Configuration Manager, es importante sincronizar con la versión más reciente de la actualización en la consola de Configuration Manager para que los clientes vean que WSUS tiene actualizaciones actuales y válidas.
Para desconectar los clientes, use uno de los métodos siguientes.
Método 1: Creación de un grupo de aplicaciones de prueba
Haga clic con el botón derecho en Grupos de aplicaciones en el área Administrador de Internet Information Services (IIS) y seleccione Agregar grupo de aplicaciones para crear un grupo de aplicaciones de prueba.
Seleccione Client web service>Manage application Advanced settings (Administrar la configuración avanzada de la aplicación>) y, a continuación, cambie el grupo de aplicaciones de prueba al grupo de aplicaciones de prueba que creó.
Método 2: Cambiar el puerto del sitio web de WSUS
Seleccione WSUS Administration Web Site Edit Bindings (Editar enlaces del sitio>web de administración de WSUS).
Cambie la consola de WSUS para conectarse al nuevo puerto, ejecute el script y sincronice con USS.
Nota:
Este método hará que se produzca un error en la sincronización con Configuration Manager.
Método 3: Usar reglas de firewall para bloquear todas las direcciones IP de cliente o permitir solo las conexiones entrantes del servidor de sitio y USS
Una vez que los clientes se desconectan del servidor WSUS, puede ejecutar el script de PowerShell mediante los -skipdecline
parámetros (y -exclusion
período, si es necesario) para determinar el número total de actualizaciones reemplazadas que se pueden rechazar. A continuación, vuelva a ejecutar el script mediante -skipdecline
para rechazar realmente las actualizaciones.
En casos extremos en los que el script de PowerShell no se puede ejecutar debido a tiempos de espera, puede agregar la columna de sustitución a la consola de WSUS cuando se muestren todas las actualizaciones y, a continuación, rechazar las actualizaciones manualmente siguiendo estos pasos:
- Abra microsoft Management Console (MMC) de Windows Update Services.
- Seleccione la vista Todas las actualizaciones. Para ello, establezca la pantalla para mostrar el estado Aprobación de Cualquiera excepto Rechazado con el estado Any y, a continuación, haga clic en Actualizar.
- Haga clic con el botón derecho en los encabezados de columna y seleccione Sustitución.
- Haga clic con el botón izquierdo en la columna Sustitución para ordenar por sustitución.
- Seleccione y rechace las actualizaciones reemplazadas.
Normalmente, el problema de rendimiento se puede resolver después de que la actualización válida se reduzca a menos de 7000 conexiones (pero se prefiere menos de 5 000). Es posible que tenga que restringir las conexiones al sitio web de administración de WSUS durante unos días para permitir que los clientes completen todos los exámenes. También se recomienda volver a indexar la base de datos después de rechazar las actualizaciones reemplazadas. Si usa Configuration Manager, realice también una sincronización entre WSUS y Configuration Manager mientras los clientes no se conectan.
Después de completar estos pasos, debe limitar las conexiones si el uso de la CPU sigue siendo demasiado alto. Para ello, siga estos pasos:
Abra Internet Information Services (IIS) Manager WSUS Administration Web Site>Manage web site>Advanced settings>Limits Maximum concurrent connections (Límites máximos de conexiones simultáneas>) del administrador>de Internet Information Services (IIS).
Establezca el valor en 50 o 100.
Supervise el proceso de W3Wp en el Administrador de tareas y el total de CPU en el servidor.
Abra el Monitor de recursos del Administrador> de tareas y anote el PID del grupo de aplicaciones de WSUS. Si no está seguro de qué proceso de w3wp ejecuta el grupo de aplicaciones de WSUS, puede usar Appcmd (método 2) para identificar el PID fácilmente.
De forma predeterminada, el PID solo debe cambiar una vez cada 29 horas. Si cambia con más frecuencia, el límite de conexión puede ser demasiado alto para la configuración actual de CPU y memoria para el grupo de aplicaciones de WSUS.
Supervise la memoria de w3wp estable y el uso general de CPU estable de menos del 90 %. A medida que disminuye el uso de cpu y memoria de estado estable, puede aumentar lentamente los límites de conexión al sitio web de administración de WSUS. Según el tipo de situación en la que se encuentre, el uso de memoria puede tardar varios días en volver a un estado estable. Es posible que sea necesario aumentar los límites de conexión en incrementos pequeños y durante varios días.
Referencia
Cpu alta/memoria alta en WSUS después de los martes de actualización