Насколько я знаю, теоретический предел для файла подкачки безумно велик в зависимости от того, используется ли 32-битная или 64-битная система.
Я сделал файл подкачки объемом 16 ГБ в 64-битной системе ОЗУ объемом 4 ГБ, в противном случае у меня были средние характеристики, потому что на моем внутреннем жестком диске объемом 1 ТБ более чем достаточно ...
Но действительно ли большой файл подкачки имеет значение в скорости / производительности?
Ответы:
Вы можете иметь до 32 областей подкачки (файлов или разделов) объемом до ~ 4 миллиардов (2 ^ 32) страниц каждая, где «страница» имеет размер 4 КБ в традиционной (например, x86 или x86_64) системе, но может быть больше в других архитектуры или если вы специально настроили большие страницы.
Это дает теоретический максимум 16 ТБ на область подкачки и до 32 областей подкачки. Могут быть и другие ограничения, которые применяются, прежде чем вы достигнете этого, но это такая же большая область подкачки, которая
mkswap
может создать для вас.Что касается того, сколько вы хотите, любая область подкачки, превышающая максимальную, которую вы фактически используете, никак не влияет на производительность или стабильность системы. Хитрость заключается в том, чтобы оценить максимальный объем использования, который когда-либо будет происходить в нормальной или даже ненормальной ситуации, и использовать его в качестве размера файла подкачки и не более.
На момент написания очень маловероятно, что пространство подкачки будет больше, чем примерно на 4 ГБ больше, чем объем вашей физической памяти, если ваша система не работает ненормально. В типичной системе, такой как настольная система, используемая одним человеком за раз, вы, возможно, даже остановитесь на максимуме, скажем, от 6 до 8 ГБ, даже если ваша физическая память больше.
источник
Это не имеет значения с точки зрения скорости или производительности. Это позволяет вам использовать до 20 ГБ виртуальной памяти, прежде чем OOM killer начнет уничтожать процессы, чтобы освободить память.
Если вы хотите лучшую производительность:
swappiness
если вы не используете более 4 ГБ, что частоисточник
Согласно ответу Жиля
Кроме того, он цитирует справочную страницу для
mkswap
:В библиотеке linux / swap.h есть
MAX_SWAPFILES
запись, поэтому существует ограничение на количество файлов подкачки на уровне ядра, однако это, очевидно, также не является определяющей областью. Согласно связанному документу:Насколько я понимаю, в 32-битных архитектурах может быть максимум до 64 файлов подкачки. Однако я не заметил в документе упоминания о том, что произойдет с 64-битной архитектурой. Также стоит отметить, что в этом случае попытки ОП создать файлы подкачки потерпели неудачу на 30-й записи.
Что касается разделов подкачки, то в ядре, по-видимому, нет ограничений на это, кроме ранее упомянутых констатов, но число любых разделов все еще будет ограничено базовым BIOS и расположением диска .
источник
Этот ответ может не подходить для Ubuntu 18.04 (спасибо @Chai T. Rex за это в комментариях).
Во всяком случае, для предыдущих версий, вот так (предлагаемого обновления LTS> LTS до сих пор не существует, так что это может быть актуально):
Это не файл, это раздел, и да, это происходит из-за перестановки
Таким образом, в основном, если ваш раздел подкачки намного больше, чем у вас есть RAM, система будет иметь тенденцию менять больше, вызывая общую медлительность.
источник
При увеличении размера раздела подкачки до сколь угодно большого разницы не наблюдается.
Существует несколько факторов, связанных с подкачкой, которые могут повлиять на производительность, например,
swappiness
тип жесткого диска (SDD или HDD).Перестановка происходит довольно медленно, а увеличение перестановки снижает производительность. Однако это имеет влияние только в том случае, если недостаточно ОЗУ. Но это лучше, чем не иметь никакого обмена. Я рекомендую сделать размер раздела подкачки в два раза больше вашей оперативной памяти.
источник
Я прихожу к тому, что файл подкачки или раздел подкачки практически не имеют ограничений. Кроме того, мой файл подкачки 16 ГБ довольно большой, но размер не влияет на скорость.
Однако я понимаю, что скорость влияет на то, что система фактически использует это пространство подкачки, а не физическое оборудование.
Мое решение для этого состоит в том, чтобы сделать высокое значение подкачки, чтобы своп не использовался чрезмерно, в отличие от более быстрого оборудования. так я и сделал:
Добавлено в файл:
спасти
обновить (или мог просто перезагрузиться)
источник
#vm.swappiness = 50
в/etc/sysctl.conf
не имеет никакого эффекта, ведущие#
делает эту линию комментария, удалите его. Вы можете проверить swappiness сcat /proc/sys/vm/swappiness
.