2

Моя ОС Ubuntu 12.10 64 битная. Я уже давно сталкиваюсь с этой проблемой, также как и со всеми предыдущими версиями Ubuntu. Если я запускаю процесс, который занимает всю память, а по окончании компьютер все еще парализован, то есть не так быстро, как это было до запуска процесса.

Это общий сценарий и что можно сделать, чтобы противостоять / излечить его?

1 ответ1

2

Во-первых, вы, вероятно, не должны запускать процесс, который занимает всю память.

Причина, по которой это происходит, связана с swap space .

Время аналогии

У тебя есть автобус. Этот автобус имеет "предпочтительные" места внутри автобуса и "переливные" места на крыше. Люди сидят на крыше только в том случае, если все предпочтительные места заняты, и им все равно действительно нужно ехать в автобусе.

Этот автобус обладает следующими уникальными свойствами:

  • Места очень маленькие; среднестатистический человек занимал бы большое количество мест, может быть, 2 или 4 для ребенка, 8 или 10 для взрослого, а некоторые - до 40.
  • Время, необходимое для посадки или высадки в автобус, для людей на предпочтительных местах в 20 раз быстрее, чем для переливных сидений.

Есть также три культурных правила об этом автобусе:

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

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

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

Теперь, чтобы применить эту аналогию к реальности: "места переполнения" - это пространство подкачки на жестком диске, а "предпочтительные места" - ОЗУ. Правила автобуса применяются довольно чисто.

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

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

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

"Лечение" состоит из трех частей:

  • Приоритет первый: купить больше оперативной памяти. Это никогда не повредит вам и может только помочь вам. Если у вас есть деньги, а ваша материнская плата способна вместить больше оперативной памяти, сделайте это.
  • Приоритет второй: не запускайте ту программу, которая занимает всю вашу оперативную память.
  • Приоритет третий: уменьшите размер раздела подкачки, или полностью исключите его, или купите более быстрый жесткий диск (например, SSD).

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