Я пишу много-много данных, которые не будут считываться в течение нескольких недель — по мере того, как моя программа запускает объем свободной памяти на машине (отображаемый как «свободный» или «верхний»), очень быстро уменьшается объем памяти, Использование приложения не увеличивается, равно как и объем памяти, используемый другими процессами.
Это заставляет меня поверить, что память потребляется кешем файловой системы - поскольку я не собираюсь читать эти данные в течение длительного времени, я надеюсь обойти системные буферы, чтобы мои данные записывались непосредственно на диск. Я не мечтаю улучшить производительность или стать супер-ниндзя, я надеюсь дать намек файловой системе, что я не собираюсь возвращаться за этой памятью в ближайшее время, так что не трать время на оптимизацию для этих случаев.
В Windows я столкнулся с похожими проблемами и исправил проблему с помощью FILE_FLAG_NO_BUFFERING|FILE_FLAG_WRITE_THROUGH — память машины не использовалась моим приложением, и в целом машина стала более удобной в использовании. Я надеюсь повторить улучшения, которые я видел, но в Linux. В Windows есть ограничение на запись фрагментами размером в сектор, я доволен этим ограничением из-за измеренного мной выигрыша.
есть ли аналогичный способ сделать это в Linux?