Aumento en la utilización de swaps sin una tasa swap alta

Aumento en la utilización de swaps sin una tasa swap alta

Todos los sábados, por razones que desconozco, uno de mis servidores experimenta un aumento en la utilización de swap. No es necesariamente un problema ya que hay mucha memoria libre disponible, pero aun así me gustaría entender qué está pasando.

En particular, me desconcierta una situación en la que el swap pasa del 2% utilizado al 100% utilizado en un período de aproximadamente 20 minutos. Sin embargo, cuando esto sucede, no parece haber ningún aumento en el tipo swap. El servidor tiene una partición de intercambio de 8 GB, por lo que esperaría una velocidad de salida de miles de páginas por segundo para llenar el espacio disponible.

Además, no parece haber ningún aumento en la utilización de la memoria en el momento que provoque el intercambio del servidor.

¿Alguien puede dar una explicación del comportamiento observado? El servidor es RHEL 4.8 (antiguo, lo sé) con un Kernel 2.6.9. He incluido algunos resultados de sar a continuación.

La utilización del swap salta del 2% al 100% en unos 20 minutos:

$ sar -r -f sa12
....
06:00:01 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
06:10:01 PM   4583856  11847032     72.10     79676    319804   8178056    207864      2.48     19816
06:20:01 PM   4720904  11709984     71.27     38840    225108   8178400    207520      2.47     19124
06:30:02 PM   4839160  11591728     70.55      1404    144948   1968152   6417768     76.53   6227068
06:40:02 PM   4827016  11603872     70.62      1640    145484     10232   8375688     99.88   8182968
06:50:02 PM   4836376  11594512     70.57       844    123304        60   8385860    100.00   8193044
07:00:01 PM   4825764  11605124     70.63       920    128108      4516   8381404     99.95   8188680
....

Aquí están las estadísticas de intercambio para el mismo período.

$ sar -W -f sa12
....
06:00:01 PM  pswpin/s pswpout/s
06:10:01 PM      0.00      0.00
06:20:01 PM      0.00      0.00
06:30:02 PM      0.68      0.00
06:40:02 PM      1.85      0.00
06:50:02 PM      5.07      0.00
07:00:01 PM      8.62      0.00
....

Respuesta1

Dato interesante: el uso de swap aumentó de 0 a 8 GB... mientras tanto, no se escribió ni un solo byte en el disco (el sar pswpout/smuestra 0). Entonces mi suposición es que el swap fue asignado/reservado, pero no consumido/usado.

Mi mejor suposición es que su servidor usa vm.overcommit_memory=2(leerdocumentación vm.overcommit_memory,contabilidad excesiva de compromiso de vm). En cuyo caso, cada byte asignado se cuenta como utilizado. [No lo marqué].

Quizás también quieras leer el hilo.Linux: intercambio total utilizado = intercambio utilizado por procesos + ??.

Respuesta2

Esto no responde directamente a su pregunta, pero el siguiente guión puede resultar útil en su investigación. Le permite saber cuánto espacio de intercambio está utilizando cada proceso individual:

Descubra qué procesos utilizan swap

Si tiene una idea aproximada de cuándo comienza el intercambio, puede configurar cron para que ejecute este script en ese momento.

información relacionada