¿Qué significan los diferentes contadores de memoria en FreeBSD?


20

arriba me dice:

last pid: 64807;  load averages:  0.99,  0.97,  0.92                                          up 189+04:47:22 09:16:17
45 processes:  1 running, 44 sleeping
CPU:  0.4% user,  0.0% nice,  0.2% system,  6.4% interrupt, 93.0% idle
Mem: 222M Active, 2151M Inact, 2008M Wired, 823M Buf, 3499M Free
Swap: 8192M Total, 8192M Free

Munin muestra esto un poco más claramente:

uso de memoria anual rtr1

Como puede ver, el servidor tiene alrededor de 8 GB de RAM. Me pregunto si puedo meter a esta bestia en un servidor de 2GB más modesto . Ahora sé lo que significan activos y amortiguadores, creo. Pero estoy realmente preocupado por los blobs de memoria "cableados" e "inactivos". Esos no se asignan a ningún proceso existente hasta donde yo sé.

Observe cómo la línea verde "activa" subió en diciembre: fue cuando comenzamos a usar un demonio BGP en este enrutador. No entiendo exactamente lo que sucedió en abril y mayo, pero recuerdo haber realizado una actualización del sistema y cambiar a pkgng en ese momento.

Aquí está el enrutador de repuesto para el primero, con menos ram (4GB):

rtr0 uso de memoria anual

Parece que este vive perfectamente bien con la mitad de la RAM y todavía deja alrededor de 2GB gratis, lo que me lleva a creer que podría cambiar a una caja de 2GB para este servidor, reduciendo los costos y el mantenimiento ...

¿Alguna sugerencia? ¿Qué significan los diversos contadores de memoria que se muestran en la parte superior? Más específicamente, qué hace:

  • Activo
  • Inactivo
  • Cache
  • Tampones
  • Cableado
  • Gratis

...¿realmente significa? He encontrado algunas publicaciones que explican partes del subsistema VM que funcionan, y recuerdo haber tenido un "¡ah-ah!" Momento de entender todo esto hace unos 12 años, pero lo olvidé. :) Incluso el fiel manual de FreeBSD no respondió a mi pregunta ...

¿Puedo rebajar a 2 GB?


Aquí está la versión de Linux de esta pregunta (explicando el freecomando de procps ): linux - uso de memoria real
Adam Katz

Respuestas:


25
  • Active: Memoria utilizada actualmente por un proceso
  • Inactive: Memoria que se ha liberado pero que aún está en caché, ya que se puede volver a usar. Si Freese requiere más memoria, esta memoria puede borrarse y quedar libre. Esta memoria no se borra antes de que sea necesaria, porque "la memoria libre es memoria desperdiciada", no cuesta nada mantener los datos antiguos en caso de que se necesiten nuevamente.
  • Wired: Memoria en uso por el Kernel. Esta memoria no se puede intercambiar
  • Cache: La memoria que se usa para almacenar datos en caché se puede liberar de inmediato si es necesario
  • Buffers: Caché de disco
  • Free: Memoria completamente gratuita y lista para usar. Inactive, CacheY Bufferspuede ser libre si se limpian.

Por lo tanto, puede agregar Inactivea su Freerecuento y considerarlo como no utilizado. Wiredes la memoria en uso por el núcleo, que incluye la pila de red. corriendonetstat -m le dará un resumen del uso de memoria por parte de la pila de red.

Con base en sus gráficos, aparte del salto en la wiredmemoria a principios de marzo, sí, debería poder ejecutar esa carga de trabajo en 2 GB de RAM. Si lo hace, considere ejecutar i386 en lugar de amd64, ya que cada asignación de memoria ocupará menos espacio, ya que los punteros serán de 32 bits en lugar de 64 bits.


1
Memoria "inactiva" "No se puede reasignar a otros procesos", por lo que no debe considerarse "no utilizada". Ver wiki.freebsd.org/Memory
humbads

1
El contador 'Inactivo' se ha dividido en 2 elementos separados en FreeBSD más reciente. 'Inactivo' y 'Lavandería' (memoria que aún necesita ser vaciada para intercambiar o en disco antes de que pueda liberarse). Explicación adicional aquí: lists.freebsd.org/pipermail/freebsd-arch/2016-November/…
Allan Jude
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.