Как указывает status_access_denied в своем ответе, это небезопасно для данных, так как они будут потеряны в случае отключения питания или другого неконтролируемого отключения.
Кроме того, вам часто лучше позволить ОС решать, что хранить в оперативной памяти. Если вы посвятите кусок оперативной памяти определенным файлам, таким как этот, то он не сможет использовать его для других целей, таких как кэширование других файлов, память виртуальной машины, базы данных и все, что еще делает ваш сервер.
Если вы хотите удостовериться, что данные находятся в кэше при загрузке (где они будут оставаться, если память действительно никогда не понадобится для чего-либо еще, вы можете запустить что-то вроде:
find /path/to/directory -type f | xargs cat > /dev/null
при загрузке. Приведенная выше команда приведет к тому, что все файлы будут прочитаны и, следовательно, пропущены через подсистему кэширования. Debian и Ubuntu (и, возможно, другие дистрибутивы) запускают скрипт /etc/rc.local
в конце процесса загрузки, так что это, пожалуй, самое простое место для ввода команды. Если объем загружаемых данных велик и / или распределен по многим большим файлам, вы можете ограничить скорость чтения, чтобы это не мешало чему-либо еще происходящему (т.е. если вы входите в систему напрямую после загрузки, или другие службы все еще запускаются) с чем-то вроде:
find /path/to/directory -type f | xargs pv --rate-limit 1M --quiet > /dev/null
Вы найдете pv
в стандартных репозиториях. --rate-limit
делает то, что говорит на жестком диске (в данном случае ограничение скорости до 1 Мбайт / с), а --quiet
говорит, что не стоит беспокоиться о индикаторе выполнения и другом отображении.
Вы можете добавить команду в задание cron, если вы хотите, чтобы сервер иногда перечитывал файлы, чтобы повторно заполнить их в кеше, если они были вытеснены чем-то другим.