¿Qué está consumiendo mi RAM en VPS?

¿Qué está consumiendo mi RAM en VPS?

Estoy corriendo arriba y veo que de 502968 KB, se usan 48064 KB dejando 16884 KB libres. Pero luego, cuando miro los procesos individuales, veo que mysql consume en ocasiones el 9,4% de mi RAM, pero nada más parece consumir nada. ¿Qué está consumiendo toda mi RAM?

Aquí hay una captura de pantalla desde arriba:

top - 20:46:07 up 1 min,  1 user,  load average: 0.18, 0.05, 0.02
Tasks:  81 total,   1 running,  80 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.4 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    502968 total,   241236 used,   261732 free,    10488 buffers
KiB Swap:   524284 total,        0 used,   524284 free,   106756 cached

PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
1584 dmackey   20   0 20508 1372 1000 R   0.4  0.3   0:00.01 top
1 root      20   0 26664 2456 1340 S   0.0  0.5   0:00.69 init
2 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kthreadd
3 root      20   0     0    0    0 S   0.0  0.0   0:00.01 ksoftirqd/0
4 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kworker/0:0
5 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/0:0H
6 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kworker/u:0
7 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/u:0H
8 root      rt   0     0    0    0 S   0.0  0.0   0:00.00 migration/0
9 root      20   0     0    0    0 S   0.0  0.0   0:00.00 rcu_bh
10 root      20   0     0    0    0 S   0.0  0.0   0:00.24 rcu_sched
11 root      rt   0     0    0    0 S   0.0  0.0   0:00.00 watchdog/0
12 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 cpuset
13 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 khelper
14 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kdevtmpfs
15 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 netns
16 root      20   0     0    0    0 S   0.0  0.0   0:00.00 bdi-default

Y aquí hay uno gratis:

            total       used       free     shared    buffers     cached
Mem:        502968     355252     147716          0      10816     111548
-/+ buffers/cache:     232888     270080
Swap:       524284          0     524284

Respuesta1

Nada.

Es Linux, y eso escómo funciona.

Utilizará memoria "libre" para el almacenamiento en caché del disco, porque ¿qué sentido tiene tener un recurso infrautilizado?

Cuando un proceso quiere más memoria, la solicitará al kernel y (generalmente) la obtendrá.

Ah... y MySQL usará todo lo que necesite (según lo configurado en /etc/my.cnf) para que los índices, consultas y tablas se almacenen en caché desde el disco a la memoria para acelerar los tiempos de acceso.

Respuesta2

Es simplemente cualquier basura que quede en la memoria de cómo se usó por última vez. Lo más probable es que sean datos leídos del disco o escritos en el disco. El sistema operativo no libera memoria porque es un desperdicio por tres razones:

  1. Si la memoria no se utiliza pronto, liberarla no sirve de nada.

  2. Si la memoria se utiliza pronto, liberarla es solo un trabajo que debe deshacerse ya que debe volver a usarse.

  3. Si se necesita nuevamente la información que estaba en la memoria, liberar la memoria significará tener que obtener esa información del disco en lugar de la memoria, que es mucho más lenta.

Los sistemas operativos modernos sólo liberan memoria si no tienen otra opción. Si estás pensando: "Quiero que esa memoria esté libre ahora para poder usarla más tarde", detente. No es necesario que la memoria esté libre ahora para poder utilizarla más tarde. No hay ninguna compensación aquí, es una pura ganancia mantener la memoria en uso hasta que sea necesaria.

Respuesta3

Registrar el resultado de top para análisis futuros es la mejor manera de responder a su pregunta. No existe una solución rápida; será necesaria alguna investigación observada a lo largo del tiempo. Algo único que uso para hojear la superficie de lo que está usando mi memoria es poner esto en el crontab de root.

/bin/bash top -b -n 1 | head > `/var/log/date +%e_%T`

Luego utilizo algo de manipulación de texto y buscapersonas para rastrear tendencias. Esta publicación de desbordamiento de pilahttps://stackoverflow.com/questions/7908953/how-to-measure-cpu-usagetiene algunos ejemplos más completos sobre el uso de top como este y la personalización de top mediante .toprc, para las estadísticas de la CPU, pero se puede adaptar fácilmente para satisfacer sus necesidades.

información relacionada