Как препятствовать тому, чтобы моя система стала безразличной при перегрузке (из RAM)?

У меня есть 8 ГБ RAM, но иногда я выполняю пару VMs и достаточных процессов Chrome для израсходования большей части моей памяти. Это обычно прекрасно, но иногда моя система начинает перегружаться, и для меня трудно восстановиться с него, просто не ожидая вещей поправиться, так как UI главным образом замораживается.

Во всех этих случаях программы с помощью большей части моей RAM могли быть deprioritized. Если бы Chrome или VM стали небыстро реагирующими, но моя графическая среда и терминал были все еще быстро реагирующими, то я мог переключиться на терминал, найти преступника и уничтожить его. Я мог вообразить что-то как "хорошее" для памяти (так, чтобы я мог хороший Chrome и мой VM), или что-то, чтобы вынудить графическую среду и мой терминал остаться в памяти а не подкачать.

Существует ли способ гарантировать, что UI остается быстро реагирующим, когда моя система перегружается?

Спасибо!

Править: Мне все еще интересно в том, существует ли что-то как хорошее для памяти, но я просто обнаружил, что моя система не имеет никакой области подкачки. Я думаю, что это произошло, потому что я начал использовать зашифрованную домашнюю и зашифрованную подкачку (см. Подкачку, не работающую над чистыми 14,04 установками с помощью зашифрованный домой). Так, моя система, вероятно, становится безразличной, потому что у меня нет области подкачки, таким образом, моя система не может выгрузить ненужные программы, когда она понижается на памяти.

11
задан 13 April 2017 в 05:24

1 ответ

я просто обнаружил, что моя система не имеет никакой области подкачки

, Если это верно, то это, вероятно, способствует проблеме.

При помощи нескольких VMs с выделениями памяти большой емкости, сумма RAM, которая обычно была бы более чем достаточно для нормальной эксплуатации (8 ГБ), начинает становиться трудной, что означает, что Ваша система не будет в состоянии использовать в качестве большого количества кэша и захочет подкачать. Теперь, если у Вас не будет подкачки, будет еще больше давления на память, и можно даже получить задачи, уничтоженные из-за исчерпывания памяти.

Подкачка пытается улучшить полную устойчивость и производительность в ситуациях как та, которую Вы описали, путем перераспределения некоторых выделенных, но редко используемых данных в памяти к диску, освобождения памяти для данных, которые Вы используете. Добавление подкачки, если у Вас действительно нет ни одного, поможет. Однако в терминах производительности Вы сделаете намного больше улучшения, если Вы также будете покупать больше RAM или будете использовать меньше из нее.

В системе, куда Вы выполняете VMs, но Вы также использование регулярного рабочего стола на хосте VM, Вы не хотите, чтобы Ваш VMs поднял всю Вашу RAM, на самом деле я сохранил бы половину Вашей RAM (до 4 ГБ) для хоста, учитывая Вы запускаете программное обеспечение на хосте и хотите, чтобы он был быстро реагирующим.

Примечание также, что VMs имеют свойственную неэффективность не только, потому что их RAM является полностью отдельной, они не совместно используют кэша или буферов, но они выполняют целую отдельную ОС под многими слоями абстракции. Таким образом, можно всегда получать лучшую эффективность, если Вы решаете выполнить что-то на хосте, а не в VM - хотя, если Ваша цель для использования VMs состоит в том, чтобы использовать другие операционные системы, это не будет возможно.

там способ гарантировать, что UI остается быстро реагирующим, когда моя система перегружается?

то, Когда сумма RAM Вы имеете, является проблемой, что-либо, что можно сделать, только взлом - действительное решение должно купить больше RAM (хотя в случае, поскольку я упомянул, что можно быть в состоянии просто выделить меньше VMs).

Ваш вопрос помещается простыми словами - Вы хотите, чтобы UI был в состоянии продолжить действовать гладко, даже если IO переполнен. Однако это сложно для ответа. Ваша система уже будет делать это в меру своей способности: операции, которые не требуют доступа к диску, не будут задержаны. Если Ваш "UI заикается", это - потому что для конкретного процесса, ответственного за тот UI, нужен доступ к диску. В низкой ситуации с памятью и где диск перегружается, даже что-то, что обычно будет тривиально - такие как чтение некоторой конфигурации из Вашего корневого каталога для обнаружения то, что предпочтения дисплея - может быть медленным из-за истощения дискового кэша.

я мог вообразить что-то как "хорошее" для памяти (так, чтобы я мог хороший Chrome и мой VM)

нет действительно "хорошо для памяти". Доступ к памяти так быстр, что можно обычно практически игнорировать его. Когда у Вас есть перегрузка, это не память, это - диск, это - проблема. Существует "ionice" из-за этого. Хотя это, вероятно, не, что я рекомендовал бы для Вашей проблемы.

Другой грубый эквивалент "хорошего для памяти" является подкачкой - Вы не можете управлять, как swappy, который каждый процесс индивидуально, но система, делает довольно хорошее задание разработки, которая обрабатывает Вас, активно используют и поэтому более высокий приоритет, который будет сохранен в RAM.

, Но поскольку я сказал и как золотое правило, если у Вас заканчивается RAM, затем покупать больше RAM является решением с наименьшим количеством головных болей и недостатков.

2
ответ дан 23 November 2019 в 04:11

Другие вопросы по тегам:

Похожие вопросы: