Tem certeza de que deseja fazer isso?
- Você deve colocar as coisas que deseja acesso mais rápido no SSD. Se você não armazenar os dados em cache, seu acesso provavelmente será mais lento (a menos que você possa ler mais rápido do SSD que da memória) e cada acesso exigirá E / S.
- Você considerou o desgaste que as gravações adicionais causarão nos SSDs. O cache de gravação reduz a E / S.
A memória cache de disco é liberada, se necessário, para outras finalidades. Se a memória não estiver sendo usada para outros propósitos, seria definitivamente desperdiçada se não for usada para o buffer de disco.
O Direct I / O como você está especificando é normalmente visto em bancos de dados. No entanto, muitas configurações de banco de dados apenas garantem que os dados sejam liberados para o disco na gravação de bloco. Caso contrário, a memória não usada é usada para buffers de disco. Isso pode fazer solicitações de leitura de disco muito mais rápido do que seria necessário se os dados fossem lidos do disco.
Alguns sistemas operacionais possuem (tinha) flags de montagem que requeriam E / S direta em vez de buffering. Eu não vi nenhuma menção de tal opção no Linux. sync
forçará os dados a sair mais rápido, mas não acredito que seja liberado da memória muito mais rápido do que seria de outra forma.
A opção para não armazenar em buffer a E / S é tipicamente feita por uma base aberta. O programa de abertura é responsável por fazer as chamadas de sistema apropriadas ou configurar os sinalizadores apropriados na solicitação de abertura de arquivos.