Существует ли максимальный размер, в котором может функционировать файл подкачки?

Насколько я знаю, теоретический предел для файла подкачки является безумно большим в зависимости от того, используется ли система на 64 бита или на 32 бита.

Я сделал файл подкачки на 16 ГБ в системе RAM 64 битов на 4 ГБ с иначе спецификациями низкого среднего числа, потому что у меня есть более чем достаточно пространства на моем внутреннем жестком диске на 1 ТБ...

Но большой файл подкачки на самом деле имеет значение в скорости/производительности?

8
задан 28 May 2018 в 05:33

6 ответов

Это не делает различия в терминах из скорости или производительности. Это просто позволяет Вам использовать до 20 ГБ виртуальной памяти, прежде чем уничтожитель OOM начнет уничтожать процессы для исправления памяти.

Если Вы хотите лучшую производительность:

  • уменьшение swappiness если Вы не используете больше чем 4 ГБ настолько часто
  • добавьте RAM
  • переключитесь на SSD и поместите файл подкачки на него
6
ответ дан 23 November 2019 в 05:23

У Вас может быть до 32 областей подкачки (файлы или разделы) максимум с ~4 миллиардами (2^32) страницы каждый, где "страница" составляет 4 КБ на традиционном (например, x86 или x86_64) система, но может быть больше на другой архитектуре или если Вы настроили большие страницы особенно.

Это дает теоретический максимум 16 ТБ за область подкачки и до 32 областей подкачки. Могут быть другие ограничения, которые применяются перед достижением этого, но это - столь же большая область подкачки это mkswap может создать для Вас.

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

Во время записи очень вряд ли будет использована область подкачки, больше, чем приблизительно на 4 ГБ больше, чем Ваш размер физической памяти, если Ваша система не будет очень аварийной. В типичной системе, такой как настольная система, используемая одним человеком за один раз, можно, вероятно, даже остановиться в максимуме, говорят, что 6 ГБ к 8 ГБ, даже если физическая память больше.

7
ответ дан 23 November 2019 в 05:23

Согласно ответу Gilles

... Раньше был предел размера подкачки на 2 ГБ (на большинстве 32-разрядных платформ), но это не имело место в течение многих лет. Ограничение было удалено в какой-то момент в 2,2 рядах ядра.

Кроме того, он цитирует страницу справочника для mkswap:

Максимальный полезный размер области подкачки зависит от архитектуры и версии ядра.

В linux/swap.h библиотеке существует MAX_SWAPFILES запись, таким образом, существует предел на количество файлов подкачки на уровне ядра, однако который, по-видимому, не является категорической областью также. Согласно связанному документу:

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

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

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

3
ответ дан 23 November 2019 в 05:23

Этот ответ не мог бы подходить для Ubuntu 18.04 (благодаря @Chai T. Король для указания на это в комментариях).

Так или иначе для предыдущих версий, здесь это идет (нет все еще никакого предложенного обновления LTS> LTS, таким образом, это могло бы все еще быть релевантно):

Это не файл, это - раздел, и да это делает из-за swappiness

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

Так в основном, если Ваш раздел подкачки будет намного больше, чем RAM, которую Вы имеете, то система будет иметь тенденцию подкачивать больше, вызывая общее замедление.

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

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

Существует несколько факторов, связанных с подкачкой, которая может влиять на производительность такой как swappiness и тип жесткого диска (SDD или жесткий диск).

Подкачка является довольно медленной, и увеличивающийся swappiness уменьшает производительность. Однако это только имеет влияние, если существует недостаточно RAM. Но это лучше, чем не наличие любой подкачки. Моя рекомендация состоит в том, чтобы сделать размер раздела подкачки вдвое более большим, чем Ваша RAM.

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

Я прибываю в то, что файл подкачки или подкачивает раздел, практически не имеют никакого предела. Кроме того, мой файл подкачки на 16 ГБ является довольно большим, но размер не влияет на скорость.

Однако то, что я собираю, - то, что то, что действительно производит скорость, является системой, на самом деле использующей ту область подкачки в противоположность физическому оборудованию.

Мое решение этого состоит в том, чтобы сделать высокое значение swappiness так, чтобы подкачка не чрезмерно использовалась в противоположность более быстрым аппаратным средствам. таким образом, я сделал:

sudo -s
nano /etc/sysctl.conf

Добавленный к файлу:

#vm.swappiness = 50

сохранить

sudo sysctl -p

обновляться (или, возможно, просто перезагрузил),

0
ответ дан 23 November 2019 в 05:23

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

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