ps와 top의 PRI 값이 다른 이유는 무엇입니까?

ps와 top의 PRI 값이 다른 이유는 무엇입니까?

Nginx의 PID는 다음과 같습니다.19910

  1. 그 가치는19존재하다ps -eo pri

     ps -eo pid,ppid,ni,pri,psr,pcpu,stat,cmd |head -n1;ps -eo pid,ppid,ni,pri,psr,pcpu,stat,cmd |grep nginx
       PID  PPID  NI PRI PSR %CPU STAT CMD
     19910     1   0  19   0  0.0 Ss   nginx: master process /usr/sbin/nginx
     19911 19910   0  19   2  0.0 S    nginx: worker process
     19912 19910   0  19   1  0.0 S    nginx: worker process
     19914 19910   0  19   1  0.0 S    nginx: worker process
     19915 19910   0  19   0  0.0 S    nginx: worker process
    
  2. 그 가치는80존재하다ps -elf

     ps -elf |head -n1;ps -elf |grep nginx
     F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
     5 S root     19910     1  0  80   0 - 21487 sigsus Jul29 ?        00:00:00 nginx: master process /usr/sbin/nginx
     5 S www-data 19911 19910  0  80   0 - 21576 ep_pol Jul29 ?        00:01:55 nginx: worker process
     5 S www-data 19912 19910  0  80   0 - 21576 ep_pol Jul29 ?        00:02:05 nginx: worker process
     5 S www-data 19914 19910  0  80   0 - 21576 ep_pol Jul29 ?        00:02:00 nginx: worker process
     5 S www-data 19915 19910  0  80   0 - 21576 ep_pol Jul29 ?        00:02:08 nginx: worker process
    
  3. 그 가치는20존재하다top -b -n 1 -p

     top -b -n 1 -p 19910                              
     top - 09:57:13 up 435 days, 19 min,  2 users,  load average: 0.00, 0.00, 0.00
     Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
     %Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
     KiB Mem:   8175360 total,  4617480 used,  3557880 free,   167444 buffers
     KiB Swap:  8384508 total,    10408 used,  8374100 free.  3955108 cached Mem
    
       PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
     19910 root      20   0   85948   2944   1784 S   0.0  0.0   0:00.00 nginx
    

내 질문은 다음과 같습니다.

  1. 서로 다른 두 명령의 출력이 완전히 다른 이유는 무엇입니까 ps?
  2. 이들 그리고 PRI의 차이점은 무엇인가요 ?pstop

누군가 나에게 설명해 주시면 매우 감사하겠습니다.

답변1

~에 따르면이것:

top인쇄된 원래 값 priority, 즉 의 18번째 열 /proc/[pid]/stat이므로 출력은 다음과 같습니다.20

ps -eo pri인쇄된 값 pri은 와 같으 39 - priority므로 출력은 다음과 같습니다.39 -20 = 19

ps -l, -l옵션에 의해 인쇄된 값 opri은 와 같으 60 + priority므로 출력은 '60 + 20 = 80'입니다.

관련 정보