5

Я хотел бы знать, возможно ли перенести страницы из определенного процесса в основную память, или установить параметры для данного процесса или класса процесса, чтобы он не был выгружен.

2 ответа2

2

Вы можете отменить процесс, прочитав все его страницы памяти.

Обычно это было бы немного обременительно (чтение /proc/…/maps чтобы узнать, где находятся выделенные страницы, затем чтение этих страниц из /proc/…/mem просмотра man proc для более подробной информации), но, к счастью, есть программа, которая уже делает это: gcore . Его цель - сбросить файлы ядра, и в процессе gcore необходимо прочитать всю эту память. Поскольку нас не интересует файл ядра, мы можем просто попросить его сохранить его в /dev/null (файлы ядра могут быть большими, поэтому их запись на диск сделает его намного медленнее). Пример:

gcore 22382 -o /dev/null
1

Если то, что вы пытаетесь сделать, это улучшить производительность процесса, я бы рекомендовал nice.

Вы также можете повлиять на склонность ядра к обмену в целом, установив его перестановку.

Вы также можете найти этот вопрос и его ответы полезными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .