Fazer Script Shell utilizar 100% de CPU

1. Fazer Script Shell utilizar 100% de CPU

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 14/09/2010 - 12:16h

Olá Amigos,

Comecei a trabalhar com Linux recentemente e tenho vários scripts em Shell que processam grandes quantidades de informação, o que consequentemente demora um pouco.
Recentemente adquirimos uma nova maquina aqui com processador i7 980x 3.3Ghz/3,5TB HD/24GB RAM
Instalamos Slackware 13.1 nesta maquina e reconheceu o processador e a memória sem problemas.
A supresa foi quando rodamos os scripts e o uso de CPU não passa dos 12% e o uso de nmemória física fica em 1.5GB no maximo.
Gostariamos de fazer os scripts utilizarem full CPU já que eles são executados em fila, ja tentamos setar a prioridade do processo com o nice, ja tentamos utilizar o cpulimit colocando como 100% e nada resolve.

Espero que possam nos ajudar.

Obrigado desde ja.

Abraços.


  


2. Re: Fazer Script Shell utilizar 100% de CPU

MMaximo
mmaximo

(usa Debian)

Enviado em 14/09/2010 - 13:13h

Bom,
Sem ter mais detalhes eu diria que por conta da grande quantidade de dados sendo processadas, o gargalo está na obtenção desses dados, os scripts não alcançam 100% de cpu pq ficam esperando os dados.


3. Re: Fazer Script Shell utilizar 100% de CPU

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/09/2010 - 13:58h

muitas vezes o atrazo pode ser pelo hd, vc pode colocar todos os script p rodar ao msm tempo, mas se for gravando no HD, ja era




4. Re: Fazer Script Shell utilizar 100% de CPU

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 14/09/2010 - 13:59h

mmaximo e douglasfim, o que me sugerem?

Esta maquina tem 3 HD's sata de 7.200 RPM.

Obrigado.


5. Re: Fazer Script Shell utilizar 100% de CPU

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/09/2010 - 14:02h

os hds estão em RAID?

se não estiverem, não vai ter diferença nenhuma em desempenho

a velocidade que o HD trabalha não é nada perto do processador, ainda mais esse i7 980x

posta o script, ai fica mais facil de ver oq está atrazando ou pq não está usando velocidade total


6. Re: Fazer Script Shell utilizar 100% de CPU

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 14/09/2010 - 14:06h

Estavam em RAID 0 (stripe) porém de maneira nenhuma conseguimos fazer o slackware reconhecer o RAID.

O script é bem grande, tem alguma maneira de anexar aqui?

De qualquer forma teste mesmo comandos como cut, sed e awk e eles nao usam nem 15% mesmo tentando com o cpulimit 100%

Obrigado.


7. Re: Fazer Script Shell utilizar 100% de CPU

MMaximo
mmaximo

(usa Debian)

Enviado em 14/09/2010 - 14:13h

Dificil dizer mas recomendaria a vc estudar as ferramentas iotop e latenctop, elas dão uma ideia como esta a transferencia de dados.

Fora isso uma ideia seria vc um sistema de arquivo em memoria o tmpfs,
poes os dados que vao ser processados com antecedencia e roda os scripts. O problema é que fica limitado pela quantidade de memoria, se seus arquivos forem maiores nao dá pra usar.

Fora isso só imagino usar o hdparm pra ver se o HD esta otimizado e no pior dos caso usar HD de 15000 rpm em Raid.

Mas antes tem q investigar melhor o problema. A taxa de transferencia do HD foi so uma idéia.


8. Re: Fazer Script Shell utilizar 100% de CPU

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 14/09/2010 - 14:27h

Ok...

Em relação ao RAID no slackware voce me indica algum manual ou tutorial?

Abraços.


9. Re: Fazer Script Shell utilizar 100% de CPU

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/09/2010 - 14:52h

então cara, não tem problema não, posta o script independente do tamanho


10. Re: Fazer Script Shell utilizar 100% de CPU

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 14/09/2010 - 15:13h

while [ $contador -le $dias ] ; do

if [ $contador -le 9 ]; then
numero="0"$contador
else
numero=$contador
fi
#########
if [ $mode -eq 1 ] ; then
cut -d "." -f 2,4 $caminho/passo1_op1 > $caminho/passo3_op1
#
sort $caminho/passo3_op1 | uniq | wc -l | cut -d " " -f 1 >> $caminho/Z_Visits.txt
fi
#
if [ $mode -eq 2 ] ; then
cut -d " " -f $p_hora $caminho/ed$numero.log | cut -d ":" -f $p_dois_pontos > $caminho/passo3_op2
paste $caminho/passo3_op2 $caminho/passo2_op2 > $caminho/passo4_op2
#
sort $caminho/passo4_op2 | uniq | wc -l | cut -d " " -f 1 >> $caminho/Z_Visits.txt
fi
#
if [ $mode -eq 3 ] ; then
# Pega so o que tem utma=
cut -d "." -f 2,4 $caminho/passo1_op3 | sort | uniq | wc -l | cut -d " " -f 1 > $caminho/visits_utma_op3.txt
# Pega so o que nao tem utma
cut -d " " -f $p_hora $caminho/passo2_op3 | cut -d ":" -f $p_dois_pontos > $caminho/passo6_op3
paste $caminho/passo6_op3 $caminho/passo5_op3 > $caminho/passo7_op3
sort $caminho/passo7_op3 | uniq | wc -l | cut -d " " -f 1 > $caminho/visits_ipbrowser_op3.txt
# Soma os dois resultados, com e sem utma=
expr `cat $caminho/visits_utma_op3.txt` + `cat $caminho/visits_ipbrowser_op3.txt` >> $caminho/Z_Visits.txt
fi
######
done


11. Re: Fazer Script Shell utilizar 100% de CPU

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/09/2010 - 15:28h

então cara, vou dar uma olhada nesse script e daki a poco eu falo

uma boa p vc fazer de imediato é debuga o script

bash -xv script.sh

assim vc vai ver passo a passo oq o script está fazendo, ai da p ver onde ele está demorando


12. Re: Fazer Script Shell utilizar 100% de CPU

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 14/09/2010 - 15:30h

Legal Douglas,

Fico muito grato amigo.
Se tiver alguma referencia a me indicar sobre como configurar o RAID no Linux seria legal.


Abraços.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts