Eu tenho um conjunto de 4 a 5 máquinas que quase codificam vídeo o dia todo, e às vezes a noite toda também. Eu procurei muitas vezes para encontrar maneiras de otimizá-los para esse fim, mas não tive sucesso algum.
Minha premissa: eu deveria ser capaz de usar quase toda a minha cpu para codificação de vídeo, se e somente se, eu estou executando vários processos de codificação simultaneamente, o que eu sou.
O problema: (do topo)
Tasks: 382 total, 2 running, 380 sleeping, 0 stopped, 0 zombie
%Cpu(s): 51.6 us, 36.8 sy, 0.0 ni, 9.6 id, 0.0 wa, 2.0 hi, 0.0 si, 0.0 st
KiB Mem: 16425680 total, 16171664 used, 254016 free, 30492 buffers
KiB Swap: 16769020 total, 406056 used, 16362964 free. 15198692 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31308 root 20 0 486568 26000 5560 S 92.2 0.2 188:10.72 avconv
10340 root 20 0 475832 19920 5532 S 91.2 0.1 13:40.42 avconv
12547 root 20 0 473832 23672 5528 S 89.9 0.1 5:40.23 avconv
8179 root 20 0 477132 21200 5560 S 89.2 0.1 71:50.15 avconv
9059 root 20 0 472776 17960 5540 S 89.2 0.1 48:12.62 avconv
9798 root 20 0 477812 16976 5532 S 88.9 0.1 25:23.15 avconv
8725 root 20 0 476068 21696 5560 S 87.2 0.1 62:12.02 avconv
12657 root 20 0 472332 22012 5524 S 86.9 0.1 6:21.28 avconv
12915 root 20 0 473732 41888 5516 S 86.6 0.3 5:22.63 avconv
8578 root 20 0 476840 24100 5536 S 85.6 0.1 63:17.07 avconv
7822 root 20 0 472740 18940 5536 S 85.2 0.1 75:22.04 avconv
9948 root 20 0 485420 18116 5560 S 84.9 0.1 22:18.23 avconv
7356 root 20 0 476744 20084 5560 S 84.6 0.1 92:31.91 avconv
9425 root 20 0 471096 19684 5552 S 82.9 0.1 37:48.28 avconv
12464 root 20 0 475004 24304 5532 R 81.6 0.1 6:30.16 avconv
Apesar de codificar 14 arquivos de vídeo diferentes de uma só vez, o uso da CPU fica em torno de apenas 50-55%. Se eu estiver executando menos streams de uma só vez, os streams individuais irão rodar até cerca de 400% da CPU, onde como na foto acima eles usam apenas 80-90% da CPU.
Esta é a única coisa que eu quero que esta caixa faça, é possível fazer mais uso do poder da CPU ou minha premissa é falha?
Até agora experimentei o renice, sem nenhum efeito. Eu configurei NI de -20 e 19 ele não fez maior ou menor uso geral ou em codificações individuais.
Eu fiz algumas leituras sobre vm.swappiness, mas não tive uma noção clara do meu caso de uso se mais ou menos swappiness fosse melhor. Isso poderia aumentar o desempenho?
Mais detalhes: A máquina da qual estou incluindo o topo é um Dell R900 rodando o Ubuntu 14.04. cat /proc/cpuinfo
lista 16 CPUs Intel (R) Xeon (R) E7330 @ 2.40GHz e cat /proc/meminfo
16 Gb Ram. As outras máquinas no grupo são semelhantes e mostram o mesmo comportamento. Toda essa codificação é de vídeo DV para vídeo Mpeg2, às vezes codificamos outros tipos de vídeo também. A origem dessas codificações está em uma invasão em rede que não está gravando nada da postagem acima e obtém velocidades de leitura de 300 + Mb / s. O destino também é um ataque em rede, não tão rápido, mas os dados mpeg resultantes são muito menores que os dados de entrada.