Eu precisava rodar convert
com muitas imagens ao mesmo tempo. O comando levou um bom tempo, mas isso não me incomoda.
O problema é que esse comando inutilizou meu computador enquanto o comando estava em execução (por cerca de 15 minutos).
Portanto, é possível limitar o comando limitando recursos (processador e memória) ao comando, diretamente da linha de comando? Isso só funciona se eu adicionar algo à mesma linha antes de pressionar, Enterporque, ao iniciar o processo, o computador fica mais lento que é impossível, por exemplo, mudar para "Monitor do sistema" e reduzir a prioridade.
Editar: resultados superiores e iotop
Consegui executar top
e sudo iotop >iotop.txt
enquanto fazia uma dessas operações de conversão. (O arquivo iotop.txt produzido é difícil de ler)
Resultados do topo:
USUÁRIO PID PR NI VIRT RES SHR S% CPU% MEM TIME + COMANDO 14275 nome de usuário 20 0 4043m 3.0g 1448 D 7.0 80.4 0: 16.45 converter
Resultados do iotop:
[? 1049h [1; 24r (B [m [4l [? 7h [? 1h = [39; 49m [? 25l [39; 49m (B [m [H [2JTotal de DISCO LIDO: 1269,04 K / s | Total de DISCO DE DISCO : [59G0,00 B / s (B [0; 7m DISCO DO USUÁRIO DO TID PRIO LEIA SWAPIN DE DISCO (B [0; 1; 7m IO> (B [0; 7m COMANDO [3; 2H (B [m2516 be / 4 nome de usuário 350.08 K / s 0.00 B / s 0,00% 0,00% zeitgeist-datahub 7394 be / 4 nome de usuário 568,88 K / s 0,00 B / s 77,41% 0,00% --rendere ~ .530483991 [5; 1H14275 nome de usuário ocioso 350,08 K / s 0,00 B / s 37,49% 0,00% convert S ~ f test.pdf [6 ; 2S2048 be / 4 root [6; 24H0,00 B / s 0,00 B / s 0,00% 0,00% [trabalhador / 3: 2] [5G1 ser / 4 raiz [7; 24H0,00 B / s 0,00 B / s 0,00% 0,00% init
Além disso, mesmo após o término do processo, o computador não retorna ao desempenho anterior. Eu encontrei uma maneira de contornar isso, executando sudo swapoff -a
seguido porsudo swapon -a
convert *.tif bla.pdf
processo de cada vez, mas a entrada é um monte de imagens tif. É uma maneira de produzir um pdf a partir de um monte de imagens que funcionam bem, mas sufocam meu PC.find . -iname '*.tif' | xargs -I% convert % %.pdf
em vez defind . -iname '*.pdf' | xargs -I% convert % %.pdf
. Foi mais rápido também! Obrigado.-exec
e . No seu caso, em vez de usar , eu usaria:-execdir
find
xargs
find -iname '*.tif' -execdir convert {} {}.pdf ';'
man nice
E se você precisar de I / O estrangulamentoman ionice
.Vejamos alguns exemplos simples.
Limitando o uso da CPU:
Pela sua descrição, no entanto, o uso da CPU quase certamente não é o seu verdadeiro problema aqui. Provavelmente, você está tendo uma contenção severa de E / S.
Uso do disco de regulagem:
-c2
é "melhor esforço" e-n7
é a menor prioridade "melhor esforço". Portanto, isso reduzirá o trabalho para diminuir a prioridade de E / S do que a maioria das outras coisas no sistema.-c3
(nenhum nível de prioridade necessário) significa "Somente ocioso". Os trabalhos configurados para-c3
SOMENTE ocupam um tempo ocioso de agendamento de disco, praticamente sem nenhum impacto no sistema - mas potencialmente um tempo de execução consideravelmente mais longo para o seu trabalho, dependendo da ocupação do restante do sistema.fonte
nice
um comando convert? Se não estou errado, bons trabalhos para os processos em execução.nice -n 20
próxima vez.iotop
durante a execução do processo? Normalmente, um único processo que consome muita CPU terá muito pouco efeito sobre a usabilidade do sistema, mas um processo que atrapalha o disco rígido pode MUITO rapidamente interromper tudo - especialmente se você estiver usando uma unidade convencional, não um SSD.convert blah.gif blah.jpg & iotop
semelhante ao queiotop
será acionado instantaneamente assim que iniciar seuconvert
trabalho.Aqui está um artigo muito bom sobre o uso de um programa chamado
cpulimit
para limitar o uso da CPU de qualquer processo:http://maketecheasier.com/limit-cpu-usage-of-any-process-in-linux/2010/09/22
O problema é como você disse, encontrando o PID do
convert
processo após o início.Após iniciar,
convert
se você ainda pode digitar comandos no terminal, pode executarps aux | grep convert
para encontrar seu PID e, em seguida,sudo cpulimit -p PID -l CPU%
iniciar a regulagem.Ou, se a inicialização
convert
também bloquear o seu terminal, o artigo mostra como você pode executarcpulimit
como um daemon em segundo plano que monitorará e acelerará automaticamente todos os processos durante uma certa quantidade de uso da CPU. Boa sorte!fonte
nice
comando interno.cpulimit
limitará o processo a um determinado% de uso da CPU, independentemente de mais alguma coisa precisar do tempo da CPU;nice
, por outro lado, define níveis de prioridade (total de 40!) que permitem priorizar uma tarefa acima (ou abaixo) de outras.