Fazer Script Shell utilizar 100% de CPU

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

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/09/2010 - 23:17h

o que o ticampos disse pode ser uns dos motivos

tbm não adianta vc rodar um script usando 15% da cpu e terminar em 5 segundos e depois modificar o script e rodar a 100% da cpu e terminar em 10 segundos

antes de começar fazer as modificações, verifica quanto tempo demora p executar o script

# time ./script.sh

==============================================

não disse que otimizações não fazem a diferença, fazem sim, mas quem usa ports como os BSD, normalmente ja vem com a otimização mais adequada p sistema, por isso os BSD são rapidos, eu vejo a diferença, ou seja, ja está perfeito, se for mecher vai estragar

mas se quiser colocar flags no slackware ou qualquer outra distribuição, é só declarar a variavel

===============
CPUTYPE="native"
CFLAGS="-Os -march=native -pipe -ftree-vectorize -ftracer -fomit-frame-pointer" # não é a melhor opção, é só um exemplo
CXXFLAGS=$CFLAGS
MAKEOPTS=-j3 # coloca a quantidade de processamento + 1

export CPUTYPE CFLAGS CXXFLAGS MAKEOPTS
=================

coloca em /etc/profile

quando eu coloca no slackware, eu tive que colocar em /root/.bashrc

tbm quando se comprar linux p linux, a diferença não é muita

diferenças notaveis se encontra quando compara linux vs *BSD, tem coisas que linux ganha, mas tem coisas que *BSD ganha

em desempenho a disputa é bem equilibrada


  


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

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 15/09/2010 - 00:23h

SIm Douglas, concordo com voce e com o ticampos

acredito que o problema esteja mesmo nos nucleos do processador neste 980x são 12 nucleos.
Voces conhecem alguma maneira de otimizar isso para que eu possa testar como o Douglas me recomendou?

Hoje ele usa o RAID 0 e fica 15% de uso de CPU realizando uma tarefa x em 2:27 minutos.
Gostaria de otimizar a utilização dos nucleos do processador e testar quanto tempo vai demorar utilizando full CPU.

Obrigado.


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

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/09/2010 - 01:26h

então cara, utilizar 100% da cpu, talves só se usar processador+memoria, tipo, sem esse esqueme de utilizar muito o HD

tipo, carregar todo o conteudo dos arquivos em variaveis e dpois ir manipulando elas, ai pode ser que chega a 100% do cpu em algum estante, mas se chegar vai ser tão rapido que ja vai ter terminado a execução de manipular as variaveis, ai vai ser a parte de salvar tudo nos arquivo

não sei se vai ficar mais rápido, mas assim pode ser que chega a utilizar mais a CPU, agr se vai melhorar eu não sei, o jeito é executar o script 3x e tirar uma media, e depois alterar e executar 3x e tirar outra media e dpois comparar

acho que carregar o conteudo dos arquivos em variaveis e depois fazer toda a manipulação e filtragem, dpois salvar tudo em arquivo, pode acabar ficando mais pesado, mas ao msm tempo pode ficar mais rápido pois talvez possa utilizar todos os nucleos com velocidade total quando for mecher nas variaveis

mas pelo visto não tem muito oq mecher nesse script, talvez com o raid possa melhorar um pouco o desempenho

esse problema com HD é constante, por isso que lançaram o SSD que chega a ser absurdamente mais rapido em alguns testes "não em todos, mas que ficou mais rapido isso é fato", mas o preço está um pouco salgado ainda hehehe


28. Sugestão

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/09/2010 - 03:29h

Bem, segue uma ideia de como eu acho que deveriam ser escritos vossos scripts. Perceba o encapsulamento das ideias em funcões e a opção escolhida através do case statement. Como não deu bem para perceber vossas intenções fica um pouco dificil. Mas a ideia é essa. Espero que lhe seja util.

#!/bin/bash

function _forAll()
{
# Porque ela sempre se repete
echo $1 | sort | uniq | wc -l | cut -d " " -f 1
}

function _op1()
{
# O primeiro pipe poderia ser substituido por uma função
cat $caminho/passo1_op1 | \
cut -d "." -f 2,4 | \
_forALL
} >> $caminho/Z_Visits.txt



function _edLog()
{
# O primeiro pipe poderia ser substituido por uma função
cat $p_hora $caminho/ed$numero.log | \
cut -d " " -f | \
cut -d ":" -f $p_dois_pontos | \
_forALL

}>> $caminho/Z_Visits.txt

function _visitsUtma()
{
echo
# Não entendi essa aqui
}>> $caminho/Z_Visits.txt


while [ $contador -le $dias ] ; do

if [ $contador -le 9 ]; then
numero="0"$contador
else
numero=$contador
fi

