Почему мы должны установить область подкачки, так же дважды большую как наша физическая память?

Когда мы хотим установить систему Linux, существует общее предложение для установки области подкачки, вдвое более большой, чем физическая память. Я хочу знать, почему нам нужно это, и как это - это предложение, которым становятся?

10
задан 16.05.2013, 21:50

4 ответа

Короткий ответ, "Вы не имеете к".

В зависимости от типа ядра/системы может иметь смысл измерять область подкачки как этот, например, в настройке FreeBSD (7) страница справочника, мы находим следующее объяснение позади размера подкачки, по крайней мере, 2x размера физической памяти:

Необходимо обычно измерять область подкачки к приблизительно 2x оперативная память для систем меньше чем с 2 ГБ RAM, или приблизительно 1x оперативная память, если у Вас есть больше. Если у Вас не будет большого количества RAM, тем не менее, то Вы будете обычно хотеть намного больше подкачки. Не рекомендуется настроить любого меньше, чем 256M подкачки в системе, и необходимо иметь в виду будущее расширение памяти при калибровке раздела подкачки. Алгоритмы подкачки страниц ядра VM настраиваются для выполнения лучше всего, когда существует, по крайней мере, 2x подкачка по сравнению с оперативной памятью. Конфигурирование слишком небольшой подкачки может привести к неэффективности на сканирующей код странице VM, а также создать проблемы позже, если Вы добавляете больше памяти к своей машине. Наконец, в больших системах с несколькими дисками SCSI (или несколько дисков IDE, воздействующих на различные контроллеры), мы настоятельно рекомендуем настроить подкачку на каждом диске. Разделы подкачки на дисках должны быть приблизительно тем же размером. Ядро может обработать произвольные размеры, но внутренний масштаб структур данных к 4 раза самому большому разделу подкачки. Хранение разделов подкачки около того же размера позволит ядру оптимально чередовать область подкачки через диски N. Не волнуйтесь о том, чтобы переусердствовать его немного, область подкачки является изяществом сохранения UNIX и даже если Вы обычно не используете много подкачки, это может дать Вам больше времени для восстановления с безудержной программы прежде чем быть вынужденным перезагрузить.

Другие факторы могут быть важными, когда Вы решаете, сколько области подкачки для выделения, где выделить ее и так далее. Например, при установке большого сервера с 128 ГБ физической памяти, это - вероятно, хорошая идея постараться не предварительно выделять 256 ГБ дискового пространства для подкачки, это никогда не будет используемым.

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

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

8
ответ дан 07.12.2019, 12:52

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

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

Наконец, наличие слишком большой подкачки может быть плохой вещью, несмотря на то, что могут сказать другие. Думайте - если Вы имеете 4G RAM и к тому же нуждаетесь в дополнительном 8G подкачки, Вы думаете, что Ваша система все еще будет применима, что со всем свопингом к/от диску она делает? Часто лучше иметь процесс памяти-hogging быть уничтоженным сразу же, когда у Вас заканчивается память, вместо того, чтобы иметь всю систему, медленную к неприменимому уровню, когда это начинает тратить все свои данные маршалинга времени в и из подкачки.

4
ответ дан 07.12.2019, 12:52

Давным-давно, был общий вариант Unix (я думаю, что это был BSD, но я не могу найти ссылку прямо сейчас), который выделил бы каждую страницу виртуальной памяти в области подкачки. Таким образом, если бы у Вас было столько же подкачки сколько RAM, то размер Вашей виртуальной памяти все еще совпал бы с Вашей RAM. Обычная рекомендация затем состояла в том, чтобы иметь вдвое больше подкачки как RAM, которая сделала виртуальную память вдвое более большой, чем RAM.

Современные нельды не ведут себя тот путь, таким образом, причина правила является устаревшей (я думаю, что это было уже устаревшим в 1992, таким образом, это никогда не было важно для Linux). Но достаточно странно пережившее правило. Если Вы следуете за ним теперь, Вы получаете виртуальную память, это - три раза Ваше количество RAM, тогда как исходное намерение состояло в том, чтобы получить вдвое больше.

Просто, потому что историческая причина позади правила является неправильной, не означает, что это глупо. Дисковое пространство стало более дешевым, таким образом, может иметь смысл выделять больше подкачки. Сколько подкачки, которую Вы должны иметь, во многом зависит от того, сколько RAM Вы имеете и как Вы используете ее. Можно выполнить систему без подкачки, но затем Вы не получаете шанс выбрать, какие программы уничтожить, если Ваша RAM действительно заполняется, и система, может быть медленнее (иногда, лучше использовать RAM для кэша и выгрузить некоторую память программ). Выделение слишком большой подкачки стоит крошечной суммы RAM (для структур данных ядра) и конечно дисковое пространство (но в наше время это обычно очень дешево за исключением SSD). Наличие достаточной подкачки для установки всей виртуальной памяти необходимо, если Вы хотите быть в спящем режиме.

1
ответ дан 07.12.2019, 12:52

Древняя рекомендация на основе предположений о типичной мощности системной памяти, скорости шины памяти по сравнению со скоростью диска и проценте процессов времени тратит в различных состояниях ожидания. Я скептически настроен, что в эти дни Вы хотели бы, чтобы больше, чем, возможно, 1/2 физическая память в области подкачки - как раз предотвратили случайное уничтожение OOM, при выполнении близкого полного использования памяти. Но полностью зависит от Вашей типичной рабочей нагрузки, YMMV, и т.д.

0
ответ дан 07.12.2019, 12:52

Теги

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