GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué puede hacer que Linux no responda durante minutos al navegar por ciertos sitios web?

¿Qué puede hacer que Linux no responda?

Sobrecomprometer la RAM disponible, lo que provoca una gran cantidad de intercambio, definitivamente puede hacer esto. Recuerde que la E/S de acceso aleatorio en su disco duro mecánico requiere mover un cabezal de lectura/escritura, que solo puede realizar alrededor de 100 búsquedas por segundo.

Es habitual que Linux salga totalmente a almorzar, si sobreasignas RAM "demasiado". También tengo un disco giratorio y 8 GB de RAM. He tenido problemas con un par de piezas de software con pérdidas de memoria. Es decir. su uso de memoria sigue creciendo con el tiempo y nunca se reduce, por lo que la única forma de controlarlo habría sido detener el software y luego reiniciarlo. Según las experiencias que tuve durante esto, no me sorprende mucho escuchar retrasos de más de diez minutos, si está generando más de 3 GB de intercambio.

No necesariamente verá esto en todos los casos en los que tenga más de 3 GB de intercambio. La teoría dice que el concepto clave es paliza. Por otro lado, si está tratando de cambiar entre dos conjuntos de trabajo diferentes y requiere intercambiar 3 GB de entrada y salida, a 100 MB/s tardará al menos 60 segundos, incluso si el patrón de E/S se puede optimizar perfectamente. En la práctica, el patrón de E/S estará lejos de ser óptimo.

Después de la dificultad que tuve con esto, reformateé mi espacio de intercambio a 2 GB (varias veces más pequeño que antes), para que el sistema no pudiera intercambiar tan profundamente. Puede hacer esto incluso sin perder el tiempo cambiando el tamaño de la partición, porque mkswap toma un parámetro de tamaño opcional.

El equilibrio aproximado es entre quedarse sin memoria y que los procesos se eliminen, y que el sistema se cuelgue durante tanto tiempo que se rinda y reinicie de todos modos. No sé si una partición de intercambio de 4 GB es demasiado grande; podría depender de lo que estés haciendo. Lo importante es estar atento cuando el disco comience a funcionar, verifique el uso de la memoria y responda en consecuencia.

Verificar el uso de memoria de las aplicaciones multiproceso es difícil. Para ver el uso de memoria por proceso sin contar dos veces la memoria compartida, puede usar sudo atop -R , presione M y m y busque en la columna TAMAÑO. También puedes usar smem . smem -t -P firefox mostrará el PSS de todos sus procesos de Firefox, seguido de una línea con el PSS total. Este es el enfoque correcto para medir el uso total de la memoria de los navegadores basados ​​en Firefox o Chrome. (Aunque también hay funciones específicas del navegador para mostrar el uso de la memoria, que mostrará pestañas individuales).


AFAIK, el bloatware no debería hacer que el sistema operativo no responda, por lo que no consideraría ni aceptaría que el bloatware es la causa raíz del problema

No te va a gustar esto, pero creo que el bloatware es su problema (aunque no estoy seguro de si el problema es la memoria o el disco). Desafortunadamente, el kernel de Linux es terrible para manejar situaciones de alta presión de memoria, y se sabe que básicamente requiere un reinicio una vez que se agota la memoria. Hay tres cosas que me llevan a creer que su problema es el agotamiento de los recursos:

  1. Su espacio en disco en raíz (/) y DATA está casi lleno. No estoy seguro de para qué usa DATA, pero he tenido problemas antes con el cambio de tamaño de mi partición raíz demasiado pequeña y mi sistema se vuelve inoperable.
  2. Tiene mucha presión de memoria, lo que significa que su RAM está casi llena. Cuando la memoria RAM comience a llenarse, comenzará a tener errores de página. Las fallas de página ocurren cuando el kernel no puede asignar suficiente memoria para un proceso y, en su lugar, debe usar algunos de los sistemas de espacio de intercambio mucho más lento. Esto nos lleva a nuestra última observación:
  3. Tu espacio de intercambio está casi lleno. Claramente, hay una gran presión de memoria en su sistema, ya que tanto la RAM como el espacio de intercambio están casi llenos.

Básicamente, ponga estos tres juntos y su sistema no tiene suficientes recursos disponibles para hacer casi nada. En cuanto a lo lamentable que es que Linux maneja situaciones de poca memoria (en comparación con, digamos, el kernel NT en Windows), pero parece ser así. Puede encontrar más discusión en este hilo de Reddit y su lista de correo vinculada.

En cuanto a cómo solucionar su situación, diría que aumentar el tamaño de intercambio es una buena idea, pero dado que tiene poco espacio en disco, será un problema. A menos que su servidor de Minecraft tenga mucha gente, creo que sería seguro reducir su memoria a alrededor de 1024 m (yo personalmente uso 1024 m con unas 10 personas y funciona bien). También usaría spigot o papel para tu servidor de Minecraft, ya que tienden a tener un mejor rendimiento.

¡Buena suerte!


¿Cuál es la salida de free -m ? La cantidad de RAM que tienes no tiene sentido si no sabemos cuánto estás usando. Eso y me interesa saber cuánto espacio de intercambio se está usando.

Sin embargo, creo que has respondido tu propia pregunta. Tener "muchas pestañas" abiertas en su navegador definitivamente puede ralentizar su sistema si nunca las cierra, ya que seguirán consumiendo memoria a pesar de todo; cuando su sistema se congela, ¿cuántos tiene abiertos a la vez?

También tiene sentido si su sistema se está congelando debido a otras tareas que consumen mucha memoria, como "generar un gráfico muy grande a partir de un diagrama UML muy complejo". Eso ralentizará absolutamente su sistema a medida que genera el gráfico, por lo que no es una sorpresa.

Realmente parece que esta es la forma en que se supone que debe comportarse su sistema. O eso o me estoy perdiendo algo aquí.

Por cierto, las estadísticas de HDD no importan cuando se trata de que su sistema deje de responder, ya que la falta de memoria casi siempre es la culpable.


Linux
  1. ¿Cuál es la cantidad correcta de espacio de intercambio para un sistema Linux moderno?

  2. ¿Qué hacer cuando Ctrl + C no puede matar un proceso?

  3. ¿Linux puede limpiar la memoria?

  4. E/S de disco OOM de Linux. También:swap, ¿para qué sirve?

  5. ¿Qué comando se puede usar para forzar la liberación de todo en la partición de intercambio a la memoria?

20 pasos para preparar tu PC para la instalación de Linux

Gestión de intercambio en el sistema Linux moderno

Cómo borrar la memoria de intercambio en Linux

Cómo deshabilitar permanentemente el intercambio en Linux

¿Cómo funciona el intercambio de memoria en Linux?

Linux - ¿Cómo puedo ver lo que está esperando el disco IO?