Вам, вероятно, не следовало создавать RAM диск (т.е. использовать tmpfs
, а не ramfs
]), см. это . Linux управляет оперативной памятью лучше, чем вы, и его страничный кеш очень хорош (так что вам может не понадобиться создавать какой-либо «RAM» диск, просто используйте tmpfs
примонтировал / tmp
и поместил туда свой файл или даже любой файл в любой файловой системе: при большом объеме ОЗУ данные очень часто остаются в кэше страниц, а фактический дисковый ввод-вывод не используется, но см. sync (2) . См. linuxatemyram и мой ответ на ваш предыдущий (запутанный) вопрос .
И «назначение RAM диск для определенного процесса "невозможно в Linux; вам, вероятно, следует объяснить вариант использования. RAM-диск обычно представляет собой файловую систему tmpfs (или, возможно, устаревшую файловую систему ramfs), поэтому вы назначаете его файловой системе, а не отдельному процессу.
Вы, вероятно, могли бы ограничить большинство других процессов, использующих ваш Linux. Например, используйте встроенную оболочку ulimit
(на основе системного вызова setrlimit (2) )
Как я могу быть уверен, что этот RAM-диск используется только упомянутым процессом и другие процессы не изменят свои данные?
Ядро должно гарантировать файловую систему tmpfs
(как и другие файловые системы ). Только процессы, обращающиеся к файлам в этой файловой системе, могут изменять данные внутри них.
Если вы можете изменить код программы конкретного процесса, который вам нужен, используйте mlock (2) .
См. Также ionice (1) & nice (1)
Я предполагаю, что если вы не создавали RAM-диск, ваша система Linux будет работать (или ее можно настроить для выполнения ) лучше, чем с явным RAM-диском.
Вы не получите никакой помощи, если не покажете точные команды и код, решающий вашу проблему.