Exemplificando o funcionamento do Kernel

7 de dezembro de 2010

Texto de Bruno Gonçalves Araújo

Existem diversos textos na internet sobre otimização do Kernel, porém em geral são de difícil compreensão, então, aqui vou listar de forma bastante simples as principais otimizações utilizadas.

 
1 – Schedule (O que considero mais importante)

Sempre o computador está executando diversos programas ao mesmo tempo, mas não existe 1 núcleo para cada programa, portanto é preciso que o processador trabalhe um pouco em um programa e vá para o próximo. Um grande desafio é definir quanto tempo cada programa irá utilizar o processador até que seja liberado para o próximo programa.

Caso o tempo for muito baixo, aplicações que necessitam de muito processamento perdem desempenho. Digamos que você esteja utilizando um player de áudio com uma configuração de tempo muito baixa, mesmo que tenha programas consumindo muito processamento dificilmente a música irá “engasgar”. Ou seja, será mais demorado para aplicar um efeito em uma imagem ou converter um vídeo, porém ao executar mais programas o sistema continua respondendo bem.

Texto de Bruno Gonçalves Araújo

Existem diversos textos na internet sobre otimização do Kernel, porém em geral são de difícil compreensão, então, aqui vou listar de forma bastante simples as principais otimizações utilizadas.

1 – Schedule (O que considero mais importante)

Sempre o computador está executando diversos programas ao mesmo tempo, mas não existe 1 núcleo para cada programa, portanto é preciso que o processador trabalhe um pouco em um programa e vá para o próximo. Um grande desafio é definir quanto tempo cada programa irá utilizar o processador até que seja liberado para o próximo programa.

Caso o tempo for muito baixo, aplicações que necessitam de muito processamento perdem desempenho. Digamos que você esteja utilizando um player de áudio com uma configuração de tempo muito baixa, mesmo que tenha programas consumindo muito processamento dificilmente a música irá “engasgar”. Ou seja, será mais demorado para aplicar um efeito em uma imagem ou converter um vídeo, porém ao executar mais programas o sistema continua respondendo bem.

Se a configuração estabelecer tempos muito altos, ocorre o oposto. Operações que necessitam de muito processamento ocorrem de forma mais eficaz, porém enquanto estiverem executando tarefas mais pesadas o computador não irá responder bem, músicas irão engasgar e até o ponteiro do mouse poderá se mover aos “pulos”.

Atualmente temos o Schedule, oficial chamado de CFS, que tenta se adaptar tanto em servidores quanto em desktops e o BFS que é focado apenas em desktops. Em geral servidores executam poucos aplicativos ao mesmo tempo e utilizam uma configuração em que cada programa possui tempos altos na fila de processamento, o oposto do desktop.

 
2 – Os HZ
Trabalha junto com o Schedule e define o tempo de ciclos de processamento, em geral pode variar em 100 HZ, 200 HZ, 300HZ e 1000HZ. Até a pouco tempo 1000HZ era considerada a melhor configuração para desktops por possuir o menor tempo para cada aplicativo, porém atualmente muitos já acreditam que 300 HZ é mais eficaz. Enquanto servidores trabalham melhor com 100 ou 200 HZ.

 
3 – Gerenciamento de memória
Outro ponto difícil de atingir um valor que funcione bem para todos. Configurações que utilizam menor quantidade de memória deixam a abertura de programas mais lenta, porém permite utilizar uma quantidade maior de programas simultâneos sem perda significativa de desempenho.

Uma forma de analisar o uso de memória é com o comando free -m. Na primeira linha, quanto maior a quantidade de memória utilizada, melhor. Na segunda ocorre o oposto. Na terceira linha o ideal é que sempre esteja sem uso.

Exemplo da saída do comando ‘free -m’

tales@neit:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3801       1766       2035          0         69        616
-/+ buffers/cache:       1080       2721
Swap:          251          0        251

A primeira linha informa quanto da memória está sendo utilizada, incluindo a cache. A cache é uma parte da memória que possui informações que já foram utilizadas, mas não estão mais em uso, porém se necessitar ser utilizada novamente não precisa ler a informação do HD, ela já está na memória e irá tornar o acesso muito mais rápido. Dessa forma quanto maior acache, mais rápido o sistema funciona e o Kernel sabe que a cache possui baixa prioridade, dessa forma ele libera esse espaço para outras funções mais importantes sempre que necessário. A segunda linha informa quanto de memória está realmente em uso. A terceira linha informa quanto de SWAP está em uso. Quando o tamanho da memória não é suficiente o sistema armazena arquivos que deveriam estar na memória, nessa partição do HD. Porém a velocidade de transferência de uma memória DDR2 de 400 mhz que hoje já é bastante defasada é de 3200 MB/s enquanto um HD de modelo rápido e atual possui dificuldade em manter 100 MB/s de velocidade. Se for um notebook isso ainda piora, normalmente esses HDs são mais lentos e dificilmente superam 50 MB/S.

Para fazer esse equilíbrio existe o sistema de prioridade, onde permite que um programa “fure a fila” e consiga, por exemplo, 2 ciclos de processamento no mesmo período que outros programas estarão tendo apenas 1 ciclo.

