Gestiunea resurselor sistemului
7.1. Gestiunea memoriei virtuale
Resursele de memorie au cel putin la fel de mare efect asupra performantei sistemului ca si viteza procesorului. Pentru a se comporta performant, sistemul trebuie sa aiba destula memorie fizica pentru a rula nu doar procese mari consumatoare de memorie, ci si operatiunile uzuale. Pentru o corecta dimensionare a memoriei, trebuie luate în considerare atât eventualele procese mari consumatoare de memorie, cât si multimea proceselor executate în mod normal.
Memoria virtuala este utilizata atunci când necesarul total de memorie depaseste dimensiunea memoriei fizice instalate în sistem, în mod uzual, pe sistemele UNIX/Linux este utilizata o partitie separata numita, partitie de swap, dar poate fi utilizat si un fisier obisnuit. Utilizarea acestei memorii virtuale duce evident la degradarea performantei sistemului.
Partitia de swap trebuie sa fie de cel putin 32 MB si cel mult 2 GB, valoarea ideala fiind aceea a memoriei RAM existente în sistem, pentru un sistem folosit ca statie de lucru, si dublul memoriei fizice pentru un server.
Crearea si activarea partitiei de swap
Crearea unei partitii de swap se face utilizând comanda:
| mkswap nume_partitie
Dupa crearea partitiei, aceasta trebuie activata cu comanda 23123j914x :
| swapon nume_partitie
Spre exemplu, comanda mkwap /dev/sda2; swapon /dev/sda2 V3 pregati
partitia /dev/sda2 pentru utilizare ca memorie virtuala. Dimensiunea memoriei virtuale va fi determinata de dimensiunea partitiei /dev/sda2.
Verificarea resurselor de memorie
Verificarea resurselor de memorie utilizate de catre sistem se poate face prin comanda f ree, care afiseaza cantitatea de memorie fizica si virtuala din sistem, precum si cantitatea utilizata curent:
Configurari de baza ale sistemului
total used free
Mem:
-/+ buffers/cache:114588
Swap: 75716
shared buffers cached O 840 132316
Verificarea resurselor IPC (zone de memorie comuna, semafoare, cozi de mesaje) alocate în sistem se face cu ajutorul comenzii ipcs:
aaarea memory aegmeiiLS . |
||||||
key |
shmid |
owner |
perms |
bytes |
nattch |
status |
Ox0052e2ca |
postgres | |||||
Ox0052e2cl |
postgres | |||||
Ox0052e2c7 |
postgres | |||||
0x00000000 |
root |
dest |
||||
0x00000000 |
root |
dest |
||||
0x00000000 |
apache |
dest |
||||
phore Ar | ||||||
key |
semid |
owner |
perms |
nsems |
status | |
Ox0052e2ce |
postgres | |||||
Ox0052e2cf |
postgres | |||||
Ox0052e2dO |
postgres | |||||
Ox0052e2dl |
postgres | |||||
Ox0052e2d2 |
postgres | |||||
Ox0052e2d3 |
postgres | |||||
Ox0052e2d4 |
postgres | |||||
Ox0052e2d5 229383 postgres | ||||||
Message Queues key msqid owner |
perms |
used-bytes messages |
Eliberarea unei resurse IPC (Inter-Process Communicatiori) se poate face cu ajutorul comenzii ipcrm:
| ipcrm [ shm | msg | sem ] id
Spre exemplu, pentru situatia listata mai sus, comanda ipcrm shm 196613 va elimina zona de memorie comuna cu numarul de identificare 196613.
7.2. Gestiunea proceselor
Una dintre metodele de comunicare clasice UNIX cu procesele care ruleaza pe masina o constituie semnalele. Un semnal este o valoarea numerica care poarta o anumita semnificatie. Trimiterea unui semnal catre un proces se face prin comanda
kill -semnal nr_proces. Semnalele principale sunt:
Administrarea si configurarea sistemelor Linux
Tabelul 7.1. Semnale uzuale
Denumire semnal |
Numar semnal |
Descriere |
SIGHUP |
hangup, semnalizeaza terminarea executiei procesului-parinte. Este utilizat de multi daemoni pentru a reciti fisierele de configurare etc. |
|
SIGINT |
întreruperea procesului (de la tastatura) |
|
SIGQUIT |
încetarea executiei procesului (de la tastatura, simulând combinatia ctrl+c) |
|
SIGILL |
programul a efectuat o operatie invalida |
|
SIGKILL |
oprirea procesului |
|
SIGSEGV |
referinta invalida |
|
SIGPIPE |
pipe întrerupt |
|
SIGTERM |
terminarea procesului |
|
SIGUSR1 |
semnal definit de utilizator |
|
SIGUSR2 |
semnal definit de utilizator |
|
SIGCHLD |
procesul-copil si-a încheiat executia |
|
SIGSTOP |
opreste temporar executia procesului |
|
SIGCONT |
continua executia procesului dupa ce acesta a fost oprit temporar |
Lista completa de semnale se gaseste în mân 7 signal.
Spre exemplu, comanda kill -9 3419 va trimite semnalul sigkill procesului 3419, ceea ce va provoca încetarea executiei acestuia.
Pentru afisarea proceselor care sunt în executie în mod curent pe sistem, se utilizeaza comanda ps, cu urmatoarele optiuni mai importante:
-a afiseaza lista tuturor proceselor, chiar daca acestea nu apartin utilizatorului
curent
-x afiseaza si procesele care nu au un terminal asociat -u realizeaza afisarea într-un format extins, incluzând numele utilizatorului
caruia îi apartine procesul -w afiseaza informatiile chiar daca depasesc lungimea liniei.
Comanda ps (fara parametri) va afisa lista proceselor curente ale utilizatorului, iar ps aux toate procesele care sunt în executie pe calculator.
Informatii suplimentare privind parametrii comenzii ps se gasesc în pagina de manual mân ps.
|