Два вопроса:
Есть ли какой-нибудь способ отключить подкачку для данного процесса, то есть возможно ли убить определенный процесс, если он использует всю доступную основную память системы?
Как мне деактивировать избыточную память в системе Linux?
контекст :
Я запускаю распределенное приложение, и мне бы хотелось, чтобы процесс был убит, когда в системе не хватило основной памяти. Процесс довольно сложен для связи с жестким диском, для чего я считаю разумным проверить использование памяти программно , лайк:
std::ifstream statm("/proc/self/statm");
size_t mem_virt, mem_rss, mem_shared;
statm >> mem_virt >> mem_rss >> mem_shared;
if (mem_virt == MAX_SYSTEM_PRIMARY_MEMORY) {
// kills current process
}
Но если бы был какой-то набор командных строк, способных отключить обмен для данного процесса, это было бы определенно лучше.
Тем не менее, я до сих пор не знаю, как отключить сверхкоммит. Есть идеи?