Como melhorar o IO quando há muita leitura e escrita aleatórias?

5

Meus scripts usam toneladas de leitura e gravação. A maioria deles é pequena e aleatória. Eu quero que o Linux espere 10 segundos antes de gravar qualquer dado no disco.

Como isso seria alcançado?

Eu acho que o Linux já pode fazer isso automaticamente. Eu quero fazer isso de uma maneira mais extrema. É como supercache no Windows.

Nota: Isto está relacionado com a questão O linux tem algo como supercachê? . Eu já sei que por padrão o linux usa "supercache" como sistema. No entanto, a configuração de supercache para o Linux deve ser baixa. Eu quero mais compartilhamento de memória é para supercache. Eu também quero escrever preguiçosamente a cada 10 segundos.

    
por user4951 25.01.2013 / 06:39

2 respostas

1

Existem 5 ajustes no sistema de arquivos / proc para alterar o comportamento de writeback do linux:

dirty_async_ratio
dirty_background_ratio
dirty_sync_ratio
dirty_expire_centisecs
dirty_writeback_centisecs

A configuração é bastante complicada e a documentação pode ser encontrada em kernel.org . No entanto, como o jordanm já disse, "Qualquer aplicativo userspace pode dizer ao kernel para gravar seus buffers sujos no disco através da chamada do sistema sync ()." que significa que qualquer outro processo pode tornar sua configuração inútil.

Além disso, lembre-se das configurações do Sistema de arquivos: Opções de montagem como noatime, data = writeback e nobarrier podem melhorar drasticamente sua taxa de transferência, mas também colocarão seus dados em risco se os controladores de disco não tiverem bateria.

    
por 25.01.2013 / 10:06
0

Você pode gravar suas alterações em um arquivo / arquivos na memória (tmpfs) e gravar essas alterações no disco a cada 10 segundos.

    
por 25.01.2013 / 09:16

Tags