1. Introducció als entorns de treball UNIX

1.10. Gestió bàsica de processos

1.10.3. Llistant i canviant processos amb top

L’ordre top proporciona una forma orientada a la pantalla de mostrar els processos que s’estan executant en el seu sistema. Amb top, per defecte, es mostren els processos en funció del temps de CPU que estan consumint actualment. Tanmateix, també es poden ordenar per altres columnes. D’altra banda, si s’identifica un procés problemàtic, també es pot fer servir top per matar (acabar completament, en anglès kill) o renice (en català, re-prioritzar) aquest procés. Si desitja poder matar o renice processos, s’ha d’executar top com a usuari root. Si només desitja mostrar processos, i possiblement matar o canviar els seus propis processos, es pot fer com a usuari regular.

La figura 4 mostra un exemple de la finestra top. La informació general sobre el sistema apareix a la part superior de la sortida de top, seguida d’informació sobre cada procés en execució. A la part superior, es pot veure quant temps ha estat actiu el sistema, quants usuaris estan actualment connectats al sistema i quanta demanda hi ha hagut en el sistema en els últims 1, 5 i 10 minuts. Una altra informació general inclou quants processos (tasques) s’estan executant actualment, quanta CPU s’està utilitzant i quanta memòria RAM i swap estan disponibles i s’estan utilitzant. Després de la informació general, hi ha llistats de cada procés, ordenats pel percentatge de la CPU que s’està utilitzant en cada procés. Tota aquesta informació es torna a mostrar cada 5 segons, aquest temps està definit de forma predeterminada.

Figura 4. Imatge de la pantalla en executar l’ordre top.

La següent llista inclou accions que es poden realitzar quan s’està executant top per mostrar informació de diferents formes i modificar processos en execució:

  • Pressioneu h per veure les opcions d’ajuda, i després pressioni qualsevol tecla per tornar a la pantalla top.
  • Pressioneu M per ordenar per ús de memòria en lloc de CPU, i després pressioneu P per tornar a ordenar per CPU.
  • Pressioneu el número 1 per alternar entre mostrar l’ús de la CPU de totes les CPU, si té més d’una CPU en el seu sistema.
  • Pressioneu R per ordenar la seva sortida en ordre invers.
  • Pressioneu u i afegiu un nom d’usuari per mostrar només els processos d’un usuari en particular.

Una pràctica comuna és utilitzar top per trobar processos que estiguin consumint massa memòria o potència de processament i després actuar sobre aquests processos d’alguna manera. Un procés que consumeix massa memòria pot ser matat, o un procés que consumeix massa CPU pot ser renice per donar-li menys prioritat als processadors.

  • Matar un procés: preneu nota de l’ID de procés del procés que es desitja matar i pressioneu k. Escriviu 15 per acabar de manera neta o 9 per matar el procés directament. Des del terminal també es poden matar processos.
$ kill 2277
$ kill -15 2277
$ kill -SIGKILL 2277

Quan el kernel de Gnu/Linux intenta decidir quins processos en execució tenen accés a les CPUs del sistema, una de les coses que té en compte és el valor nice establert en el procés. Cada procés en execució en el sistema té un valor entre -20 i 19. De manera predeterminada, el valor nice s’estableix en 0. Aquí hi ha algunes dades sobre els valors nice:

  • Com més baix sigui el valor nice, més accés a les CPUs tindrà el procés.
  • L’usuari root pot establir el valor nice en qualsevol procés en qualsevol valor vàlid, cap amunt o cap avall.
  • Un usuari estàndard només pot establir el valor nice en els propis processos de l’usuari, només poden ser positius i el nou valor de nice sempre ha de ser major, no menor, al predeterminat.

Si tornem a executar l’ordre top,

  • Renice un procés: preneu nota de l’ID de procés del procés que es desitja renice i pressioneu r. Quan aparegui el missatge «PID to renice:», escriviu l’ID del procés que es desitja renicejar. Quan es demani «Renice PID to value:», escriviu un número del 0 al 20. Des del terminal es poden nice/renice diferents processos (en aquest cas el realitza root).
# $ nice +5 GekoMain &
# $ renice -n -5 2243