[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Limitar numero de processos em paralelo
From: |
Leonardo Ayres |
Subject: |
Re: Limitar numero de processos em paralelo |
Date: |
Fri, 22 Aug 2003 21:17:49 -0000 |
User-agent: |
eGroups-EW/0.82 |
Oi Gustavo,
Na verdade, eu estava fazendo uns testes aqui e mantive desta forma,
mas alterei a linha:
while [ $processos -ge 3 ]; do
por
if [ $processos -lt 3 ]; then
Como o processo é recursivo, basta eu rodar três instâncias logo de
cara e assim que ele termina de ser executado, ele é chamado
novamente. Se eu coloco o while, ele pode ficar preso se eu executar
3 ou mais processos.
Valeu!
Leonardo
--- Em address@hidden, Gustavo Jantsch
<jantsch@v...> escreveu
>
> Ok, tava imaginando outra coisa mas acho que agora
> entendi melhor o que o amigo quis dizer.
>
> Assim, num bloco só:
>
> enquanto houver arquivos faca:
> $entrada=arquivo_a_processar
> processos=$(ps ax -o command | \
> grep "^/bin/bash ./processa.sh" | \
> wc -l )
> echo "Processos rodando: $processos"
> while [ $processos -ge 3 ]; do
> sleep 2s
> processos=$(ps ax -o command | \
> grep "^/bin/bash ./processa.sh" | \
> wc -l )
> echo "Processos rodando: $processos"
> done
> echo "Executando: $entrada"
> ./processa.sh $entrada &
> fim enquanto
>
> ai fica legal... acho. ;)
>
> Bom findi pra todo mundo,
> Gustavo
>
>
> On Fri, 22 Aug 2003 16:56:03 -0300
> "Ronaldo Russel - DHL IS - BR, SAO"
> <ronaldo.russel@d...> wrote:
>
> >
> > E se na forma anterior o processo fosse
> > recursivo, chamando a si mesmo, mas em
> > background e saindo em seguida? Tipo
> >
> > ... comandos # Comandos dentro do shell.
> > ... comandos # Comandos dentro do shell.
> > ./processo.sh & # Processo chama a si
> > mesmo em background. exit # Encerra
> > o processo.
> >
> > Não seria viável?
> >
> > abraços a todos ...
> >
> > -----Original Message-----
> > From: Leonardo Ayres
> > [mailto:leonardo.ayres@u...] Sent:
> > sexta-feira, 22 de agosto de 2003 16:53 To:
> > address@hidden Subject:
> > [shell-script] Re: Limitar numero de processos
> > em paralelo
> >
> >
> > Oi Gustavo,
> >
> > Esta solução resolve um problema da solução
> > apontada anteriormente. A solução dada pelo
> > César até apontou um caminho que eu não estava
> > conseguindo ver de iniciar novamente o processo
> > ao final do mesmo, mas acontecia de o processo
> > ir se propagando indefinidamente. Desta forma
> > agora, o processo se mantém estável em número de
> > cópias sendo executadas.
> >
> > Eu ainda teria que passar um nome de arquivo
> > diferente para cada processo, mas isto, basta eu
> > passar o diretório como parâmetro e varrer o
> > diretório por arquivos não processados.
> >
> > Leonardo
> >
> > --- Em address@hidden, Gustavo
> > Jantsch<jantsch@v...> escreveu
> > >
> > > Olha só, esse problema é bem legal.
> > > Desenvolvi o script abaixo que, de forma
> > > simples, resolve o problema:
> > >
> > > #!/bin/bash
> > > entrada="$1"
> > > processos=$(ps ax -o command | \
> > > grep "^/bin/bash ./processa.sh" | \
> > > wc -l )
> > > echo "Processos rodando: $processos"
> > > while [ $processos -ge 3 ]; do
> > > sleep 2s
> > > processos=$(ps ax -o command | \
> > > grep "^/bin/bash ./processa.sh" | \
> > > wc -l )
> > > echo "Processos rodando: $processos"
> > > done
> > > echo "Executando: $entrada"
> > > ./processa.sh $entrada &
> > >
> > > ele tenta manter no máximo 3 cópias do shell
> > > "processa.sh" executando ao mesmo tempo. E
> > > funciona legal... o único porém fica quanto ao
> > > "sleep 2s" que deveria ser randômico e não
> > > fixo. Pois se eu iniciar 5 cópias do shell
> > > acima com intervalo de 1s entre cada
> > > chamada... o shell faz o que se pede. Mas se
> > > eu iniciar 5 cópias do shell acima, ele vai
> > > disparar os 5 "processa.sh" ao mesmo tempo por
> > > que o sistema tem um delay pra passar a
> > > informação para o ps | grep. Ou seja, as 5
> > > cópias pegam um 'ps | grep' com a mesma
> > > informação.
> > >
> > > Se pudesse gerar um delay aleatório,
> > > funcionaria legal. Algo tipo "sleep
> > > '2*umnumeroqualquer's".
> > >
> > > []s,
> > > Gustavo.
> > >
> > > On Fri, 22 Aug 2003 18:05:59 -0000
> > > César A. K. Grossmann <cesarakg@b...> wrote:
> > >
> > > > --- Em address@hidden,
> > > > "Leonardo Ayres"<leonardo.ayres@u...>
> > > > escreveu
> > > > > Achei a solução bem simples e elegante,
> > > > > mas não sei bem se serve no meu caso.
> > > > > Deixe eu detalhá-lo melhor.
> > > > >
> > > > > Como o processo está um pouco lento,
> > > > > pensei em melhorar a performance colocando
> > > > > uns 3 sql-loader carregando arquivos
> > > > > diferentes em paralelo.
> > > >
> > > > Bom, antes de tentar uma solução para este
> > > > novo desafio de script, eu preciso te fazer
> > > > uma pergunta: você sabe *por quê* o processo
> > > > está lento? Colocar três consultas em
> > > > paralelo vai realmente agilizar o teu
> > > > trabalho?
> > > >
> > > > É preciso ter certeza de ter entendido bem o
> > > > problema, por que senão você vai estar
> > > > fazendo que nem a moça da piada, que estava
> > > > procurando uma chave em baixo de um poste,
> > > > por que era mais iluminado do que onde ela
> > > > tinha perdido a chave.
> > > >
> > > > []s
> > > > --
> > > > César A. K. Grossmann
> > > >
> > > > Um resumo da história de John Lions, um
> > > > herói do mundo Unix
> > > > http://www.LinuxByGrossmann.cjb.net/code_critic.html
> > > >
> > > >
> > > >
> > > > -------------------------------------------
> > > > -------------------------- Esta lista não
> > > > admite a abordagem de outras liguagens de
> > > > programação, como perl, C etc. Quem insistir
> > > > em não seguir esta regra será moderado sem
> > > > prévio
> > > > aviso.-------------------------------------
> > > > -------------------------------- Sair da
> > > > lista:
> > > > address@hidden
> > > > -------------------------------------------
> > > > ---------------------- Esta lista é moderada
> > > > de acordo com o previsto em
> > > > http://www.listasdiscussao.cjb.net
> > > > -------------------------------------------
> > > > --------------------------
> > > >
> > > >
> > > > Seu uso do Yahoo! Grupos é sujeito às regras
> > > > descritas em:
> > > > http://br.yahoo.com/info/utos.html
> > > >
> > > >
> > > >
> >
> >
> >
> > -----------------------------------------------
> > ---------------------- Esta lista não admite a
> > abordagem de outras liguagens de programação,
> > como perl, C etc. Quem insistir em não seguir
> > esta regra será moderado sem prévio aviso.
> > -----------------------------------------------
> > ---------------------- Sair da lista:
> > address@hidden
> > -----------------------------------------------
> > ------------------ Esta lista é moderada de
> > acordo com o previsto em
> > http://www.listasdiscussao.cjb.net
> > -----------------------------------------------
> > ----------------------
> >
> >
> > Seu uso do Yahoo! Grupos é sujeito às regras
> > descritas em: http://br.yahoo.com/info/utos.html
> >
> >
> >
> >
> > -----------------------------------------------
> > ---------------------- Esta lista não admite a
> > abordagem de outras liguagens de programação,
> > como perl, C etc. Quem insistir em não seguir
> > esta regra será moderado sem prévio
> > aviso.-----------------------------------------
> > ---------------------------- Sair da lista:
> > address@hidden
> > -----------------------------------------------
> > ------------------ Esta lista é moderada de
> > acordo com o previsto em
> > http://www.listasdiscussao.cjb.net
> > -----------------------------------------------
> > ----------------------
> >
> >
> > Seu uso do Yahoo! Grupos é sujeito às regras
> > descritas em: http://br.yahoo.com/info/utos.html
> >
> >
> >
- Limitar numero de processos em paralelo, Leonardo Ayres, 2003/08/21
- Re: Limitar numero de processos em paralelo, César A . K . Grossmann, 2003/08/22
- Re: Limitar numero de processos em paralelo, Leonardo Ayres, 2003/08/22
- Re: Limitar numero de processos em paralelo, César A . K . Grossmann, 2003/08/22
- Re: Limitar numero de processos em paralelo, Leonardo Ayres, 2003/08/22
- Re: [shell-script] Re: Limitar numero de processos em paralelo, Gustavo Jantsch, 2003/08/22
- Re: Limitar numero de processos em paralelo, Leonardo Ayres, 2003/08/22
- RE: [shell-script] Re: Limitar numero de processos em paralelo, Ronaldo Russel - DHL IS - BR, SAO, 2003/08/22
- Re: [shell-script] Re: Limitar numero de processos em paralelo, Gustavo Jantsch, 2003/08/22
- Re: Limitar numero de processos em paralelo,
Leonardo Ayres <=