La actualización a versiones más recientes de GitHub Enterprise Server suele aumentar el consumo de recursos. Cada versión de actualización de características agrega nuevas funcionalidades, algunas habilitadas de manera predeterminada y otras opcionales, para lo que se necesita más potencia de procesamiento. Los patrones de uso del cliente también afectan a la demanda; por ejemplo, las empresas con decenas de miles de organizaciones pueden ver un mayor uso de los recursos.
Los aumentos de recursos a menudo aparecen como un mayor uso de la CPU, más operaciones de E/S por segundo (IOPS), mayor uso de memoria o trabajos pendientes de cola de Aqueduct más grandes. A fin de prepararte para estos cambios, comprueba la capacidad disponible del sistema y aplica las recomendaciones de corrección antes de la actualización. Ejecuta estas comprobaciones durante las horas más ocupadas del día y la semana para obtener los resultados más precisos.
Requisitos de recursos
Antes de actualizar la instancia, es fundamental comprobar que el sistema cumple los requisitos de recursos necesarios:
- Uso de la CPU por debajo del 70 %
- Uso de memoria por debajo del 70 %
- Disco no saturado
- Cola de Unicornio por debajo de 200–300
- Trabajo pendiente de Aqueduct por debajo de 1–2 horas
Uso de la CPU por debajo del 70 %
-
Comprueba el uso de la CPU. En la Consola de administración, navega a la página de supervisión (
https://HOSTNAME.com:8443/setup/monitor
) para ver el gráficoCPU
.- Si el uso es regularmente inferior al 70 %, continúa a Uso de memoria.
- Si el uso es regularmente superior al 70 %, el sistema no cumple los criterios de actualización.
-
Compara el uso con el promedio de carga de la CPU. La comparación ayuda a identificar la posible saturación del disco.
-
En el gráfico
Load
, haz clic en short-term para mostrar solo la línea a corto plazo. Busca el valor de carga máxima. -
En el gráfico
CPU
, haz clic en idle para mostrar solo la línea inactiva. Anota el valor inactivo en la misma marca de tiempo. -
Calcula el uso:
100 – idle
-
Calcula el porcentaje promedio de carga:
(peak load value ÷ number of vCPUs) × 100
-
-
Interpreta los resultados.
Si el porcentaje medio de carga de la CPU es superior al 50 % del uso, es probable que esto indique contención de recursos. No continúes con la actualización hasta que hayas investigado la posible saturación del disco (consulta Disco no saturado).
Uso de memoria por debajo del 70 %
-
Comprueba el uso de memoria. En la Consola de administración, navega a la página de supervisión (
https://HOSTNAME.com:8443/setup/monitor
) para ver el gráficoMemory
. -
Interpreta los resultados.
- Si el uso de memoria es regularmente inferior al 70 %, continúa a Disco no saturado.
- Si el uso de memoria es regularmente superior al 70 %, el sistema no cumple los criterios para la actualización.
Disco no saturado
-
Comprueba las especificaciones del proveedor. Si el proveedor de hardware o de la nube ofrece métricas de uso de disco, úsalas para confirmar si el disco está saturado.
- Si no hay métricas disponibles, solicita las especificaciones del disco al proveedor, incluido el rendimiento máximo y el número máximo de IOPS.
- Compara estos límites con el uso observado del disco. Si el uso se aproxima a los valores máximos, el disco está saturado.
-
Comprueba los gráficos de disco en la Consola de administración. Ve hasta la página del monitor (
https://HOSTNAME.com:8443/setup/monitor
).-
Consulta los gráficos
Disk Operations
yDisk Traffic
. -
Compara los valores del eje Y con las especificaciones del proveedor (no con la escala máxima que se muestra en el gráfico).
-
Revisa el disco raíz y el de datos.
-
Estos gráficos están disponibles en los paneles predeterminados de la página del monitor.
- Interpreta los resultados. Si el uso del disco se aproxima a los valores máximos definidos por el proveedor, el disco está saturado. En este caso, el sistema no cumple los criterios para actualizar.
Cola de Unicornio por debajo de 200–300
-
Comprueba el gráfico de solicitudes en cola. En la Consola de administración, navega a la página de supervisión (
https://HOSTNAME.com:8443/setup/monitor
) para ver el gráficoQueued Requests
.
Este gráfico está disponible en los paneles predeterminados de la página del monitor.
-
Interpreta los resultados.
- Si las solicitudes en cola se sitúan de forma coherente por debajo de 200, continúa a Trabajo pendiente de Aqueduct por debajo de 1–2 horas.
- Si las solicitudes en cola son habitualmente entre 200-300o superiores, el sistema no cumple los criterios de actualización.
-
Opcional: comprueba el uso del trabajo de Unicornio. Desde el shell administrativo, ejecuta lo siguiente:
ps -ef | grep unicorn | grep -v gitauth | grep -v ".rb" | grep -v init | grep git
Examina la última columna de la salida. Si todos los procesos muestran
> 90% utilization
, se necesitan más trabajos de Unicornio.
Trabajo pendiente de Aqueduct por debajo de 1-2 horas
-
Comprueba la profundidad de la cola de Aqueduct. En la Consola de administración, navega a la página de supervisión (
https://HOSTNAME.com:8443/setup/monitor
) para ver el gráficoAqueduct queue depth
.
Este gráfico aparece en los paneles predeterminados de la página del monitor.
-
Interpreta los resultados.
- Si el trabajo pendiente dura menos de 1-2 horas, cumples este requisito.
- Si el trabajo pendiente dura regularmente más de 1-2 horas, el sistema no cumple los criterios de actualización.
-
Supervisa la cola de
index_high
. Las implementaciones de gran tamaño pueden experimentar aumentos significativos en la profundidad de cola deindex_high
, lo que puede afectar a los trabajos pendientes. Presta especial atención a esta cola al realizar la supervisión.
Si se cumplen todos los criterios (CPU, memoria, disco, cola de Unicornio, trabajo pendiente de Aqueduct) puedes continuar con la actualización a la versión de la característica de destino. Después de la actualización, espera que el consumo de recursos aumente aún más.
Si no se cumple alguno de los criterios, resuelve los problemas subyacentes antes de intentar actualizar.
Actualización de hardware y ajuste de los trabajos
Si el sistema no cumple uno o varios de los requisitos de recursos, deberás aumentar la capacidad antes de actualizar. En las secciones siguientes se describe cómo agregar recursos de hardware y ajustar la configuración de trabajo para resolver cuellos de botella comunes.
- CPU por encima del 70 %
- Memoria por encima del 70 %
- Disco saturado
- Cola de Unicornio por encima de 200-300
- Trabajo pendiente de Aqueduct por encima de 1-2 horas
CPU por encima del 70 %
Si el uso de la CPU es regularmente superior al 70 %:
- Aumenta los recursos de la CPU. Agrega al menos un 20 % más de vCPU.
- Cuenta para nuevos trabajadores. Asigna 1 vCPU por trabajo. Por ejemplo, si agregas 5 trabajos de Unicornio y 10 trabajos de Resque, aumenta las vCPU al menos en 15.
Memoria por encima del 70 %
Si el uso de memoria es regularmente superior al 70 %:
- Aumenta la memoria. Agrega RAM adicional para reducir el uso medio por debajo del 70 %.
- Cuenta para nuevos trabajadores. Asigna 1 GB de memoria por trabajo. Por ejemplo, si agregas 5 trabajos de Unicornio y 10 trabajos de Resque, aumenta la memoria al menos en 15 GB.
Disco saturado
Si la comprobación de saturación de disco indica saturación, actualiza a discos con un mayor rendimiento y un número máximo de IOPS.
Cola de Unicornio por encima de 200-300
Si las solicitudes de Unicornio se ponen en cola constantemente por encima de 200-300, es posible que tengas que agregar más trabajos de Unicornio. Sigue estos pasos para determinar el número total de trabajos de destino y actualizar la configuración.
1. Estimación de trabajos adicionales
Ejecuta el siguiente comando durante las horas punta para ver el uso por trabajo:
ps -ef | grep unicorn | grep -v gitauth | grep -v ".rb" | grep -v init | grep git
Ejemplo:
git 3048972 3045762 0 Aug01 ? 00:07:47 unicorn 3-16-nightly.ghe-test.com[6e6ad46] worker[00]: 20491 reqs, 10.8 req/s, 13ms avg, 85.2% util
git 3048979 3045762 0 Aug01 ? 00:07:53 unicorn 3-16-nightly.ghe-test.com[6e6ad46] worker[01]: 20951 reqs, 12.5 req/s, 13ms avg, 80.3% util
git 3048985 3045762 0 Aug01 ? 00:08:04 unicorn 3-16-nightly.ghe-test.com[6e6ad46] worker[02]: 21502 reqs, 10.5 req/s, 15ms avg, 76.5% util
git 3048992 3045762 0 Aug01 ? 00:07:45 unicorn 3-16-nightly.ghe-test.com[6e6ad46] worker[03]: 20249 reqs, 14.2 req/s, 15ms avg, 86.9% util
El valor medio de solicitudes por segundo es de 12.
A partir de esta salida, calcula el promedio de solicitudes por segundo.
-
En el ejemplo anterior: 12 solicitudes por segundo.
-
El objetivo es reducir las solicitudes en cola a ≤100.
-
Fórmula:
(Queued requests – 100) ÷ avg req/s
-
Ejemplo: (280 - 100) ÷ 12 = se necesitan 15 trabajos adicionales.
Sugerencia
Si quieres confirmar los resultados, puedes ponerte en contacto con nosotros si visitas Soporte técnico para GitHub Enterprise, cargas un paquete y solicitas el número de destino total de trabajos de Unicornio.
2. Comprobación de la configuración actual
Asegúrate de que el número total de trabajos (Unicorn + Resque) no supere las vCPU. Asigna al menos 1 vCPU por trabajo.
Comprueba los números actuales:
-
Trabajos de Unicornio
ps -ef | grep unicorn | grep -v gitauth | grep -v ".rb" | grep -v init | grep git | wc -l
Suma el número calculado de nuevos trabajos a este valor para obtener el destino total.
-
Trabajos de Resque
ps -ef | grep aqueduct-1.1.0 | grep -v "grep aqueduct-1.1.0" | wc -l
3. Ajuste de la configuración
Si la suma de los trabajos de Unicornio + Resque supera las vCPU, agrega más vCPU antes de continuar.
Actualiza el número de trabajos de Unicornio:
ghe-config app.github.github-workers <NUM-WORKERS>
ghe-config-apply
Reemplaza
Trabajo pendiente de Aqueduct por encima de 1-2 horas
Si los trabajos de Aqueduct se retrasan periódicamente durante más de 1-2 horas, agrega trabajos con poca frecuencia para reducir el riesgo de copias de seguridad en cola. Este problema a menudo empeora después de la actualización.
1. Adición de trabajos reducidos
- Aumenta el número de trabajos en 5-10. Tenga en cuenta la capacidad de la CPU: cada trabajo necesita al menos 1 vCPU.
ghe-config app.github.resqued-low-workers <NUM-WORKERS>
ghe-config-apply
Reemplaza
2. Validación del número total de trabajaos
Asegúrate de que el número combinado de trabajos de Unicornio + Resque no supere el número total de vCPU. Consulta Cola de Unicorn por encima de 200-300 para obtener instrucciones sobre cómo comprobar la configuración actual de trabajos.