OneFS: Utilizzo della memoria
Summary: In questo articolo vengono illustrate brevemente le categorie di memoria generali e quali categorie di memoria possono essere considerate disponibili o "libere". Vengono fornite linee guida per il numero di memoria che può essere utilizzato da determinati processi e container. ...
Instructions
L'esaurimento della memoria può causare il riavvio dei nodi, il riavvio dei processi e problemi di prestazioni. Questo articolo spiega brevemente come valutare la memoria disponibile di un nodo e fa riferimento ad alcune linee guida tecniche relative alla memoria. In OneFS, la memoria è ampiamente classificata in cinque aree o code: Libera, Inattiva, Cablata, Attiva e Buffer
MEMORIA DISPONIBILE
La memorialibera è immediatamente disponibile per l'uso e non viene allocata.
La memoria inattiva (Inact) non è stata utilizzata di recente ed è disponibile per essere allocata.
MEMORIA NON
DISPONIBILELa memoria cablata è in uso dal kernel e non è disponibile per altre allocazioni.
La memoria attiva è stata utilizzata di recente ed è allocata allo spazio utente.
La memoria buffer (Buf) viene utilizzata per la memorizzazione nella cache del disco.
CALCOLO DELLA MEMORIA
DISPONIBILEQueste categorie di memoria possono essere visualizzate dall'alto del comando.
Si noti che ci si aspetta di non vedere una categoria Cache e di non vedere nulla nella sezione 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:
Se si visualizza l'output di vmstat -H, vengono visualizzate le pagine di memoria disponibili (AVM) e la memoria libera (FRE) in byte.
# 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 conversione delle pagine AVM in byte mostra la memoria disponibile (inattiva + libera):9333548 x 4096 = 38230212608 bytes
Convert to GB 38230212608/(1024^3)= 35.6 GB Available Memory
Se si aggiungono i valori Inact e Free dal top L'output di questo esempio è:28GB + 7.35GB = 35.35GB
Si noti che l'output superiore è già stato arrotondato, quindi potrebbe non corrispondere esattamente al valore di vmstat.
UTILIZZO DELLA MEMORIA SPECIFICO DEL
PROCESSOVirtual Size o vsz (SIZE) si riferisce alla memoria allocata a questo processo.
Dalla pagina manuale dell'inizio, "SIZE è la dimensione totale del processo (testo, dati e stack)"
Resident Set Size (RES) si riferisce alla quantità di memoria fisica utilizzata da questo processo.
Dalla pagina di manuale dell'inizio, "RES è la quantità corrente di memoria residente (sia SIZE che RES sono indicate in kilobyte)"top Comando che mostra i sei processi che utilizzano la memoria più virtuale:
# 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
VALORI MASSIMI PER IL CONSUMO DI MEMORIA DEL CONTAINER LW E I FILE APERTI PER NODO
Esistono alcuni valori massimi pubblicati per la memoria a seconda della versione di OneFS. Vengono spiegati elementi come i file aperti per nodo e SMB e NFS all'interno del container LW.
Consulta la guida alle specifiche tecniche di OneFS
- Contenitore LW: Pagina 9~23
In OneFS, tre lwio I container di processo esistono un container per ogni processo SMB, NFS e Swift. Il contenitore SMB può rappresentare fino al 20% della RAM totale, ma è di almeno 1 GB e al massimo di 32 GB. Il contenitore NFS può rappresentare fino al 25% della RAM totale, ma è di almeno 1 GB e al massimo di 8 GB. Il container Swift è di 512 MB.
- Limite di file aperti: Pagina 12
Il numero massimo di file aperti per nodo è pari al 90% del numero massimo di vnodes su tale nodo, come espresso nella formula seguente: kern.maxfiles = kern.maxvnodes * 0.9 I daemon di protocollo OneFS, ad esempio il daemon di input/output (lwio), potrebbe imporre vincoli aggiuntivi sul numero di file che un nodo può avere aperto. I daemon di protocollo in genere impongono tali vincoli perché il kernel pone limiti al consumo di memoria per processo.
CONTROLLARE L'UTILIZZO DELLA MEMORIA RISPETTO AI VALORI MASSIMI.
Visualizzazione della memoria di un lsass processo che utilizza 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)
Controllo tramite top :
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