OneFS: Utilización de la memoria
Summary: En este artículo, se analizan brevemente las categorías de memoria generales y se explica qué categorías de memoria se pueden considerar disponibles o "libres". Se proporcionan reglas para la cantidad de memoria que pueden utilizar ciertos procesos y contenedores. ...
Instructions
Quedarse sin memoria puede provocar el reinicio de los nodos, el reinicio de los procesos y problemas de rendimiento. En este artículo, se explica brevemente cómo evaluar la memoria disponible de un nodo y se hace referencia a algunas pautas técnicas de memoria. En OneFS, la memoria se categoriza ampliamente en cinco áreas o colas: Libre, Inactiva, Cableada, Activa y Buffer
MEMORIA DISPONIBLE
La memorialibre queda inmediatamente disponible para su uso y no se asigna.
La memoria inactiva (Inact) no se ha utilizado recientemente y está disponible para su asignación.
MEMORIA
NO DISPONIBLEEl kernel está usando la memoria cableada y no está disponible para otra asignación.
La memoria activa se ha utilizado recientemente y se asigna al espacio de usuario.
La memoria buffer (Buf) se utiliza para el almacenamiento en caché de disco.
CÁLCULO DE LA MEMORIA
DISPONIBLEEstas categorías de memoria se pueden ver en la parte superior del comando.
Tenga en cuenta que se espera que no se vea una categoría de caché y no se vea nada en la sección Swap:
# top last pid: 98143; load averages: 0.00, 0.02, 0.00 up 48+04:45:17 16:01:09 643 processes: 1 running, 642 sleeping CPU: 0.0% user, 0.0% nice, 0.2% system, 0.0% interrupt, 99.8% idle Mem: 512M Active, 28G Inact, 11G Wired, 12G Buf, 7530M Free Swap:
Si ve el resultado de vmstat -H, verá las páginas de memoria disponibles (AVM) y la memoria libre (FRE) en bytes.
# vmstat -H procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad4 ad7 in sy cs us sy id 0 14 0 9333548 7713640 863 0 0 0 564 15 0 0 428 903 200 0 0 100
La conversión de páginas AVM a bytes muestra la memoria disponible (inactiva + libre):9333548 x 4096 = 38230212608 bytes
Convert to GB 38230212608/(1024^3)= 35.6 GB Available Memory
Si agrega valores Inact y Free desde el archivo top En este ejemplo, se obtiene lo siguiente:28GB + 7.35GB = 35.35GB
Observe que la salida superior ya se redondeó, por lo que es posible que no coincida exactamente con el valor de vmstat.
UTILIZACIÓN DE MEMORIA ESPECÍFICA DEL
PROCESOEl tamaño virtual o vsz (SIZE) se refiere a la memoria asignada a este proceso.
En la página del manual de la parte superior, "TAMAÑO es el tamaño total del proceso (texto, datos y pila)"
El tamaño del conjunto residente (RES) se refiere a la cantidad de memoria física en uso por este proceso.
En la página del manual de la parte superior, "RES es la cantidad actual de memoria residente (tanto SIZE como RES se dan en kilobytes)"top Comando que muestra los seis procesos que utilizan la memoria más virtual:
# top -o size -n 6 last pid: 26745; load averages: 0.15, 0.20, 0.17 up 3+19:06:14 20:03:26 103 processes: 1 running, 102 sleeping Mem: 152M Active, 23G Inact, 14G Wired, 12G Buf, 10G Free Swap:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 10244 root 15 60 r112 592M 310M kqread 3 6:35 0.00% nfs 2698 root 11 20 0 585M 125M select 7 34:41 0.00% isi_celog_monitor 2544 root 26 60 r112 506M 70184K kqread 4 0:05 0.00% isi_papi_d 3217 root 2 26 0 439M 48336K kqread 3 0:13 0.00% isi_celog_capture 2676 root 2 52 0 399M 41540K kqread 2 1:46 0.00% isi_celog_capture 26740 root 2 20 0 399M 40168K kqread 6 0:00 0.00% isi_celog_capture
VALORES MÁXIMOS PARA EL CONSUMO DE MEMORIA DEL CONTENEDOR DE LW Y LOS ARCHIVOS ABIERTOS POR NODO Hay algunos valores máximos publicados para la memoria según la versión de
OneFS. Se explican elementos como los archivos abiertos por nodo y SMB y NFS dentro del contenedor de LW.
Consulte la Guía de especificaciones técnicas de OneFS
- Contenedor de LW: Página 9~23
En OneFS, tres lwio Los contenedores de procesos existen un contenedor para cada proceso de SMB, NFS y Swift. El contenedor de SMB puede ser hasta el 20 % de la RAM total, pero es de al menos 1 GB y de 32 GB como máximo. El contenedor de NFS puede ser hasta el 25 % de la RAM total, pero es de al menos 1 GB y de 8 GB como máximo. El contenedor de Swift es de 512 MB.
- Límite de archivos abiertos: Página 12
La cantidad máxima de archivos abiertos por nodo es del 90 % de la cantidad máxima de vnodes en ese nodo, como se expresa en la siguiente fórmula: kern.maxfiles = kern.maxvnodes * 0.9 Los demonios de protocolo de OneFS, como el demonio de entrada/salida (lwio), puede imponer restricciones adicionales en la cantidad de archivos que un nodo puede tener abiertos. Por lo general, los demonios de protocolo imponen estas restricciones, ya que el kernel impone límites en el consumo de memoria por proceso.
COMPROBAR LA UTILIZACIÓN DE LA MEMORIA CON RESPECTO A LOS VALORES MÁXIMOS
Visualización de la memoria de un lsass Proceso mediante ps:
# ps auwx | egrep "USER|lsass" | grep -v grep USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 14689 0.0 0.3 162112 20404 ?? I 20Feb17 0:33.30 lw-container lsass (lsass)
Comprobación mediante top el comando:
top -n 100 | egrep "SIZE|lsass" PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 14689 root 26 20 0 158M 20764K ucond 2 0:00 0.00% lsass