case "$MODE" in
1) _op1
;;
2) _edLog
;;
3) _visitsUtma
;;
esac;

done

exit


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

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/09/2010 - 03:44h

Veja que gerei/guardei os resultados em sub shells - funções - ( backgrounds, na memoria).

Acho que seria melhor guardar todo o emaranhado de scripts em funções separadas já que seu problema não é memória.
Isto ao meu ver melhora a velocidade.


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

Luis Henrique Gonçalves
ricklgoncalves

(usa Slackware)

Enviado em 15/09/2010 - 10:51h

Ola ./.ronin

Interessante o uso das funções. Vou fazer alguns testes aqui.
O cat que você utilizou ali no inicio das funções não ira carregar o conteudo do arquivo q esta sendo lino na memória irá? Isso que não entendi muito bem.

Só a utilização da função você acha que ajudaria em processamento? Isso não influiria só em não repetir código e coisas assim?

Obrigado


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

Rodrigo Chaves
stilldre

(usa Funtoo)

Enviado em 17/09/2010 - 17:12h

douglasfim, não quero causar flames nem nada, mas o desenvolvimento do portage foi uma iniciativa de quem estava achando o ports muito limitado... era preciso mais flexibilidade (muita gente não gosta de seguir as imposições alheias simplesmente porque elas "são melhores" ou "foram testadas por profissionais" pois, como já sabemos é tudo muito relativo)... e o kernel do freebsd pode ser usado no gentoo/funtoo também... ou seja, ele deixa de ser linux (já que linux é o kernel) porém as ferramentas permanecem... e as otimizações no gentoo/funtoo não se resumem a flags USE, mas à todos os tipos de variáveis de ambiente e de compilação possíveis... quando você se refere às otimizações nos scripts estaria referenciando algo parecido com as ebuilds do portage? e quando se refere à superioridade no desempenho do freebsd está referenciando o kernel? pois a maioria dos programas que usamos no linux usamos no freebsd também... obrigado desde já e não leve a mal o post, mas um esclarecimento mais profundo se faz necessário... abraço!


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

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

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/09/2010 - 17:28h

ex:
alguns programas funcionam mais rapido com tal flag, e outras com outras flags, essas flags ja são usadas quando estamos instalando algum programa pelo ports

tipo

-02 -pipe bla bla bla para tal programa

-03 não sei mais oq p outro

-flag -flag -flag no outro

se o firefox tem melhor desempenho com tal flag com estabilidade, essa flag ja é usada na compilação pelo ports, se eu colocar flag tal como padrão no make.conf, só tende a piorar, pelo menos no freebsd é assim

isso tbm acontece na compilação do kernel, ou seja, eu não preciso me preocupar com quais flags devo usar p tal programa, eles ja fazem isso p mim, se eu definir tais flags de um modo geral p todos os programas, só vai jogar no lixo tudo que eles fizeram

sim, funtoo pode usar o kernel FreeBSD, afinal existe o Debian/kfreebsd e se não me engano tem o gentoo/freebsd

o PC-BSD era linux, só dpois que se baseou em FreeBSD "creio que o nome não era PC-BSD na epoca de quando usava linux"


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

Rodrigo Chaves
stilldre

(usa Funtoo)

Enviado em 17/09/2010 - 17:39h

- "se o firefox tem melhor desempenho com tal flag com estabilidade, essa flag ja é usada na compilação pelo ports, se eu colocar flag tal como padrão no make.conf, só tende a piorar, pelo menos no freebsd é assim"

só se for no freebsd pois no gentoo/funtoo não é assim... as flags no make.conf só são usadas quando invocadas pelo portage, que é digamos, mais "inteligente" que o ports...


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

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/09/2010 - 18:20h

tipo

se o padrão da compilação for algo como

-O2 -frename-registers -pipe -fno-strict-aliasing -march=native

ai vc coloca -funroll-loops ai no final vai ficar

-O2 -frename-registers -pipe -fno-strict-aliasing -march=native -funroll-loops

isso acontece no freebsd, usa o padrão + oq vc coloca, ou então tem akela parada de ignorar o as flags "padrão" do sistema e usar somente as que vc colocar

ai se eu colocar isso

CFLAGS= -O3 -funroll-loops

ai vai usar somente oq eu coloquei e ignorar o padrão

só não lembro como faz p ignorar o padrão, mas eu sei que tem os 2 jeitos


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

Rodrigo Chaves
stilldre

(usa Funtoo)

Enviado em 18/09/2010 - 15:32h

pois é, no portage é mais ou menos assim... o importante é ficar claro que as otimizações realmente funcionam em máquinas com recursos elevados...



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts