¿Debería utilizarse Swap de esta manera?

Tengo un server con Dual Nehalem Quad Core Xeon 5520 y 12GB DDR3 RAM. El uso medio de la memory del server es solamente alnetworkingedor 10-15%, con todo el intercambio usado demuestra el 10% +. ¿Es esto normal, o podría algo estar mal que está causando esto. Tenía la printing de que Swap sólo se utilizaba si no había suficiente memory disponible.

Estoy ejecutando Apache / 2.0.63 en CentOS 5.3.

4 Solutions collect form web for “¿Debería utilizarse Swap de esta manera?”

No hay nada malo en esto. El núcleo visitará gradualmente la memory virutal con el time. Esto también puede ocurrir si su server tiene "picos" de actividad y la memory que tiene actualmente libre se llena rápidamente. La presión en el sistema de memory provoca la salida de páginas hasta que la presión se networkinguce a un punto de ajuste (que se puede examinar en / proc / sys / vm). Incluso en un sistema bastante inactivo, he visto paulatinas páginas con el time. Por lo tanto, a less que el intercambio es bastante activo (un montón de fallos de página que resulta en la actividad de pagination) no me preocuparía por esto.

Si realmente estás preocupado, siempre puedes desactivar el intercambio y luego encenderlo. Esto obligará a las páginas intercambiadas a volver a la memory. No recomiendo hacer esto, pero puedes hacerlo si quieres. Sólo asegúrese de tener suficiente memory libre antes de hacer esto.

Usted no debe preocuparse de esto – el intercambio será utilizado si el kernel considera que los datos no van a ser alcanzados bastante para autorizar tenerlo en la memory física.

Si desea supervisar el uso de "swap" malo, es mejor que supervise la velocidad a la que se producen las lecturas y escrituras de intercambio, no simplemente si se está utilizando en absoluto o no.

Por ejemplo…

# vmstat 3 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- rb swpd free buff cache si so bi bo in cs us sy id wa 1 0 19528 45324 19348 240132 50 17 93 26 30 30 0 1 98 1 0 0 19528 45324 19348 240156 0 0 0 3 9 23 0 0 100 0 0 0 19528 45324 19352 240156 0 0 0 9 9 25 0 0 100 0 0 0 19528 45324 19352 240156 0 0 0 0 5 17 0 0 100 0 

El primer informe le dice cuáles son los estados (promedio) desde que la máquina fue presentada por primera vez, el rest debería (en el caso anterior) promedios de 3 segundos.

Observe el si y so campos son en su mayoría cero – eso es lo que le interesa.

Eso está bien, como ya se ha señalado picos de uso puede causar esto o el kernel puede decidir que algunos elementos se ponen en intercambio porque es más inteligente para utilizar la memory RAM para otra cosa (página caching).

Como respuestas a otras preguntas señaladas sysctl vm.swappiness puede ser de interés para usted evitar esto.

(publicado como una respuesta, ya que fue demasiado largo para agregar como comentario adicional a la respuesta de Avery Payne)

Además, si el swap se ha utilizado durante un período de pico que ha pasado desde entonces puede encontrar que la mayoría de los datos en swap también se encuentra actualmente en RAM. Si Linux lee las páginas de vuelta desde el intercambio a la RAM que no inmediatamente desasignar el espacio de intercambio a less que lo necesita para más datos, de esa manera si tiene que cambiar las páginas de nuevo (y sabe que los datos en ellos no ha cambiado ) en realidad no necesita escribir las páginas en el disco ya que ya están allí.

Vea / proc / meminfo para más detalles. En un pequeño server de la mía actualmente:

 olm:/proc# free -m total used free shanetworking buffers cached Mem: 1487 1457 30 0 15 1094 -/+ buffers/cache: 347 1139 Swap: 980 112 868 olm:/proc# cat meminfo MemTotal: 1523572 kB MemFree: 30688 kB Buffers: 15724 kB Cached: 1120884 kB SwapCached: 67868 kB SwapTotal: 1004052 kB SwapFree: 888928 kB 

Así que aquí ~ 66Mb de los 112Mb de espacio de swap asignado también está presente actualmente en RAM. No tiene sentido que la eliminación de 66Mb de intercambio ya que no hay demanda para el espacio para otros usos (hay un montón de espacio de intercambio completamente libre). Si el swap se llena esas páginas serán reasignadas, si las páginas cambian en RAM se marcarán como sucias y libres para ser reasignadas, pero si necesitan ser intercambiadas de nuevo el kernel puede ahorrarse un montón de escrituras de disco.

Si forzo las cachings de disco y los búferes a borrar con

 sync; echo 3 > /proc/sys/vm/drop_caches 

el resultado permanece igual:

 olm:/proc# free -m total used free shanetworking buffers cached Mem: 1487 1278 209 0 0 979 -/+ buffers/cache: 298 1189 Swap: 980 112 868 olm:/proc# cat meminfo MemTotal: 1523572 kB MemFree: 212320 kB Buffers: 652 kB Cached: 1005732 kB SwapCached: 67868 kB SwapTotal: 1004052 kB SwapFree: 888928 kB 

La lectura "en caching" se mantuvo alta después de pedir que las cachings de disco se borren, ya que esto count la memory asignada a las máquinas virtuales VMWare también debido a la forma en que se asigna. La lectura de SwapCached no se alteró ya que no hay ningún punto de copyr las páginas de nuevo en la RAM sólo porque la RAM es ahora libre – que nunca podría ser necesario antes de la RAM se asigna para otra cosa de nuevo para que esas lecturas se desperdicia.

La situación anterior es ligeramente diferente a la suya en que esta máquina prácticamente siempre tiene toda su RAM asignada a algo (VMs, otros processs, caching de E / S + búferes) pero dependiendo del historial de carga de su máquina desde el último arranque no es improbable que un pedazo de las páginas en el espacio asignado en su área del intercambio es similarmente también en RAM.

  • Cómo quitar la partición SWAP, y agregar de nuevo a la partición raíz en cli
  • ¿Cómo puedo crear una partición de intercambio en Amazon EC2 con almacenamiento efímero?
  • ¿Por qué el host intercambia las máquinas virtuales cuando hay 16 GB de caching de búfer y swappiness = 0?
  • Descartar background en las particiones de intercambio en Linux + SSD
  • ¿Debo desactivar por completo el intercambio para el servidor web de linux?
  • ¿Qué tan grande debe ser la partición de intercambio?
  • ¿Cómo puedo supervisar qué process se está intercambiando?
  • ¿Por qué no quiero habilitar el intercambio?
  • Socket e intercambiar espacio
  • Limitar el uso de memory y minimizar el intercambio de swap en Unix / Linux
  • He instalado Lighttpd en mi VPS, todavía el server web se basa en el intercambio
  • Intercambiar con una enorme cantidad de RAM disponible
  • ¿Cómo conseguir que el asesino de Linux OOM no mata mi proceso?
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.