gildot

Topo
Sobre
FAQ
Tópicos
Autores
Preferências
Artigos
Sondagens
Propor artigo


8/3
gildicas
9/30
jobs
10/9
perguntas
10/25
press

 
Linux Kernel: Threads War
Contribuído por pls em 24-01-03 2:42
do departamento quando-as-threads-ficam-mal-dispostas
Linux Gimp escreve "A pouco tempo de pormos uma aplicação web em produção, funcionando esta num cluster OpenMosix, ao ler o HowTo do mesmo verifiquei que havia uma secção sobre Java. É feita uma referência a Green Threads ou user-level, condição para que o OpenMosix consiga migrar os processos neste tipo de situações. Como o pessoal que está a desenvolver a aplicação se queixava da quantidade de clones que apareciam ao correr o comando PS resolvi informar-me um pouco mais (estão habituados a desenvolver para windows) e dei com este artigo bastante interessante sobre as implementações concorrentes de POSIX pthreads para o linux, NGPT e NPTL, e com esta thread também ela interessante. Não querendo comentar as posições de ambas as equipas, quer-me parecer que a equipa do NGPT quis fazer as coisas consensualmente, mas esbarram com o facto de que o linux implementa o modelo 1:1, mas têm a favor de não ter mexido muito no kernel e estar disponível no 2.4.19. "

www.visaoonline.pt passa de MS-IIS/5.0 para siteseed | O Viet-Nam abre-se ao Open Source  >

 

gildot Login
Login:

Password:

