¿La utilización del 100% de la CPU o del 100% de MEM hará que el servidor Linux sea más inestable? De tal manera que falla y necesita reiniciarse.
Porque he oído eso:
"Si limitas el proceso al 90% de la CPU, estás desperdiciando el 10% de la potencia informática en vano"
vs
"Limita el uso de la CPU a menos del 90% para tu proceso o el sistema se vuelve inestable"
¿Cuál de las afirmaciones es verdadera? ¿No debería el sistema operativo Linux manejar casos de alta utilización?
Entiendo que en una máquina cliente, probablemente no quiera un uso del 100% de la CPU, ya que ralentiza los inicios de sesión, los comandos cli y cualquier cosa interactiva. Pero en un servidor que actúa comonodo trabajador, ¿la utilización de la CPU debería ser del 100% o limitarse a menos del 100%? Misma pregunta para el MEM.
Respuesta1
Un servidor con un uso del 100% de la CPU no responderá muy bien a las nuevas tareas y puede ser lento si se usa de forma interactiva, pero debería continuar funcionando. Los nodos trabajadores que ejecutan tareas intensivas de CPU al 100% o cerca de él están bien. Una PC de escritorio, no tanto.
Un servidor con 100% de memoria comenzará a eliminar tareas o colapsará.
Respuesta2
Ésta es una pregunta con una respuesta compleja.
La respuesta corta es que no, la alta utilización de recursos no hará que el servidor sea inestable o falle por sí solo. PERO...
La respuesta larga es que depende. Una utilización elevada de la CPU puede, por ejemplo, dar lugar a tiempos de respuesta deficientes, conflictos de recursos y problemas agravados en los que las solicitudes se ponen en cola más rápido de lo que el servidor puede manejar. Esto efectivamente haría que el servidor sea inestable.
La prioridad del proceso también juega un papel importante aquí. A las tareas de mayor prioridad se les da preferencia al tiempo de CPU, lo que podría provocar que las tareas de menor prioridad acaben sin recursos y, por tanto, haciendo que el sistema sea inestable.
Por otro lado, una tarea intensiva de CPU que se establece intencionalmente en una prioridad baja podría utilizar cualquier CPU que de otro modo estaría inactiva sin afectar notablemente el rendimiento del sistema. Programas como Folding@Home utilizan esto para ejecutarse en segundo plano sin afectar al resto del sistema.
Una utilización elevada de la memoria puede dar lugar a intercambios, lo que reduce aún más el rendimiento del servidor y puede hacer que el servidor sea inestable.
La utilización elevada de la memoria también puede provocar problemas de falta de memoria que provocarían la finalización de los procesos. Eso definitivamente hará que el servidor sea inestable y propenso a fallar.
Todo depende de lo que se supone que debe hacer el servidor. Un servidor web con una utilización tan alta probablemente correría el riesgo de quedar inutilizable, pero un servidor de codificación de vídeo funcionaría bien.
Y luego están las cuestiones del consumo de energía, la generación de calor, la capacidad de refrigeración, etc.
Respuesta3
Eso depende totalmente de lo que HACEN esos servidores.
Aquí una historia. Windows, pero sigue siendo el mismo.
Tengo un agente de software que utilizará un servidor al 100% de la CPU. PERÍODO. Sin importar cuán grande sea. Es un agente de simulación estadística que toma trabajos de un servidor (UNO POR NÚCLEO) y los ejecuta. Con baja prioridad, con un hilo de control de mayor prioridad para asegurarse de que todos estén ocupados.
¿100% CPU es un problema? NO. Esto es lo que se planea hacer.
OTOH, un servidor de base de datos con administración de memoria SMART utilizará tanta memoria como sea posible para el almacenamiento en caché y, de lo contrario, liberará la memoria cuando sea necesario. De nuevo, no hay problema.