Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Fixar processo em um núcleo de processador

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Fixar processo em um núcleo de processador

    Talvez você nunca tenha precisado. Mas como fixar um processo de algum aplicativo a um determinado processador, ou núcleo de processador em um determinado hardware?

    Sim, há uma luz no fim do túnel, e o Linux traz aplicativos nativos para fazê-lo.

    Estou a mencionar o pacote util-linux (debian-like) ou util-linux-ng (redhat-like), são os responsáveis pela maioria dos binários de controle sistema operacional, e já são nativos nas distribuições mais conhecidas, Debian, CentOS, Fedora, Ubuntu, e por aí a fora.

    Se por ventura não houver um destes dois pacotes em teu sistema operacional, proceda conforme abaixo:

    Debian-like:

    Código:
    $ sudo aptitude install schedutils
    (usando a dica do lord pra usar APETITUDE hehe...)

    Redhat-like:

    Código:
    $ sudo yum install util-linux-ng
    O comando que gerencia em qual cpu rodará o processo é o taskset, que possui a seguinte sintaxe:

    Código:
        taskset [options] [mask | list ]
        [pid | command [arg]...]; sendo:
        taskset [mask] [command] [arguments]; ou
        taskset[list] [command]; ou
        taskset -p [pid]; ou
        taskset -p [mask] [pid]


    As opções(options) são:

    -p, --pid; identificador do processo
    -c, --cpu-list; array de cpu
    -h, --help
    -v, --version


    As máscaras (mask) são as representações hexadecimais dos processadores físicos, por ser complexo e sujeita a falhas não irei tratá-las, mas segue uma representação de exemplo:
    Código:
    0x00000001 processador #0
    0x00000003 processador #0 e #1
    0xFFFFFFFF todos os processadores (#0 até #31)
    A lista (list) é a representação da cpu por sua posição. Tomemos por base um processador Intel Xeon CPU E5310 @ 1.60GHz; cache 4096 KB; 64b. Este processador possui 8 núcleos, e a sua representação será respectivamente:

    Código:
    #0, #1, #2, #3, #4, #5, #6 e #7
    O pid ou comando, referem-se ao aplicativo que deseja-se fixar a respectiva CPU, o pid pode ser localizado com o comando ps, ou em vez de utilizar-se do pid execute o aplicativo diretamente com o taskset.

    Para fixar o processo proceda da seguinte forma:

    Código:
    $ taskset -c 0-2 -p 1507
    
    $ taskset -c 0,1,2 /etc/init.d/ssh start
    
        "-c 0-2" é a lista de CPU 0, 1 e 2;
        "1507" é o pid do ssh;
        "-c 0,12" é a lista de CPU 0, 1 e 2;
        "/etc/init.d/ssh start" é o comando privilegiado;

    E uma aplicação Zope/Plone ficaria assim:

    Código:
    $ taskset -c 0 $ZOPE_INSTANCE/bin/zopectl start
    Referências:

    Código:
    $ man taskset
    $ taskset --help

  • Font Size
    #2
    Que massa! broder... não sabia que isso era possivel.
    mas como tudo no linux é possivel ta ai a prova.
    vivendo e aprendendo... valeu.
    Não Acha Estranha Essa Frase:
    Eu Sou Hacker e Uso Windows XP!

    Use Débian, Aprenda Slackware e Brinque Muito Com Back|Track


    Fã ->Nickguitar.dll


    Quer ajudar nossso fórum e não sabe como?
    Então click na imagem e ajude-nos com os links off

    Comment


    • Font Size
      #3
      Informação excelente.
      Sabe me dizer da possibilidade com o windows por exemplo.
      "If you're good at something, never do it for free".
      Joker

      Não, eu não estou aqui para financiar a sua empresa!!!

      Comment


      • Font Size
        #4
        desconheço da possibilidade do windows

        Comment


        • Font Size
          #5
          Postado Originalmente por Slevin Ver Post
          Informação excelente.
          Sabe me dizer da possibilidade com o windows por exemplo.
          No windows você pode definir uma afinidade de um proceso a um núcleo pelo gerenciador de tarefas.
          sigpic

          Comment

          X
          Working...
          X