A propagação de torrents afeta o armazenamento em cache do disco rígido?

3

Eu baixei um monte de arquivos torrent e, enquanto os estou testando, percebi que, muitas vezes, quando eu começo o navegador, ele fica lento e o indicador de atividade do disco rígido está ligado. Normalmente, quando eu inicio um programa, ele é armazenado em cache na RAM e iniciá-lo novamente é muito rápido, e eu tenho 3 GB de RAM, então normalmente ele fica em cache quase sempre. Mas quando meu cliente de torrent está semeando, parece que depois de uma hora os programas que eu executei não são mais armazenados em cache na RAM.

Eu estava pensando que talvez seja por causa das leituras de disco que o cliente de torrent executa são armazenadas em cache e, eventualmente, preenchem RAM. Mas eu não acho que eles precisam ser, pois eles são lidos apenas uma vez e dificilmente serão lidos novamente em breve.

Então, minhas perguntas são - é assim que eu penso, e se é possível, em princípio, impedir que as leituras de disco sejam armazenadas em cache? Eu posso tentar editar o código fonte do programa.

    
por sashoalm 22.11.2011 / 08:29

2 respostas

3

Dependerá exatamente de qual programa torrente você está usando. Alguns deles podem se comportar de maneiras diferentes.

Mas sim, é possível ignorar a cache do sistema, uma vez que este é um problema comum.

Se você estiver familiarizado com a edição da fonte (talvez isso deva estar em outro StackExchange ..), localize onde o programa torrent abre o arquivo do disco. Provavelmente uma chamada open (). Se é fdopen () então está usando o stdlib e não tenho certeza se o stdlib suporta i / o direto.

Esta chamada de sistema leva até três argumentos, o primeiro é o nome do arquivo, o segundo são sinalizadores, o terceiro é uma máscara de criação de arquivo opcional. Os sinalizadores provavelmente serão algo como O_RDWR no momento. O sinalizador para "não usar o cache do sistema" é O_DIRECT e você combina sinalizadores, separando-os com | .

Portanto, o resultado do argumento flags nesse caso seria O_RDWR | O_DIRECT . Basta adicionar o novo sinalizador.

Para mais informações, consulte

man 2 open
    
por Caesium 22.11.2011 / 10:54
0

Não feche o navegador:)

O cache de E / S (usado apenas para leitura, não gravando em um arquivo), embora excessivo, não fará com que as páginas que o programa está usando sejam trocadas.

    
por arrange 22.11.2011 / 23:27