Sistema de arquivos Linux mais lento / armazenado em cache

5

Eu sei que parece estranho, mas eu preciso de um sistema de arquivos mais lento ou em cache.

Tenho muitos firewalls que estão enviando seus dados syslog a um par de VMs Linux que gravam esses arquivos em discos formatados em ext3 (na verdade, conectados ao FC SAN) e também encaminham as mensagens para nossos servidores do Splunk. .

O problema é que o servidor syslog está gravando essas mensagens syslog como centenas, às vezes milhares, de minúsculas ~ 4k escritas por segundo de volta ao nosso SAN FC - que pode lidar com essa carga de trabalho agora, mas nosso tráfego FW vai crescer pelo menos um fator de 5000% (realmente) nos próximos meses e isso será uma dor para a SAN, eu quero consertar a causa raiz antes que seja um problema.

Então, eu preciso de alguma ajuda para descobrir uma maneira de colocar essas gravações armazenadas em cache ou ocultadas de alguma forma dos discos 'físicos' para que as VMs disparem gravações maiores, mas menos frequentes - não há como evitar essas escreve, mas não há necessidade de fazer tantos pequenos.

Eu olhei para as várias opções ext3, definindo noatime e nodiratime, mas isso não é muito importante no problema. Obviamente, estou investigando outros sistemas de arquivos, mas pensei em descartar isso caso outros tenham o mesmo problema no futuro.

Ah, e não posso simplesmente encaminhar essas mensagens para o Splunk, nossa equipe de firewall insiste que elas estão no formato original para fins de diag.

    
por Chopper3 23.11.2011 / 10:50

2 respostas

1

Talvez a opção commit ext3 mount ajude você? Por exemplo, commit=60 descarregaria todos os dados e metadados apenas uma vez por minuto.

Aviso obrigatório: isso pode levar à perda de dados de até um minuto de dados (se você passar o valor commit = 60).

    
por 23.11.2011 / 10:54
1

Sistema de arquivos: desabilite as barreiras de escrita se os dispositivos os estiverem usando e desabilite as atualizações do atime em todo o computador.

Mas é possível que você também possa ajustar seu syslog às custas de uma perda maior de dados no caso de um evento de falha (energia, etc.).

Exemplos de diretivas de syslog-ng (que podem não ser o que você está usando):

  • flush_lines() Especifica quantas linhas são liberadas para um destino por vez. O syslog-ng espera que esse número de linhas se acumule e as envia em um único lote.

  • flush_timeout() Especifica o tempo que o syslog-ng aguarda que as linhas se acumulem em seu buffer de saída. Veja a opção flush_lines para mais informações.

O destino, neste caso, é um arquivo em disco.

    
por 25.11.2011 / 19:55