oom killer linux memory linux-kernel kill-process

linux - killer - ¿Qué significa anon-rss y total-vm?



oom killer (1)

Recientemente, el proceso de tomcat en mi máquina Linux fue asesinado abruptamente. Después de la investigación encontré el siguiente mensaje de error en el archivo / var / log / messages:

kernel: [1799319.246494] Out of memory: Kill process 28536 (java) score 673 or sacrifice childSep kernel: [1799319.246506] Killed process 28536 (java) total-vm:1271568kB, anon-rss:426528kB, file-rss:0kB

Ahora, ¿alguien puede decirme por favor qué todo está incluido en total-vm y cómo es anon-rss diferente de rss ?


Según entiendo, el tamaño de la memoria virtual que utiliza un proceso se muestra como "total-vm". Parte de esto está realmente mapeado en la propia RAM (asignada y utilizada). Esto es "RSS".

Parte del RSS se asigna en bloques de memoria real (que no están mapeados en un archivo o dispositivo). Esta es la memoria anónima ("anon-rss") y también hay bloques de memoria RSS que están mapeados en dispositivos y archivos ("file-rss").

Entonces, si abre un archivo enorme en vim, el archivo-rss sería alto, en el otro lado, si malloc () tiene mucha memoria y realmente la usa, su anon-rss también sería alto.

Por otro lado, si asigna mucho espacio (con malloc ()), pero no lo usa, el total-vm sería mayor, pero no se usaría ninguna memoria real (debido a la sobrecarga de memoria), por lo tanto, el los valores rss serían bajos