Недостатки отсутствия разделов подкачки


8

Я недавно установил Ubuntu 10.04 на свой ноутбук. Из-за ограниченного пространства SSD я не установил раздел подкачки для ОС, и у меня 1,5 ГБ ОЗУ.

Во время установки есть предупреждение, но я думаю, что это не имеет большого значения, так как все прошло гладко.

В долгосрочной перспективе, будут ли какие-либо недостатки отсутствия раздела подкачки?


2
Gparted будет рад выкроить пару концертов вашего корневого диска, и сделает это с легкостью и апломбом.
MSW

Ответы:


6

Я думаю, что если я собираюсь написать вам ответ на вопрос, я должен сначала немного объяснить весь этот файл подкачки. Прошу прощения за мою многословность.

Раздел подкачки / раздел подкачки, аналогично файлу подкачки в Windows, представляет собой пространство на жестком диске, предназначенное для более эффективного использования памяти. Есть два использования пространства подкачки.

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

  2. Когда некоторые страницы памяти (память делится на «страницы») используются некоторое время назад, но больше не используются сейчас, они будут перенесены в файл подкачки, а оставшаяся память может быть использована для чего-то другого, что может быть более полезным ( например, даже кеширование!) - когда это происходит в системе без пространства подкачки, это приводит к тому, что свободные страницы остаются в памяти. Это не слишком серьезно, поскольку в наши дни у нас достаточно много памяти.

И затем, так что теперь у нас есть использование раздела swapfile / swap, сколько обычно рекомендуется? - это зависит от функции машины. Если это настольный компьютер, установите его в 1-1,5 раза больше памяти. Если это серверная машина, сделайте то же самое, но обратите внимание на использование подкачки, если она интенсивно используется, обновите память.

Как уже отмечали другие, gparted может помочь вам выделить несколько гигабайт пространства из вашего раздела ext2 / ext3, но вы также можете использовать файл подкачки:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile
swapon /swapfile

Вы должны иметь

swapfile none swap sw 0 0

на , fstabчтобы убедиться , что он используется при каждой перезагрузке

И еще одна вещь: если вы не возражаете против использования пространства подкачки, но хотите свести к минимуму использование, если ваша память на самом деле не растянута, вы можете изменить «перестановку» ядра, изменив /proc/sys/vm/swappiness(значения 0-100; по умолчанию, 60).


Для подкачки могут использоваться другие способы, отличные от указанных вами, например раздел подкачки, используемый для автоматического сохранения файла аварийного дампа. Кроме того, размер памяти в 1-1,5 раза не является общепринятым значением. Теоретически, компьютеру с большим объемом памяти потребовалось бы меньше памяти для подкачки, поскольку он израсходовал ОЗУ X и требовал больше ОЗУ, он мог бы разместить эту дополнительную память в доступной ОЗУ вместо подкачки.
TOOGAM

@TOOGAM это было в 2010 году, когда люди использовали 2-4 ГБ оперативной памяти на своем рабочем столе.
бубу


3

Если вам когда-нибудь не хватит памяти, то непредсказуемое поведение может произойти с вашими программами. Иногда ядро ​​начинает сбрасывать память в случайных местах . Ядро начнет сбрасывать процессы с низким приоритетом.

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


3
Это произойдет независимо от того, был ли у вас своп.
Игнасио Васкес-Абрамс

2
На самом деле ядро ​​не «начнет сбрасывать память в случайных местах». Скорее он будет делать то, что должно быть сделано, и начнет убивать процессы, которые считаются «менее важными», пока ситуация не улучшится. Это делает «убийца ООМ». Смотрите, например, linux-mm.org/OOM_Killer
sleske

Я стою исправлено.
Нитродист

0

После установки проверьте использование памяти при выполнении операций с интенсивным использованием памяти или просто при открытии «больших» приложений, таких как Openoffice.org, распаковки файлов и тому подобного. Если вы видите, что общий объем используемой памяти составляет почти 1,5 ГБ, тогда, вероятно, будет хорошей идеей иметь раздел подкачки или файл подкачки, на случай, если вам удобно запустить что-то, использующее много памяти, и Ubuntu начнет сбрасывать важную память, и, возможно, даже части ядра (не хорошо, действительно не хорошо ...).


Мне любопытно, возможно ли вообще сделать так, чтобы linux отбрасывал части своего ядра, чтобы освободить память для запущенных процессов?
Игорь Зиновьев

Наверное, нет, но вы знаете, что я имею в виду ...
Hello71

AFAIK, само ядро ​​Linux всегда остается в памяти. Он загружается как первая часть последовательности загрузки и остается; память никогда не освобождается и даже не выгружается. Однако вы можете загружать и выгружать модули, и эта память будет освобождена (я полагаю), но обычно это всего несколько десятков кбайт на модуль. Ядро также поддерживает различные внутренние структуры данных и буферы, возможно, оно сможет освободить некоторые из них (хотя и не уверен).
слеске

0

Не полный ответ, но вот история об одной вещи, которая действительно напала на меня, даже когда я думал, что у меня есть все возможные недостатки под контролем:

/programming/4567972/error-executing-aapt-all-of-the-sudden Таким образом, некоторые инструменты, запускаемые из действительно больших процессов / приложений Java, не смогут работать всегда. Однако большинство обычных пользователей не столкнется с этим.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.