Как не дать моей системе перестать отвечать на запросы (из ОЗУ)?

10

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

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

Есть ли способ убедиться, что пользовательский интерфейс остается отзывчивым, когда моя система работает?

Спасибо!

EDIT: меня все еще интересует, есть ли что-то вроде приятного для памяти, но я только что обнаружил, что у моего sistem нет места подкачки. Я думаю, что это произошло потому, что я начал использовать зашифрованный дом и зашифрованный своп (см. Swap не работает над чистой установкой 14.04 с использованием зашифрованного дома ). Таким образом, моя система, вероятно, перестает отвечать, потому что у меня нет места подкачки, поэтому моя система не может заменить ненужные программы, когда она становится низкой в ​​памяти.

    
задан Sam King 11.12.2014 в 01:45
источник

1 ответ

2
  

Я только что обнаружил, что у моего sistem нет пространства подкачки

Если это правда, то это, вероятно, способствует решению проблемы.

Используя несколько виртуальных машин с большими выделениями памяти, объем ОЗУ, который обычно будет более чем достаточным для нормального использования (8 ГБ), начинает становиться жестким, что означает, что ваша система не сможет использовать столько кеша и будет хочу обменять. Теперь, если у вас нет свопа, будет еще больше давления на память, и вы даже можете убить задачи из-за нехватки памяти.

Swap пытается улучшить общую стабильность и производительность в ситуациях, подобных описанным вами, путем перераспределения некоторых распределенных, но редко используемых данных в памяти на диск, освобождая память для данных, которые вы используете. Добавление swap, если у вас действительно есть, поможет. Тем не менее, с точки зрения производительности вы сделаете гораздо больше улучшения, если вы также купите больше оперативной памяти или используете меньше.

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

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

  

Есть ли способ убедиться, что пользовательский интерфейс остается отзывчивым, когда моя система работает?

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

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

  

Я мог представить себе что-то вроде «приятного» для памяти (чтобы у меня был хороший Chrome и моя виртуальная машина)

На самом деле нет «приятного для памяти». Доступ к памяти происходит настолько быстро, что вы обычно можете практически игнорировать его. Когда вы избиваете, это не память, это диск, вот в чем проблема. Из-за этого есть «ионика». Хотя это, вероятно, не то, что я бы рекомендовал для вашей проблемы.

Другим грубым эквивалентом «nice для памяти» является своп - вы не можете контролировать, насколько каждый процесс будет индивидуальным, но система выполняет довольно хорошую работу по разработке тех процессов, которые вы активно используете, и поэтому они имеют более высокий приоритет для храниться в ОЗУ.

Но, как я уже сказал, и как золотое правило, если у вас заканчивается ОЗУ, тогда покупка большего количества ОЗУ - это решение с наименьшими головными болями и недостатками.

    
ответ дан thomasrutter 11.12.2014 в 23:43
источник