como evitar dormir nos processos do mysql

1

qual é o significado de dormir no processo do mysql e como poderia evitá-lo devido a carga alta?

Id  User    Host    db  Command Time    State   Info
93714   mydb    localhost   xyz Sleep   2       NULL
93715   root    localhost   NULL    Query   0   NULL    show full processlist

aqui é highload:

top - 00:31:35 up 21 days,  9:27,  1 user,  load average: 12.67, 6.68, 2.94
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.3%us,  0.6%sy,  0.0%ni, 94.3%id,  3.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1022732k total,   614528k used,   408204k free,    84316k buffers
Swap:        0k total,        0k used,        0k free,   135992k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
  322 mysql     20   0  413m 173m 7452 S   99 17.4  97:42.25 mysqld             
    1 root      20   0  8356  688  560 S    0  0.1   0:15.61 init       
    
por exim 02.01.2013 / 09:42

2 respostas

1

Sleep indica que o processo está aguardando alguma coisa (por exemplo, E / S). Dormir é o estado normal quando um processo não está fazendo nada. No entanto, no seu caso, parece (considerando a alta carga e alta CPU) que o processo está dormindo porque você não tem energia suficiente na CPU. Eu aconselharia aumentar sua capacidade de CPU.

    
por 02.01.2013 / 09:47
1

Processos adormecidos normalmente não são algo para se preocupar até que você tenha tantos que você não tenha mais nenhum conexões disponíveis no servidor mysql .

Tudo o que basicamente significa é que um processo ainda mantém uma conexão aberta, geralmente um script que abriu a conexão ainda não fechou porque ainda não terminou ou está fazendo algum processamento antes de usar a conexão novamente. Também pode ser que seu cliente esteja configurado para usar o conjunto de conexões, caso em que as conexões são deixadas em aberto para salvar a sobrecarga de criar novas conexões o tempo todo.

O MySQL mata automaticamente esses processos após wait_timeout ou interactive_timeout segundos terem passado de qualquer maneira.

    
por 02.01.2013 / 11:29

Tags