Сейчас я решаю следующую проблему в Ubuntu: можно ли указать, должен ли один процесс запускаться только в ОЗУ (т. Е. Не разрешен обмен) или наоборот, только в части подкачки? Я имею в виду, что процесс должен быть остановлен системой, а не использовать другой тип памяти.
Это важно для меня, потому что я должен сравнивать время работы большего количества алгоритмов, и я должен быть уверен, что все процессы выполняются либо в оперативной памяти, либо в разделе подкачки.
Нет, если процесс не получает память и не связывает эту память с помощью mlock
нет гарантированного способа гарантировать, что он не пойдет на свопинг.
Своп используется для анонимных грязных страниц. У него нет фиксированной поддержки файловой системы или источника, поэтому нет программы Когда-либо можно начать со свопа.
И если приложение, вызывающее его для получения памяти, не связывает память с помощью mlock (), оно может перейти на свопинг. Вы можете попытаться устранить всю теорию «перехода к свопу», не используя файл подкачки или раздел подкачки, но на самом деле это не рекомендуемый способ.
Возможно, не существует удобного способа убить процесс, если он меняет местами в это время. Однако сценарий крошечного демона должен быть довольно простым. Что нужно сделать вашему скрипту:
Возможно, это не лучшее решение, но, вероятно, лучше, чем ничего. Соответствующее обсуждение можно найти на linuxquestions.org. Для ручного мониторинга процессов вы можете указать «верх», чтобы показать, сколько используется своп (внутри сверху нажмите «f» и отобразите поле SWAP). hth