Если вы только читаете данные, то вы действительно можете настроить кэширование так, чтобы все данные были кэшированы в ОЗУ - см. /Usr/src/linux/Documentation/sysctl/fs.txt vm.txt для деталей о том, что вы можете настроить здесь. Проблема возникает, когда вы пишете данные, особенно если вы используете fsync () или подобное, чтобы гарантировать, что данные были записаны на фактический диск.
Поскольку операционная система имеет для обновления диска в случае fsync()
, вы ничего не можете сделать, если по-прежнему хотите убедиться, что ваши данные непротиворечивы и не будут потеряны в отключение питания.
Одной из проблем, с которыми вы можете столкнуться, является atime
или время доступа - по умолчанию при каждом обращении к файлу время доступа обновляется в inode. Это приведет к записи на диск, даже если вы думаете, что просто выполняете чтение. Это может быть особой проблемой в вашем сценарии, когда вы получаете доступ ко многим маленьким файлам. Если вам не нужно отслеживать время доступа, вы можете смонтировать свою файловую систему с помощью noatime
, чтобы отключить эту «функцию».