Referências
  • Linux
  • artigo
  • thread
  • Mais acerca Linux
  • Também por pls
  • Esta discussão foi arquivada. Não se pode acrescentar nenhum comentário.
    Breaking news (Pontos:2)
    por Gimp em 24-01-03 11:53 GMT (#1)
    (Utilizador Info)
    Recebi hoje um mail da Red Hat sobre uma versão beta do Advanced Server. Em conjunção com esta mensagem dá para ver que estão a iniciar os testes a todo o vapor.


    "No comments"

    Venha daí o novo modelo de threading! (Pontos:3, Interessante)
    por Eraser em 24-01-03 11:55 GMT (#2)
    (Utilizador Info)
    Boas.

    Para começar relativamente as threads java em Linux, utiliza native threads a nãoser que tenhas uma muito boa razão para isso. O desempenho é bastante melhor em regra geral. Não é por nada que a opção -server da JVM da Sun assume por omissão que as threads devem ser nativas. ;) O problema do número de threads suportados estão relacionados com o segmento de memória associado a cada thread. Podes sempre fazer alterações ao nível da bash, da máquina virutal (nem todas suportam) e ao nível da Glib (neste caso tens de recompilar). Temos no trabalho, vários servidores a correrem aplicações java que suportam acima de 200 threads java. O número é mais do que suficiente já que estás threads realizam trabalho pesado. Não é de estranhar ver servidor com mais de 500 Threads java. Nada que se compare com C mas tendo em conta as limitações entre a JVM o SO não está nada mal.

    Gostaria de saber se alguém com curiosidade e tempo livre chegou a experimentar estes novo modelos de threading. Se sim, por favor partilhem a vossa experiência. Pelo que eu li sobre o assunto inclino-me mais para a NPTL. Agrada-me o facto de ter uma implementação menos complexa do que o modelo M:N utilizado na NGPT.
    É verdade que o modelo 1:1 utilizado na NPTL vai utilizar mais recursos em termos de kernel space mas a sua simplicidade é um trunfo que reforça muito a performance e a estabilidade. Um scheduler mais simple é sempre bemvindo. :)
    Quanto mais programo mais tenho a sensação que mais simples é melhor principalmente quando são componentes dedicados a uma funcção específica.
    Os testes valem o que valem mas eu aposto realmente na NPTL: remember the KISS.

    Fiquem bem!
    JP

    PS: desculpem a falta de argumentação mas só li umas coisas sobre o assunto. Não sou um entendido nesta área. A ideia é puxar conversa para ver se os entendidos se pronunciam. ;)
    Re:Venha daí o novo modelo de threading! (Pontos:2)
    por Eraser em 24-01-03 12:18 GMT (#3)
    (Utilizador Info)
    Viva!

    Só para completar, a Sun mudou para o modelo 1:1 no Solaris9 e tem porte das bibliotecas para o Solaris8. Os motivos são principalmente simplicidade e performance.
    Mais info: Multithreading in the Solaris Operating Environment

    É uma demonstração real das vantagens do modelo 1:1. O meu voto na NPTL fica reforçado. :)

    Fiquem bem!
    JP
    Re:Venha daí o novo modelo de threading! (Pontos:1)
    por m3thos em 24-01-03 12:40 GMT (#4)
    (Utilizador Info) http://mega.ist.utl.pt/~mmsf
    Heyas,
    Também estou curioso quanto aos novos modelos de threads, teóricamente o NTPL encaixa-se melhor no scheduler do linux(2.5.*,2.6) uma vez que o scheduler é O(1)

    Portanto, como temos um scheduler bom como tudo, podemos dar-nos ao luxo de ter um modelo 1:1 para threading.
    O problema surge quando tens aplicações c/ uso massivo de threads, polling de threads etc.. mas em que apenas uma curta percentagem delas é que estão a trabalhar, neste caso tens o kernel a gerir centenas de milhares de threads inutilmente( e a ocupar kernel space abusivamente) e um modelo N:M terá melhor performance, pois só terá algumas threads a correr no kernel.(comprova-se pelos ultimos testes que vi, onde o modelo NGPT lidava melhor com grandes quantidades de threads)
    Anyway, e como alguns kernel hackers dizem, qualquer aplicação com estas caracteristicas de milhares de threads ou tem uma muito boa razão para fazer isto, ou está mal concebida.

    De qualquer maneira ambas as tecnologias estão a fazer grandes progressos, e a tirar proveito das inovações a afinações que se têm feito no kernel 2.5.*.

    A concorrência é uma coisa saudável, ambas as duas tecnologias estão a ir mais longe por terem concorrência... viu-se bem pela ultima release do NGPT)(v2.2.0), que eu pensava já estar arrumada.. depois de ver testes à coisa de 6 meses onde o NLPT lhe dava um bailinho da madeira...

    Que ganhe a melhor... a mim é me indiferente, gosto mais da filosofia KISS, mas prefiro performance a design bonito.


    Miguel F. M. de Sousa Filipe
    handle: m3thos
    More Human than Human.

    Re:Venha daí o novo modelo de threading! (Pontos:2)
    por Gimp em 24-01-03 12:47 GMT (#5)
    (Utilizador Info)
    O problema é que suporte para as diversas JVM tá pela hora da morte :-). Acho que só a IBM é que está a fazer alguma coisa no NGPT.


    "No comments"

    Re:Venha daí o novo modelo de threading! (Pontos:2)
    por Eraser em 24-01-03 14:28 GMT (#6)
    (Utilizador Info)
    Viva!

    Não creio que o designa das JVMs estaja pela hora da morta. O facto é que as green threads até poderiam servir perfeitamente. O problema está exactamente a nível de performance que tem sido um crescente. O desempenho de muitas aplicações servidores Java está muito ligado ao desempenho das suas threads e aproveitamento do hardware em que corre. É aí que as native thread entram e permitem uma ligação mais forte com o SO e o hardware por baixo da JVM. Por muito que se possa melhorar o modelo the threading da própria JVM com greeen threads, o desempenho dificilmente poderá igualar o das threads nativas. Obviamente que não são só vantagens e em certas condições a situação poderá se inverter.

    Creio que ainda há margem para melhorias em ambos os mundos quer seja na JVM quer seja no próprio modelo de threads nativas. A própria Sun acredita nisso. :)

    Fica bem!
    JP
    Re:Venha daí o novo modelo de threading! (Pontos:2)
    por Gimp em 24-01-03 14:52 GMT (#7)
    (Utilizador Info)
    Uh? Tava a falar do suporte (ou da falta deles) das várias JVM por parte da NGPT e da NLPT...


    "No comments"

    Re:Venha daí o novo modelo de threading! (Pontos:2)
    por Eraser em 24-01-03 15:07 GMT (#8)
    (Utilizador Info)
    Viva!

    Provalvemente não te tinha entendido mas mesmo assim porque deveriam NGPT e NLPT suportar as JVMs? Creio que abordagem correcta é ao contrário. Se o modelo de threading do SO em que corre a JVM vai mudar quem desenvolve a JVM deve se adaptar. Pelo menos está parece-me uma abordagem mais correcta e não o contrário. Senão podem se criar dependências indesejadas a longo prazo. A JVM só têm de assumir que a norma posix vai ser comprida.

    Fica bem!
    JP

    PS: mais uma vez desculpa se não te entendi no teu primeiro post
    Re:Venha daí o novo modelo de threading! (Pontos:2)
    por Gimp em 24-01-03 18:28 GMT (#9)
    (Utilizador Info)
    Devia ter dito a frase ao contrário, quera esse o sentido que lhe queria dar. O que está a IBM a fazer, por exemplo, é adaptar a JVM deles para aproveitar o NGPT. E porquê? Speeeeeeeedddd :-))).


    "No comments"

     

     

    [ Topo | FAQ | Editores | Contacto ]