Como determinar o tamanho usado do buffer associado ao dispositivo

0

ao montar um dispositivo sem a opção " sync ", e. g. invocando o seguinte:

mount -o async /dev/sdc1 /mnt

um buffer é associado a um dispositivo para otimizar (velocidade) as operações de leitura / gravação. Existe uma maneira de determinar o tamanho desse buffer? Outra questão que me vem à mente é, se é possível descobrir quanto dela é usada atualmente. Isso pode ser interessante para determinar o tempo que levaria para " sync " ou " umount " dispositivos lentos, como mídia baseada em flash.

Agradecemos antecipadamente por suas respostas   Rainer

    
por dubbaluga 06.01.2011 / 20:30

1 resposta

0

Não há tamanho fixo. Todos os sistemas com os quais estou familiarizado (tenho certeza sobre o Linux e acho que todos os unices e até o Windows funcionam dessa maneira) usam o máximo de memória possível para os caches de disco: o tamanho do cache de leitura é limitado apenas pela RAM disponível e a necessidade de manter a memória do processo na RAM também.

O comando vmstat ou top pode imprimir algumas estatísticas de uso de memória. No Linux, free é mais legível. Ele mostra quanta memória é dedicada aos caches de disco versus a memória de processo.

Os buffers de gravação também não possuem um limite fixo; a decisão de quando liberá-los é baseada no tempo e na carga de disco maior que o tamanho.

    
por 06.01.2011 / 21:25