VLC 비디오 인코딩은 높은 '좋은' 로드를 생성합니다.

VLC 비디오 인코딩은 높은 '좋은' 로드를 생성합니다.

실시간 비디오 인코딩을 위한 vlc 프로세스를 갖춘 서버가 있습니다.

다음은 (프로세서 표시) 및 (스레드 표시) top의 출력입니다.1H

top - 15:50:26 up 42 min,  1 user,  load average: 2.64, 2.60, 2.45
Tasks: 130 total,   7 running, 123 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.3%sy, 72.2%ni, 26.8%id,  0.0%wa,  0.0%hi,  0.7%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy, 56.0%ni, 44.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  2.6%us,  0.0%sy,  9.4%ni, 87.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.3%st
Cpu3  :  0.0%us,  0.0%sy, 35.9%ni, 64.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  0.0%us,  0.0%sy, 35.0%ni, 65.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :  2.6%us,  0.0%sy,  0.0%ni, 97.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  0.0%us,  0.6%sy, 18.0%ni, 81.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  4.9%us,  0.0%sy,  0.0%ni, 95.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    533064k total,   233000k used,   300064k free,     4832k buffers
Swap:  2097144k total,        0k used,  2097144k free,    40516k cached

  PID USER       PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 5841 videoenc   20   0  674m 119m 8228 R  8.0 22.9   2:32.50 vlc                
 5840 videoenc   20   0  674m 119m 8228 S  4.7 22.9   1:49.53 vlc                
 5843 videoenc   20   0  674m 119m 8228 R  4.7 22.9   1:45.36 vlc                
22787 videoenc   30  10  674m 119m 8228 R  4.7 22.9   0:00.14 vlc                
22788 videoenc   30  10  674m 119m 8228 S  2.0 22.9   0:00.06 vlc                
22789 videoenc   30  10  674m 119m 8228 R  1.3 22.9   0:00.04 vlc                
 5838 videoenc   20   0  674m 119m 8228 S  0.7 22.9   0:08.14 vlc                
22790 videoenc   30  10  674m 119m 8228 S  0.7 22.9   0:00.02 vlc                
22791 videoenc   30  10  674m 119m 8228 S  0.7 22.9   0:00.02 vlc              

top다음은 ( 1및 제외 H) 의 결합된 출력입니다 .

top - 16:01:09 up 52 min,  1 user,  load average: 3.88, 3.74, 3.10
Tasks: 110 total,   1 running, 109 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.2%us,  0.1%sy, 35.2%ni, 63.2%id,  0.1%wa,  0.0%hi,  0.0%si,  0.1%st
Mem:    533064k total,   234136k used,   298928k free,     5208k buffers
Swap:  2097144k total,        0k used,  2097144k free,    40992k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 5825 videoenc  20   0  674m 119m 8228 S  305 22.9  98:59.58 vlc                
    1 root      20   0 10328  736  616 S    0  0.1   0:00.08 init               
    2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd           
    3 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/0        
    4 root      15  -5     0    0    0 S    0  0.0   0:00.00 ksoftirqd/0        
    5 root      15  -5     0    0    0 S    0  0.0   0:00.04 events/0           
    6 root      15  -5     0    0    0 S    0  0.0   0:00.00 khelper            
    8 root      15  -5     0    0    0 S    0  0.0   0:00.00 xenbus             
   10 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/1        
   11 root      15  -5     0    0    0 S    0  0.0   0:00.00 ksoftirqd/1        
   12 root      15  -5     0    0    0 S    0  0.0   0:00.02 events/1           
   13 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/2        
   14 root      15  -5     0    0    0 S    0  0.0   0:00.00 ksoftirqd/2        
   15 root      15  -5     0    0    0 S    0  0.0   0:00.02 events/2           
   16 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/3        
   17 root      15  -5     0    0    0 S    0  0.0   0:00.00 ksoftirqd/3        

질문은 다음과 같습니다.
모든 %CPU의 합이 %ni의 합과 같지 않은 이유는 무엇입니까? VLC가 없이 실행될 때 왜 '좋은' 로드를 생성합니까?renice

답변1

VLC의 스레드 중 하나 또는 인코딩에 사용하는 라이브러리 중 하나는 아마도 setpriority()를 사용하여 생성된 스레드의 우선 순위/좋음을 변경하고 있을 것입니다.

답변2

CPU %를 단일 CPU의 백분율로 표시하는 Irix 모드에서 TOP를 실행 중입니다. "I"를 눌러 CPU %를 모든 CPU의 백분율로 표시하는 Solaris 모드로 전환합니다.

답변3

매뉴얼 페이지에서 :

CPU 상태 CPU 상태는 요약 영역에 표시됩니다. 항상 백분율로 표시되며 지금부터 마지막 ​​새로 고침까지의 시간을 나타냅니다.
us - 사용자 CPU 시간
CPU가 좋지 않은 사용자 프로세스를 실행하는 데 소비한 시간입니다.
ni - Nice CPU 시간
CPU가 nice된 사용자 프로세스를 실행하는 데 소비한 시간입니다.

%CPU는 전부이고 ni는 단지 좋은 rtime입니다.

관련 정보