Se a configuração estabelecer tempos muito altos, ocorre o oposto. Operações que necessitam de muito processamento ocorrem de forma mais eficaz, porém enquanto estiverem executando tarefas mais pesadas o computador não irá responder bem, músicas irão engasgar e até o ponteiro do mouse poderá se mover aos “pulos”.

Atualmente temos o Schedule, oficial chamado de CFS, que tenta se adaptar tanto em servidores quanto em desktops e o BFS que é focado apenas em desktops. Em geral servidores executam poucos aplicativos ao mesmo tempo e utilizam uma configuração em que cada programa possui tempos altos na fila de processamento, o oposto do desktop.

2 – Os HZ
Trabalha junto com o Schedule e define o tempo de ciclos de processamento, em geral pode variar em 100 HZ, 200 HZ, 300HZ e 1000HZ. Até a pouco tempo 1000HZ era considerada a melhor configuração para desktops por possuir o menor tempo para cada aplicativo, porém atualmente muitos já acreditam que 300 HZ é mais eficaz. Enquanto servidores trabalham melhor com 100 ou 200 HZ.

3 – Gerenciamento de memória
Outro ponto difícil de atingir um valor que funcione bem para todos. Configurações que utilizam menor quantidade de memória deixam a abertura de programas mais lenta, porém permite utilizar uma quantidade maior de programas simultâneos sem perda significativa de desempenho.

Uma forma de analisar o uso de memória é com o comando free -m. Na primeira linha, quanto maior a quantidade de memória utilizada, melhor. Na segunda ocorre o oposto. Na terceira linha o ideal é que sempre esteja sem uso.

Exemplo da saída do comando ‘free -m’

tales@neit:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3801       1766       2035          0         69        616
-/+ buffers/cache:       1080       2721
Swap:          251          0        251

A primeira linha informa quanto da memória está sendo utilizada, incluindo a cache. A cache é uma parte da memória que possui informações que já foram utilizadas, mas não estão mais em uso, porém se necessitar ser utilizada novamente não precisa ler a informação do HD, ela já está na memória e irá tornar o acesso muito mais rápido. Dessa forma quanto maior acache, mais rápido o sistema funciona e o Kernel sabe que a cache possui baixa prioridade, dessa forma ele libera esse espaço para outras funções mais importantes sempre que necessário. A segunda linha informa quanto de memória está realmente em uso. A terceira linha informa quanto de SWAP está em uso. Quando o tamanho da memória não é suficiente o sistema armazena arquivos que deveriam estar na memória, nessa partição do HD. Porém a velocidade de transferência de uma memória DDR2 de 400 mhz que hoje já é bastante defasada é de 3200 MB/s enquanto um HD de modelo rápido e atual possui dificuldade em manter 100 MB/s de velocidade. Se for um notebook isso ainda piora, normalmente esses HDs são mais lentos e dificilmente superam 50 MB/S.

Para fazer esse equilíbrio existe o sistema de prioridade, onde permite que um programa “fure a fila” e consiga, por exemplo, 2 ciclos de processamento no mesmo período que outros programas estarão tendo apenas 1 ciclo.

43 Comentários

  1. excerie

    You can get one too cialis 20mg price 4 mg sublingual nitroglycerin NTG at preГў specified timepoints following their last dose of tadalafil 2, 4, 8, 24, 48, 72, and 96 hours after tadalafil

    Responder
  2. mamfraurf

    GPR30 is a member of the G protein coupled receptor GPCR superfamily buy cialis non prescription Human adipose alpha tocopherol and gamma tocopherol kinetics during and after 1 y of alpha tocopherol supplementation

    Responder
  3. viEdbam

    pct nolvadex dosage I liked the idea on just one surgery, however, I hated the implants anatomical, teardrop shaped

    Responder
  4. binance referral bonus

    Thanks for sharing. I read many of your blog posts, cool, your blog is very good.

    Responder
  5. binance registrácia

    Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.

    Responder
  6. Safety Shoes

    Good day! This is kind of off topic but I need
    some advice from an established blog. Is it tough to set up your own blog?
    I’m not very techincal but I can figure things
    out pretty quick. I’m thinking about making my own but I’m not sure where to
    begin. Do you have any tips or suggestions? Appreciate it

    Responder
  7. Freezer Gloves

    Heya just wanted to give you a brief heads up and let
    you know a few of the images aren’t loading correctly.

    I’m not sure why but I think its a linking issue. I’ve tried it in two different web browsers and
    both show the same outcome.

    Responder
  8. binance Kayit Ol

    Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?

    Responder
  9. Index Home

    I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.

    Responder
  10. Index Home

    Thank you, your article surprised me, there is such an excellent point of view. Thank you for sharing, I learned a lot.

    Responder
  11. Google business profile ranking

    I read this paragraph completely about the difference of latest
    and previous technologies, it’s remarkable article.

    Responder
  12. GBP Maps SEO

    Thank you for the auspicious writeup. It if truth be
    told was once a leisure account it. Glance complicated to more brought agreeable from
    you! However, how can we keep in touch?

    Responder
  13. Malissa

    slot bonausaa hd, free slots cash frenzy and online bingo usa,
    or new zealands best onlinecasinos gambling com

    Here is my homepage russian roulette retro (Malissa)

    Responder

Enviar Comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *