4.6. Red Hat Enterprise Linux-Informazioni specifiche
A causa della complessit� per essere un sistema operativo con memoria virtuale 'demand-paged', il controllo delle risorse relative alla memoria con Red Hat Enterprise Linux pu� essere un p� ambiguo. Per questo, � consigliabile iniziare con tool molto pi� semplici.
Usando free, � possibile avere una panoramica (piuttosto semplicistica) della memoria e dell'utilizzo di swap. Ecco un esempio:
total used free shared buffers cached
Mem: 1288720 361448 927272 0 27844 187632
-/+ buffers/cache: 145972 1142748
Swap: 522104 0 522104
|
Possiamo notare che questo sistema possiede 1.2GB di RAM, e solo 350MB di essa � in uso. Come previsto con un sistema con tanta RAM disponibile, 500MB di swap non vengono utilizzati.
Paragonate quell'esempio con questo:
total used free shared buffers cached
Mem: 255088 246604 8484 0 6492 111320
-/+ buffers/cache: 128792 126296
Swap: 530136 111308 418828
|
Questo sistema ha circa 256MB di RAM, la maggior parte della quale � in uso, lasciando solo 8MB disponibili. Vengono utilizzati 100MB dei 512MB della partizione swap in uso. Anche se questo sistema � sicuramente molto pi� limitato in termini di memoria rispetto al primo sistema, per determinare se questa limitazione � in grado di causare dei problemi sulla prestazione, � necessario andare pi� a fondo.
Anche se pi� enigmatico di free, vmstat ha la capacit� di visualizzare maggiori informazioni oltre alle statisctiche sull'utilizzo della memoria. Ecco l'output di vmstat 1 10:
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
2 0 0 111304 9728 7036 107204 0 0 6 10 120 24 10 2 89
2 0 0 111304 9728 7036 107204 0 0 0 0 526 1653 96 4 0
1 0 0 111304 9616 7036 107204 0 0 0 0 552 2219 94 5 1
1 0 0 111304 9616 7036 107204 0 0 0 0 624 699 98 2 0
2 0 0 111304 9616 7052 107204 0 0 0 48 603 1466 95 5 0
3 0 0 111304 9620 7052 107204 0 0 0 0 768 932 90 4 6
3 0 0 111304 9440 7076 107360 92 0 244 0 820 1230 85 9 6
2 0 0 111304 9276 7076 107368 0 0 0 0 832 1060 87 6 7
3 0 0 111304 9624 7092 107372 0 0 16 0 813 1655 93 5 2
2 0 2 111304 9624 7108 107372 0 0 0 972 1189 1165 68 9 23
|
Durante questi 10 secondi, la quantit� di memoria disponibile (il campo free) in qualche modo varia, ed � presente anche I/O relativo allo swap (i campi si e so), in linea di massima questo sistema funziona abbastanza bene. Tuttavia si possono verificare delle problematiche nel caso in cui si verificasse un aumento del carico di lavoro.
Nella ricerca delle problematiche riguardanti la memoria, � spesso necesssario determinare come il sottosistema della memoria virtuale di Red Hat Enterprise Linux, faccia uso della memoria del sistema. Usando sar, � possibile esaminare l'aspetto delle prestazioni del sistema pi� in dettaglio.
Rivisionando il report di sar -r, possiamo esaminare l'utilizzo di swap e della memoria pi� da vicino:
Linux 2.4.20-1.1931.2.231.2.10.ent (pigdog.example.com) 07/22/2003
12:00:01 AM kbmemfree kbmemused %memused kbmemshrd kbbuffers kbcached
12:10:00 AM 240468 1048252 81.34 0 133724 485772
12:20:00 AM 240508 1048212 81.34 0 134172 485600
…
08:40:00 PM 934132 354588 27.51 0 26080 185364
Average: 324346 964374 74.83 0 96072 467559
|
I campi kbmemfree e kbmemused mostrano le statistiche tipiche della memoria disponibile e di quella utilizzata, con la percentuale di memoria usata, visualizzata nel campo %memused. I campi kbbuffers e kbcached mostrano il numero di kilobyte di memoria che viene assegnato ai buffer e alla cache dei dati dell'intero sistema.
Il campo kbmemshrd � sempre zero per i sistemi (come ad esempio Red Hat Enterprise Linux) che utilizzano il kernel 2.4 di Linux.
Le righe per questo esempio sono state troncate in modo da rientrare nella pagina. Ecco il remainder di ogni riga, con aggiunto il timestamp sulla sinistra per rendere la lettura pi� semplice:
12:00:01 AM kbswpfree kbswpused %swpused
12:10:00 AM 522104 0 0.00
12:20:00 AM 522104 0 0.00
…
08:40:00 PM 522104 0 0.00
Average: 522104 0 0.00
|
Per l'utilizzo di swap, i campi kbswpfree e kbswpused mostrano la quantit� di spazio swap usato e quello disponibile in kilobyte, con il campo %swpused viene mostrato il suddetto spazio in percentuale.
Per saperne di pi� sull'attivit� di swap, usare il report sar -W. Ecco un esempio:
Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003
12:00:01 AM pswpin/s pswpout/s
12:10:01 AM 0.15 2.56
12:20:00 AM 0.00 0.00
…
03:30:01 PM 0.42 2.56
Average: 0.11 0.37
|
Qui possiamo notare che in linea di massima, vi � stata una quantit� pari a tre volte in meno di pagine importate dallo swap (pswpin/s) rispetto a quelle esportate (pswpout/s).
Per capire meglio come vengono usate le pagine, consultare il report sar -B:
Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003
12:00:01 AM pgpgin/s pgpgout/s activepg inadtypg inaclnpg inatarpg
12:10:00 AM 0.03 8.61 195393 20654 30352 49279
12:20:00 AM 0.01 7.51 195385 20655 30336 49275
…
08:40:00 PM 0.00 7.79 71236 1371 6760 15873
Average: 201.54 201.54 169367 18999 35146 44702
|
Qui possiamo determinare il numero di blocchi al secondo impaginati dal disco (pgpgin/s), oppure estromessi dallo stesso (pgpgout/s). Queste statistiche servono come misurazione dell'attivit� generale della memoria virtuale.
Tuttavia potete ottenere pi� informazioni esaminando gli altri campi presenti in questo rapporto. Il kernel di Red Hat Enterprise Linux segna tutte le pagine come attive o inattive. Come implica il nome, le pagine attive sono quelle che vengono impiegate in qualche modo (come pagine del buffer o per il processo), al contrario invece ci sono le pagine inattive, e cio� quelle non usate in alcun processo (il campo activepg) approssimativamente 660MB[1].
Il remainder dei campi in questo rapporto, si concentra sull'elenco delle pagine inattive — che, per qualche motivo, non sono state usate. Il campo inadtypg mostra il numero di pagine inattive contrassegnate con dirty (modificate), le quali potrebbero essere scritte sul disco. Il campo inaclnpg invece, mostra il numero di pagine inattive clean (non modificate), le quali non hanno bisogno di essere scritte sul disco.
Il campo inatarpg rappresenta la misura ideale dell'elenco delle pagine inattive. Questo valore viene calcolato dal kernel di Linux e la sua misura f� si che l'elenco di pagine inattive rimanga sufficientemente grande, per agire come un insieme per la sostituzione delle pagine.
Per maggiori informazioni sullo stato delle pagine (e in modo particolare la frequenza con la quale cambiano le pagine), utilizzate il rapporto sar -R. Ecco un esempio:
Linux 2.4.20-1.1931.2.231.2.10.entsmp (raptor.example.com) 07/22/2003
12:00:01 AM frmpg/s shmpg/s bufpg/s campg/s
12:10:00 AM -0.10 0.00 0.12 -0.07
12:20:00 AM 0.02 0.00 0.19 -0.07
…
08:50:01 PM -3.19 0.00 0.46 0.81
Average: 0.01 0.00 -0.00 -0.00
|
Le statistiche nel rapporto sar sono uniche, cio� esse possono essere positive, negative o zero. Quando esse sono positive, il valore indica la velocit� con la quale queste pagine sono in aumento. Quando negativo, il valore indica la velocit� con la quale queste pagine sono in diminuzione. Con un valore pari a zero, la pagine n� aumentano e n� diminuiscono.
In questo caso, l'ultimo esempio mostra una velocit� di poco superiore a tre pagine al secondo assegnate dall'elenco di pagine disponibili (il campo frmpg/s), e quasi 1 pagina per secondo aggiunta alla cache della pagina (campo campg/s). Questo elenco di pagine utilizzato come buffer (il campo bugpg/s), ha guadagnato approssimativamente una pagina ogni due secondi, mentre l'elenco della pagina della memoria condivisa (il campo shmpg/s), non ha n� guadagnato e n� perduto alcuna pagina.