Ser 'legal' com E / S: limitando os recursos de E / S de processos em * nix

6

Estou trabalhando em um grande servidor Ubuntu compartilhado e estou incomodando meus colegas. Um dos meus processos é fazer muitas inserções em um banco de dados MySQL e está sobrecarregando todo o servidor.

O MySQL não está usando muito dos recursos da CPU nem muito da RAM. Se fosse esse o caso, eu poderia usar as ferramentas 'nice' e 'ulimit' para acelerar o processo (na verdade, estou usando o bom no MySQL e isso não está ajudando). Em vez disso, o MySQL parece estar fazendo muitas operações de leitura e gravação em disco aleatório e, portanto, sempre que alguém quiser ler ou gravar um arquivo do disco, ele terá que esperar um segundo ou dois, o que não é aceitável para uso interativo. >

Alguma idéia do que eu posso fazer para limitar a E / S de disco do MySQL? (Estou procurando por uma solução em nível de sistema operacional ou de kernel em vez de uma sugestão para alterar a configuração de hardware do meu sistema).

O que eu preciso é bem descrito em um quadro de mensagens aqui .

    
por conradlee 17.01.2012 / 01:38

1 resposta

4

ionice (parte do util-linux ) pode ajustar a prioridade de E / S de um processo, permitindo selecionar entre ocioso, 8 "melhor esforço" e 8 níveis de prioridade em tempo real. A classe 3 é "inativa":

ionice -c 3 -p $(pgrep -x mysqld)

schedtool pode ajustar a política geral de agendamento, novamente com "inativo" sendo uma das opções:

schedtool -D $(pgrep -x mysqld)
    
por 17.01.2012 / 01:49

Tags