TOP e Nice priority

Top è una dashborad che permettte di monitorare le attività in corso del sistema.

#top

top - 12:21:46 up 178 days, 2 min,  1 user,  load average: 0.04, 0.09, 0.13

Tasks: 289 total,   1 running, 288 sleeping,   0 stopped,   0 zombie

%Cpu(s):  1.5 us,  1.0 sy,  0.0 ni, 97.3 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  8009332 total,   110004 free,  2339876 used,  5559452 buff/cache

KiB Swap:  9723340 total,  3564492 free,  6158848 used.   508436 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

25143 oracle    -2   0 4354576   3384   3200 S   2.0  0.0   3208:26 ora_vktm_cdb19l

27028 oracle    -2   0 4354576   3804   3620 S   2.0  0.0   3213:14 ora_vktm_cdb19l

28250 root      20   0  162244   2484   1572 R   1.0  0.0   0:00.11 top

us = user space
sy = system space
ni = sono i processi la cui priorità cambia usando i Nice Value. Il valore negativo indica alta priorità, invece un valore positivo indica una bassa priorità. Nice ha il range da -20 a 19.
id = the CPU's idle time; un tempo di inattività elevato significa che non succede molto
wa = Percentuale dei processi in attesa di operazioni I/O. Un vaore alto di wa è pericoloso perchè indica che il sistema è in sofferenza a causa di un disco lento.
hi : time spent waiting for hardware interrupts
si : time spent waiting for software interrupts
st : "time stolen from this VM by the hypervisor"

PR= indica la priorità del task. Quelli "rt" sono real time e quindi prioritari rispetto a tutti gli altri processi.
NI = rappresenta il valore “NICE” (0). I processi root con -20 sono quelli che hanno la maggiore priorità come i processi del kernel.
VIRT = memoria virtuale utilizzata dal processo
RES = memoria fisica utlizzata dal processo
SHR = Represents the Shared Memory size (kb) used by a task. Memoria condivisa dal processo
S = The state the process is in. S=sleep R=esecuzione Z=zombie (S)
%CPU = Represents the CPU usage.
%MEM = mostra la percentuale di utilizzo della Ram da parte del processo
TIME+ =  CPU Time, indica il tempo di attività del processo
COMMAND = The command that is being run.


--> Per modificare il display premere "f".
Selezionare la colonna che si vuole visualizzare e premere su "spazio" e poi "q" per uscire.
Premere su "maiscolo"+w per salvare la visualizzazione scelta.

--> Per killare un processo:
selezionare con le frecce su e giù per selezionare il pid da killare e poi premere "k".
Apparirà l'informazione del processo da killare.

--> Per ordinare in base ad una colonna, premere "f", selezionare la colonna interessata e premere "s" e infine "q" per uscire.

--> Per cambiare la priorità di un processo.
Selezionare "r" (sta per renice)

top - 16:06:08 up 181 days,  3:46,  1 user,  load average: 0.62, 0.25, 0.18
Tasks: 292 total,   2 running, 290 sleeping,   0 stopped,   0 zombie
%Cpu(s): 25.0 us, 28.4 sy,  0.0 ni, 46.1 id,  0.2 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  8009332 total,    56412 free,  2332312 used,  5620608 buff/cache
KiB Swap:  9723340 total,  3402860 free,  6320480 used.   477084 avail Mem
PID to renice [default pid = 479]
PID USER      PR  NI    VIRT    RES    SHR S %MEM     TIME+ COMMAND       %CPU
479 root      20   0  108100    616    516 R  0.0   0:38.12 dd                              87.7      

Cliccare su "invio" e compare l'ulteriore messaggio dove inserire il nuovo valore di nice:

Renice PID 479 to value
PID USER      PR  NI    VIRT    RES    SHR S %MEM     TIME+ COMMAND   %CPU
479 root      20   0  108100    616    516 R  0.0   0:38.12 dd                             87.7   

Se inserisco ad esempio  il valore -5 il valore di %CPU sale

  PID USER      PR  NI    VIRT    RES    SHR S %MEM     TIME+ COMMAND     %CPU 
  479 root      15  -5  108100    616    516 R  0.0   1:40.29 dd                                     98.0      

Da linea di comando:
# nice --help
Diamo una priorità da linea di comando alla funzione "Moving nothign to nowhere"
# dd if=/dev/zero of=/dev/null &
[1] 479
# top 
PID USER      PR  NI    VIRT    RES    SHR S %MEM     TIME+ COMMAND                                              %CPU   SWAP
  479 root      20   0  108100    616    516 R  0.0   0:20.11 dd                                                   88.7      0

# nice -n -1 dd if=/dev/zero of=/dev/null &
[1] 931
[root@coslab02 ~]# top
PID USER      PR  NI    VIRT    RES    SHR S %MEM     TIME+ COMMAND                                              %CPU   SWAP
  931 root      19  -1  108100    616    516 R  0.0   0:05.52 dd                                                   98.4      0

Per rimpostare la priorità al valore precedente:
# ps aux | grep '\<dd'
root       931 98.5  0.0 108100   616 pts/0    R<   16:13   3:08 dd if=/dev/zero of=/dev/null
root      1103  0.0  0.0 112812   996 pts/0    S+   16:16   0:00 grep --color=auto \<dd

# renice -n 0 931
931 (process ID) old priority -1, new priority 0

Post popolari in questo blog

Create e Drop Pluggable Database

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione