Нажмите "Enter", чтобы перейти к содержанию

Подкачка памяти: Настройка файла подкачки в Windows 10: как увеличить, изменить, отключить?

Содержание

Настройка файла подкачки в Windows 10: как увеличить, изменить, отключить?

Файл подкачки, или виртуальная память — это системный файл на жестком диске компьютера, который Windows использует, чтобы компенсировать нехватку оперативной памяти, если приложениям ее не хватает. Что это за файл, как он работает, что о нем нужно знать, как увеличить файл подкачки в Windows 10, или, наоборот — как отключить файл подкачки в Windows 10, читайте в нашей шпаргалке. В конце статьи — короткое видео, в котором все показано. 

Файл подкачки в Windows: зачем он нужен и как работает?

Всем известно, что запущенные приложения на компьютере выполняются в оперативной памяти (ОЗУ, RAM). Выражаясь образно, при запуске приложения считываются с жесткого диска и временно «переписываются» в оперативную память.

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

Когда количество оперативной памяти заполняется, в дело вступает так называемый «файл подкачки». Это скрытый системный файл на жестком диске, который может выполнять функции ОЗУ. Вместо того, чтобы закрыть приложение, которому не хватает RAM, Windows скидывает его в файл подкачки и при необходимости возвращает обратно.

Какие приложения отправлять в файл подкачки, система решает сама. К примеру, приложение, которое долго находится в свернутом состоянии, может быть помечено системой как неактуальное. При нехватке RAM оно отправится в файл на жестком диске, чтобы немного почистить память.

В современных компьютерах устанавливается достаточно много ОЗУ, поэтому файл подкачки используется редко. Но если вы замечаете, что приложение при открытии немного «подлагивает», а индикатор жесткого диска на ПК мигает, значит, Windows возвратила его в RAM из файла подкачки.

Если это происходит часто, стоит задуматься о том, чтобы докупить немного памяти.

Файл подкачки в Windows 10: что такое pagefile.sys и swapfile.sys?

В Windows 10, в отличии от более старых версий Windows, используются два файла подкачки: pagefile.sys и swapfile.sys. Они хранятся в корне диске C:\ и найти их можно, если включить на своем компьютере отображение скрытых и системных файлов.

В файл pagefile.sys при нехватке памяти отправляются обычные приложения, которые вы устанавливаете из разных источников — браузер, графический редактор, мессенджеры и так далее. А в файл swapfile.sys — встроенные приложения Windows 10 и приложения, установленные из Магазина Windows.

Swapfile и Pagefile всегда работают в паре. Объем swapfile.sys не превышает пары десятков мегабайт, а вот pagefile.sys в процессе работы может «раздуваться» до нескольких гигабайт. Из-за этого некоторые ищут способ, как отключить файл подкачки в Windows 10, чтобы освободить место на диске.

Но если сделать это, отключится и swapfile.sys — а без него многие встроенные приложения Windows 10 просто перестанут запускаться.

Файл подкачки Windows 10: оптимальный размер

Вообще-то, ваша «виндовс» сама решает, какой объем файла подкачки ей нужен, и стандартного объема хватает в большинстве случаев. Кроме того, на компьютерах с большим количеством RAM он вообще довольно редко используется.

Но можно высчитать, сколько составляет оптимальный объем файла подкачки в Windows 10 и самостоятельно. Расскажем, как сделать это правильно.

  1. Откройте все нужные вам приложения. Затем запустите Диспетчер задач (Ctrl+Alt+Delete) и посмотрите на занятый объем RAM на вкладке Производительность.
  2. Умножьте объем занятой памяти на 2. К примеру, 3 Гбайт из 4 Гбайт занято, значит — 6 Гбайт.
  3. Вычитаем из полученного значения количество вашей RAM. 6 минус 4 — 2 Гбайт. Это и есть оптимальный размер файла подкачки для вашего ПК. Если у вас получился отрицательный размер, значит вам не надо увеличивать, уменьшать или вообще как-то изменять стандартный объем файла подкачки.

Не рекомендуется поднимать и повышать размер файла подкачки более чем в три раза от актуального объема ОЗУ.

Как увеличить файл подкачки в Windows 10?

Расскажем, как поставить файл подкачки на Windows 10 в оптимальное значение.

  1. Откройте меню Пуск, найдите и запустите приложение «Настройка представления и производительности системы«.
  2. Перейдите на вкладку Дополнительно и в разделе Виртуальная память щелкните Изменить.
  3. Снимите отметку возле пункта 
    Автоматически выбирать объем файла подкачки.
  4. Выделите системный диск из списка, а затем нажмите Указать размер.
  5. В строке Исходный размер (МБ) укажите минимальный размер файла подкачки — он не должен быть меньше 400 Мбайт, а в строку Максимальный размер (МБ) введите нужный объем, который вы разрешите системе отнять. Значения должны быть указаны в мегабайтах (1 Гбайт = 1 024 Мбайт).
  6. После ввода новых параметров нажмите Задать, а затем Ок.

Как отключить файл подкачки в Windows 10?

Вообще-то, отключать файл подкачки не рекомендуется. Во-первых, приложения начнут «вылетать» (самопроизвольно перезагружаться), а некоторые вообще не смогут запуститься. Но если у вас много RAM, а место на жестком диске осталось мало, то отключение файла подкачки позволит освободить пару Гбайт. Главное — потом не пожалеть о своем решении. Может быть, вам поможет очистка диска, или нужно почаще очищать кэш браузера?

Нижеприведенные инструкции можно использовать на свой страх и риск!

Отключаем pagefile.sys

  1. Откройте Проводник, нажмите правой кнопкой мыши по Этот Компьютер и выберите Свойства.
  2. Нажмите в левом меню Дополнительные параметры системы.
  3. На вкладке Дополнительно найдите раздел Быстродействие и нажмите Параметры.
  4. Снова откроется новое окно. На нем откройте вкладку Дополнительно. В области Виртуальная память нажмите Изменить.
  5. Снимите отметку возле Автоматически выбирать объем файла подкачки. Установите отметку в положение Без файла подкачки и кликните Задать и ОК.

Отключаем swapfile.sys

  1. Обязательно сделайте точку восстановления системы.
  2. Нажмите Win + R и введите regedit, чтобы зайти в редактор реестра.
  3. Скопируйте в адресную строку редактора реестра следующий адрес: Компьютер\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
  4. В правой части окна редактора реестра нажмите правую кнопку мыши, выберите Создать – Значение DWORD (32-бита).
  5. Назовите его SwapfileControl и перезагрузите компьютер.
  6. После этого swapfile будет отключен. Включить файл подкачки в Windows 10 обратно можно, удалив созданный параметр.

Как переместить файл подкачки?

Есть небольшая хитрость, как настроить файл подкачки на Windows 10. Если в вашем компьютере стоят несколько дисков, можно перенести файл подкачки с системного диска (не раздела!) на другой диск.

  1. Для этого в уже знакомом приложении Настройка представления и производительности системы > Дополнительно > Виртуальная память
    нажмите Изменить.
  2. Снимите отметку возле пункта Автоматически выбирать объем файла подкачки. Затем выделите ваш системный диск и нажмите Без файла подкачки. Нажмите Задать > ОК.
  3. Выберите в том же списке диск, на котором вы хотите хранить файл подкачки. Нажмите Размер по выбору системы > Задать. Кликните ОК и перезагрузите компьютер, чтобы система применила ваши настройки.

ВАЖНО: не рекомендуется перемещать файл подкачки на накопитель типа SSD, так как это может сократить срок его службы, увеличив число циклов перезаписи.

Вот еще несколько полезных материалов по оптимизации:

для чего он и нужно ли его отключать

В операционных системах Windows для работы используется так называемый файл подкачки pagefile.sys (скрытый и системный, обычно находится на диске C), представляющий своего рода «расширение» оперативной памяти компьютера (иначе — виртуальная память) и обеспечивающий работу программ даже в том случае, когда физической памяти RAM недостаточно.

Содержание

  1. Что такое файл pagefile.sys и как он работает 
  2. Что за файл swapfile.sys
  3. Оптимальный размер файла подкачки
  4. Как увеличить или уменьшить файл подкачки
  5. Можно ли отключать файл подкачки в Windows 10
  6. Как отключить или удалить файл подкачки pagefile. sys
  7. Полезные подсказки, которые точно помогут
  8. Как отключить или удалить swapfile.sys
  9. Как переместить файл подкачки на другой диск

Наверняка каждому известно, что в компьютерах используется как энергонезависимая память (жесткий диск, SSD, флешка и так далее), так и оперативная память (также известная как “RAM” или «ОЗУ»). Чем больше памяти, тем лучше. Это высказывание актуально для всех типов памяти.

Неотъемлемой частью оперативной памяти вашего компьютера является так называемый «файл подкачки». Он расположен на системном диске компьютера и по умолчанию скрыт. Когда свободная RAM заканчивается, система переносит часть информации в оперативной памяти на жесткий диск, чтобы избежать вылетов приложения и сохранить стабильную работу. Windows сама умеет работать с файлом подкачки и не требует вмешательства со стороны пользователя.
С файлом подкачки связано много мифов. Некоторые пользователи винят его в медленной работе их компьютеров. Доля правды в этом все-таки есть. Когда приложение переписывается в файл подкачки, его производительность действительно падает, поскольку скорость чтения жесткого диска или SSD в разы меньше, чем скорость чтения оперативной памяти. Но чтобы понять, действительно нужен ли вам файл подкачки, надо понимать принцип работы этой системы. Если говорить коротко, то включенный файл подкачки – это всегда лучше, чем его отсутствие. Эта статья расскажет вам, почему так.

Что такое файл pagefile.sys и как он работает 

Давайте более подробно разберёмся во всём. Итак, файл подкачки также известен как “pagefile.sys”, он же “swapfile”. Найти его можно на диске C:\ и только при условии, что вы приказали системе отображать не только скрытые файлы и папки, но и системные. Чтобы увидеть в Проводнике файл подкачки и гибернации, активируйте отображение скрытых файлов и папок в Windows 10.

Ваш компьютер сохраняет разную информацию в оперативной памяти (RAM – random access memory). Она гораздо быстрее жесткого диска. К примеру, при запуске приложения файлы считываются из накопителя и, образно говоря, «переписываются» в оперативную память. Информация в приложениях тоже хранится в оперативной памяти. Открытая страница, загруженное потоковое видео и другая временная информация – все это лежит в оперативной памяти.

Когда количество оперативной памяти заполняется, система сама решает, какую информацию перенести в файл подкачки (pagefile.sys). Это некая «виртуальная память», всегда готовая прийти на выручку оперативной памяти, в которой закончилось место. Файл подкачки – это очень хорошая система, предотвращающая вылеты приложения. Вместо того, чтобы закрыть или перезагрузить приложение, для которого нет свободной памяти, Windows скидывает его в файл подкачки и при необходимости возвращает обратно. Поскольку скорость работы накопителя ниже скорости работы RAM, здесь пользователь и натыкается на падение скорости и производительности. Если вы заметили, что после разворачивания приложение слегка подлагивает и словно просыпается, а индикаторы использования диска активизировались, значит система восстановила приложение из файла подкачки.

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

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

Что за файл swapfile.sys


Если файл pagefile.sys существует еще с более старых версий Windows,  то swapfile.sys — куда более молодой объект. Он появился в Windows 8 и по своей сути является еще одним файлом подкачки, ориентированным на другие задачи. Pagefile.sys используется для обычных приложений, а swepfile. sys для универсальных приложений, которые вы можете найти в магазине Microsoft Store. В отличие от pagefile.sys, swapfile.sys занимает гораздо меньше места на диске. Зачастую его объем не превышает пары десятков мегабайт, тогда как традиционный файл подкачки может достигать десятков гигабайт.

Система записывает в файл swapfile.sys информацию с UWP-приложений и выгружает из памяти, когда у пользователя нет необходимости в этих приложениях. Считайте это своеобразным режимом гибернации для приложений. Когда вы восстанавливаете приложение из режима сна, а объем оперативной памяти сильно ограничен, система сбрасывает другое приложение в swapfile (swap – поменять, англ.), чтобы освободить память под нужное для вас в данный момент приложение.

Swapfile и Pagefile всегда работают в паре. Отключение традиционного файла подкачки отключит аналогичный для UWP-приложений. Без swepfile.sys многие приложения из магазина попросту не запустятся, а другие начнут вылетать уже через несколько минут после старта. Если вы хотите отключить только swapfile без pagefile, эта инструкция расскажет вам, как это сделать. Соответствующий раздел вы найдете немного ниже.

Оптимальный размер файла подкачки

Система сама решает, какой объем файла подкачки ей нужен для адекватной работы. Зачастую стандартного размера более чем достаточно. Если вы хотите вручную установить размер файла подкачки, возьмите на вооружение следующий принцип. Откройте все нужные вам приложения и посмотрите на занятый объем RAM, а затем удвойте объем занятой памяти. К примеру, у вас занято 5 ГБ из 8 ГБ. Удваиваем 5 ГБ и получаем 10 ГБ, из которых надо вычесть 8 ГБ. В результате получается, что оптимальный размер файла подкачки будет равен примерно 2 ГБ. Посмотреть на объем свободной и занятой оперативной памяти можно в Диспетчере задач на вкладке Производительность:

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

Как увеличить или уменьшить файл подкачки

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

  1. Откройте меню Пуск и начните вводить Настройка представления и производительности системы. Когда поиск выдаст вам соответствующий результат, откройте этот элемент панели управления.
  2. Перейдите на вкладку Дополнительно и в разделе Виртуальная память щелкните Изменить.
  3. Снимите отметку возле пункта Автоматически выбирать объем файла подкачки.
  4. Выделите системный диск из списка, а затем нажмите Указать размер.
  5. Теперь вам надо изменить два параметра, отвечающих за изначальный объем, который будет зарезервирован всегда (это количество памяти всегда будет занимать файл pagefile.sys и освободить пространство можно будет либо полным отключением файла подкачки, либо его уменьшением), и максимально возможный объем. Если изначального размера файла подкачки оказалось недостаточно для ваших задач, система автоматически его расширит.
  6. В строке Исходный размер (МБ) укажите объем файла подкачки, который вы хотите установить, а в строку Максимальный размер (МБ) введите максимальный объем, который вы разрешите системе отнять. Можно сделать так, чтобы исходный и максимальный размер были одинаковыми. Значения должны быть указаны в мегабайтах (1 ГБ = 1 024 МБ).
  7. После ввода новых параметров нажмите Задать, а затем Ок.
    Учтите, что Microsoft не рекомендует уменьшать файл подкачки ниже 400 МБ, поэтому оперируйте цифрами в пределах от 400 МБ до тройного размера установленной оперативной памяти (к примеру, если у вас 16 ГБ оперативной памяти, не устанавливайте файл подкачки выше 48 ГБ).

Можно ли отключать файл подкачки в Windows 10

Об этом вопросе уже очень давно все спорят на сайтах и специальных форумах. Выскажу свое субъективное мнение, что можно отключить файл подкачки в Windows 10 , но не нужно. Многие могут «подсказать» вам, что отключение файла подкачки может ускорить ваш компьютер (с таким же самым успехом можно посоветовать покрасить системный блок или ноутбук в красный цвет). Система не записывает приложение на медленный диск и, следовательно, не лагает при его восстановлении.

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

Во-первых, приложения начнут вылетать. Это хорошо известно Android-пользователям. Когда заканчивается оперативная память, приложение просто перезагружается. На Windows вы увидите ошибку о нехватке памяти, а также падения открытых приложений. Во-вторых, некоторые программы вообще не смогут запуститься. К примеру, приложения, требующие большого объема RAM.

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

Как отключить или удалить файл подкачки pagefile.sys


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

  1. Откройте Проводник, нажмите правой кнопкой мыши по Этот Компьютер и выберите Свойства.
  2. Нажмите в левом меню Дополнительные параметры системы.
  3. Откроется новое окно, на котором вам надо открыть вкладку Дополнительно. Найдите раздел Быстродействие и нажмите Параметры.
  4. Снова откроется новое окно. На нем откройте вкладку Дополнительно. В области Виртуальная память нажмите Изменить.
  5. Вы увидите, что Windows по умолчанию настроена на автоматический подбор объема файла подкачки. Немного ниже будут расположены минимальные и рекомендуемые значения. Рекомендуемый объем виртуальной памяти рассчитывается исходя из объема установленной RAM и накопителя, на котором хранится файл подкачки.
  6. Чтобы отключить файл подкачки, снимите отметку возле Автоматически выбирать объем файла подкачки. После этого вам будут доступны параметры ручной настройки. Установите отметку в положение Без файла подкачки и кликните Задать. Система предупредит вас, что отключение файла подкачки или установка его объема ниже 400 МБ может привести к нежелательным результатам. Если уверены, то согласитесь, а затем нажмите Ок. 

Полезные подсказки, которые точно помогут

Подсказка 1: если вы выключаете файл подкачки из-за необходимости освободить немного места, попробуйте не отключать полностью виртуальную память, а уменьшить ее в разумных пределах. К примеру, на скриншоте выше вы можете увидеть, что файл подкачки равен 3 ГБ. Уменьшение в два раза поможет освободить лишний гигабайт и при этом оставить файл подкачки в более-менее рабочем состоянии (не рекомендуется объем ниже 400 МБ).

Подсказка 2: если в вашем компьютере используется несколько дисков, можно переместить файл подкачки на тот, что используется меньше. За счет этого получится немного улучшить производительность при восстановлении приложения из файла подкачки. О перемещении файла подкачки на другой диск рассказывается немного ниже. Вы только учтите, что речь идет о перемещении файла подкачки на другой физический диск, а не другой раздел. Иными словами, если у вас установлен один жесткий диск с несколькими разделами, перемещение файла подкачки между ними никаким образом не повлияет на производительность (может даже ухудшить ее).

Подсказка 3: SSD и файл подкачки – дело весьма щепетильное. Использование файла подкачки на SSD теоретически может привести к снижению жизненного цикла носителя. Если у вас установлен жесткий диск параллельно с твердотельным накопителем, лучше переместить файл подкачки с SSD на HDD. Мнения разных пользователей расходятся в этом вопросе, но суть заключается в том, что чем меньше циклов перезаписи информации на SSD, тем дольше он прослужит. И да, перенос файла подкачки с быстрого SSD на более медленный HDD может негативно сказаться на производительности и без того не самой быстрой виртуальной памяти.

Как отключить или удалить swapfile.sys

Как было сказано выше в описании файла swapfile.sys, файл подкачки для UWP-приложений отключается вместе с традиционным файлом подкачки, о чем вы только что прочитали. Если по каким-то причинам вы хотите отключить только свап-файл, сделать это можно через редактор реестра.

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

  1. Сделайте точку восстановления системы, чтобы оставить себе дорогу назад в случае непредвиденных последствий экспериментов с файлом подкачки.
  2. Нажмите Win + R и введите regedit. Этой командой вы откроете встроенный в систему редактор реестра.
  3. Скопируйте в адресную строку редактора реестра следующий адрес: Компьютер\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. В правой части окна редактора реестра нажмите правую кнопку мыши, выберите СоздатьЗначение DWORD (32-бита).
  4. Назовите его SwapfileControl и перезагрузите компьютер.
    После этого swapfile будет отключен. Если вы пожелаете активировать его обратно, попросту перейдите по вышеуказанному пути, удалите ключ SwapfileControl и перезагрузите компьютер.

Как переместить файл подкачки на другой диск

  1. Откройте меню Пуск и начните вводить Настройка представления и производительности системы. Когда поиск выдаст вам соответствующий результат, откройте этот элемент панели управления.
  2. Перейдите на вкладку Дополнительно и в разделе Виртуальная память щелкните Изменить.
  3. Снимите отметку возле пункта Автоматически выбирать объем файла подкачки.
  4. Выделите системный диск из списка, а затем нажмите Без файла подкачки. Нажмите Задать и подтвердите свой выбор.
  5. Выберите диск, на котором вы хотите хранить файл подкачки. Не забывайте, что хранить его надо на отдельном физическом диске, а не отдельном разделе. Перенос на другой раздел того же диска ни к чему хорошему не приведет.
  6. Укажите нужный размер файла подкачки в полях Указать размер, а затем нажмите Задать. Как вариант (советуем воспользоваться именно им), нажмите Размер по выбору системы и нажмите Задать. В этом случае Windows сама решит, какой размер файла подкачки ей нужен. Кликните Ок и перезагрузите компьютер, чтобы система применила ваши настройки.

Подведём итоги

Файл подкачки – важная часть Windows, необходимая для ее стабильной работы. Даже если вы не забиваете оперативную память на 100%, порой бывают случаи, когда компьютер интенсивно нагружает доступную память. В таком случае виртуальная память избавит вас от головной боли. И не забывайте, что незадействованный файл подкачки никаким образом не влияет на производительность вашего ПК, если не считать занятой пары гигабайт на системном разделе.

Файл подкачки в Windows | World of Tanks

Файл подкачки (pagefile.sys) — это скрытый файл на жёстком диске компьютера, который используется операционной системой Windows по принципу оперативной памяти. Файл подкачки и оперативная память вместе составляют виртуальную память. По умолчанию операционная система Windows хранит файл подкачки в загрузочном разделе (раздел, в котором установлены операционная система и вспомогательные файлы). Обычно объём файла подкачки задаётся в 1,5 раза больше общего объёма оперативной памяти.

Файл подкачки необходим для того, чтобы разгрузить оперативную память в периоды её высокой загрузки. Если одновременно запустить несколько приложений, которые сильно загружают оперативную память, то часть этих приложений будет неактивна (они будут свёрнуты или попросту не будут использоваться в данный момент) и, как следствие, их данные будут выгружаться в менее быструю область, т. е. в файл подкачки, а данные активных в данный момент приложений будут находиться непосредственно в оперативной памяти. Когда производится обращение к неактивному приложению, данные из файла подкачки будут перемещены непосредственно в оперативную память, чтобы ускорить его работу. При острой нехватке оперативной памяти в системе файл подкачки используется напрямую, т. е. в него выгружаются и данные активных приложений. В случае если общий размер виртуальной памяти слишком мал, некоторые приложения могут работать нестабильно, а операционная система может выдать сообщение о том, что виртуальной памяти недостаточно. В таких ситуациях размер файла подкачки необходимо увеличить.

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

Если в вашем компьютере установлен один жёсткий диск, также рекомендуется переместить файл подкачки в другой раздел жёсткого диска. Когда файл подкачки расположен в загрузочном разделе, операционная система Windows направляет запросы на чтение с диска и запись на диск как к системной папке, так и к файлу подкачки. После перемещения файла подкачки в другой раздел конкуренция между запросами записи и чтения уменьшается.

Если в Вашем компьютере установлены как HDD-, так и SSD-накопители, то файл подкачки рекомендуется расположить на одном из разделов HDD-накопителя. Это позволит уменьшить количество запросов на выполнение операций чтения/записи, что в свою очередь может благоприятно сказаться на отказоустойчивости SSD-накопителя.
Чтобы избежать фрагментации файла подкачки, рекомендуется создать на жёстком диске отдельный раздел, в котором будет располагаться только файл подкачки. Использование отдельного раздела для файла подкачки имеет следующее преимущество: в этом случае файл не разбивается на фрагменты. Файл подкачки, размещённый в разделе, где находятся другие данные, может быть разбит на фрагменты в процессе его увеличения для наращивания размеров виртуальной памяти. Дефрагментированный файл подкачки позволяет ускорить доступ к виртуальной памяти.

Операции с файлом подкачки

Для выполнения операций над файлом подкачки необходимо перейти в окно управления виртуальной памятью. Для этого:

  1. Нажмите сочетание клавиш Win + R. В открывшемся окне впишите в поле «Открыть» команду sysdm.cpl и нажмите .
  2. В открывшемся окне «Свойства системы» перейдите во вкладку «Дополнительно» и нажмите кнопку Параметры в поле «Быстродействие».
  3. В открывшемся окне «Параметры быстродействия» перейдите во вкладку «Дополнительно» и нажмите на кнопку Изменить.
  4. После выполнения всех действий откроется окно управления виртуальной памятью, где по умолчанию установлен автоматический выбор объёма файла подкачки. В данном случае файл подкачки расположен на том же диске, где установлена операционная система (на диске С). Количество доступных для выбора логических дисков на каждом компьютере может быть различным.

Как переместить файл подкачки с одного раздела жёсткого диска на другой

  1. Выполните все действия из пункта «Как отключить файл подкачки».
  2. Выберите из списка логический диск, на котором необходимо разместить файл подкачки.
  3. Для выбранного диска укажите пункт «Размер по выбору системы» и нажмите кнопку Задать, а затем ОК.
  4. После выполнения всех операций перезагрузите компьютер.

Как изменить размер файла подкачки

  1. Снимите галочку в пункте «Автоматически выбирать объём файла подкачки».
  2. Выберите пункт «Указать размер» и ниже впишите два значения: исходный и максимальный размер в мегабайтах. Затем нажмите кнопки Задать и .
  3. После выполнения всех операций перезагрузите компьютер.

Как создать файл подкачки в Windows 10?

Сегодня мы с вами поговорим по поводу файла подкачки в Windows 10. Рассмотрим в нашей статье, как создать файл подкачки в Windows 10, какой объем выделить и нужно ли в настоящее время.

Создание файла подкачки в Windows 10

Заходим в Свойства нажав перед этим по разделу Компьютер

Теперь необходимо перейти в Дополнительные параметры

 

Заходим в Параметры которые находятся в разделе Быстродействие расположенный во вкладке Дополнительно.

Теперь переходим на вкладку Дополнительно и жмем кнопочку Изменить

Теперь выбрать Автоматически выбирать объем файла подкачки, для этого ставим галочку.

Теперь необходимо все здесь настроить, давайте начнем.

Файл подкачки будет браться с какого то диска — выбираем такой диск. Переключаем рычажок в Указать размер. Теперь необходимо ввести размер файла подкачки в первое поле, а во втором поле вбиваем максимальный допустимый размер. Теперь нажимаем на кнопку Задать и у вас на компьютере будет создан файл подкачки. Поздравляю!

Как только вы выполните перезагрузку персонального компьютера или ноутбука все изменения вступят в силу.

Нужно ли создавать файл подкачки?

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

2 гигабайта оперативки — это очень мало, очень. Можно файл подкачки поставить от 1-3 гигабайта. Чуть легче станет «дышать» компьютер, но в корне проблема не будет решена. Необходимо добавить оперативной памяти, хотя бы еще 2 Гб.

4 гигабайта оперативки — уже неплохо. Вполне достаточно для выполнения ежедневных задач, но файл подкачки потребуется создать. Размер его от 2-4 Гб.

6 гигабайт оперативки — часто встречаемый объем в системных блоках и ноутбуках. Это достаточный объем памяти, но файл подкачки все же требуется создать. Размер его от 3 до 6 гб.

8 гигабайт оперативки — самое то. Для обычного пользователя в самый раз. Для обычной работы файл откачки не требуется. Но если вам приходится работать с видеофайлами, то я бы его установил. Для этого в Windows 10 файл подкачки создаем размером 3-4 Гб.

16 гигабайт оперативки — файл пдкчаки в Windows 10 не требуется.

Сколько гигабайт должен быть файл подкачки?

Теперь поговорим по поводу размера файла подкачки. Когда на вашем компьютере или ноутбуке мало оперативной памяти, то не стоит компенсировать это файлом подкачки увеличив его на 10 ил 20 гигабайт. Мало что изменит. Если кратко говорить то файл подкачки представляет из себя «кусок» памяти винчестера. Вот только запись на винчестер (жесткий диск) гораздо ниже чем в оперативной памяти и причем значительно. Компьютер просто начнет работать медленно из за записи временных файлов в оперативную память.

При создании файла подкачки в Windows 10 стоит смотреть на рекомендацию.

Стоит всегда помнить об этом и все у вас будет хорошо.

Добавить комментарий

Ошибки распределения памяти могут быть вызваны медленным ростом файла страницы — Windows Client

  • Чтение занимает 2 мин

В этой статье

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

Применяется к:   Windows 10 — все выпуски
Исходный номер КБ:   4055223

Симптомы

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

Причина

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

Система IO состоит из многих компонентов, включая фильтры файловой системы, файловые системы, фильтры громкости, фильтры хранения и т. д. Определенные компоненты в данной системе могут привести к вариативности в росте файлов страниц.

Обходной путь

Чтобы решить эту проблему, необходимо вручную настроить размер файла страницы. Для этого выполните следующие действия:

  1. Нажмите клавишу Windows + клавишу Pause/Break, чтобы открыть System Properties.
  2. Выберите параметры расширенных систем и Параметры в разделе Производительность на вкладке Advanced.
  3. Выберите вкладку Advanced и выберите Изменение в разделе Виртуальная память.
  4. Очистить автоматически управляемый размер файла для всех дисков.
  5. Выберите настраиваемый размер, а затем установите значения «Начальный размер» и «Максимальный размер» для файла paging. Рекомендуется установить начальный размер в 1,5 раза больше оперативной памяти в системе.
  6. Выберите ОК, чтобы применить параметры, а затем перезапустить систему. Если вы продолжаете получать сообщения об ошибках из памяти, увеличите «начальный размер» файла страницы.

Статус

Корпорация Майкрософт подтвердила, что это проблема в Windows 10.

Дополнительные сведения

При использовании компиляторов Microsoft Visual C++ (cl.exe) могут возникнуть такие ошибки сборки, как следующие:

  • Роковая ошибка C1076: ограничение компиляторов: достигнута внутренняя куча; использование /Zm для указания более высокого ограничения
  • Роковая ошибка C1083: не удается opentypefile: «файл»: сообщение
  • Роковая ошибка C1090: вызов API PDB не удалось, код ошибки «код»: «сообщение»
  • Ошибка компиляторов C3859: превышен диапазон виртуальной памяти для PCH; пожалуйста, перекомпактуйте с параметром командной строки ‘-ZmXXX’ или больше

Дополнительные сведения об ошибках компиляторов Visual C++ и о том, как их обойти, см. в материале Precompiled Header (PCH) issues and recommendations.

Как настроить файл подкачки

Здравствуйте друзья! Хочу сегодня рассказать, что такое файл подкачки, зачем он нужен, и как правильно его настроить.

 

Настраивать файл подкачки я буду на компьютере с установленной операционной системой Windows 7. Но все советы касаются так же и Windows XP, там просто путь к настройкам немного другой.

Что такое файл подкачки?

Файл подкачки – это файл (место на жестком диске) которое операционная система использует в случае нехватки оперативной памяти.

Например, Вы запускаете программу или игру, которой нужно 2 Гб оперативной памяти, а у Вас только 1,5 Гб вот те 512 Мб будут браться из файла подкачки. Файл подкачки располагается на жестком диске или флешке.

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

Да и когда файл подкачке берется с жесткого диска, то это создает дополнительную нагрузку на него и на систему в целом, а к тому же это сокращает срок его службы. Во как :).

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

Как правильно настроить файл подкачки?

Для того, что бы изменить настройки файла подкачки, или увеличить файл подкачки, нажимаем правой кнопкой на значок “Компьютер” (на рабочем столе) и нажимаем свойства.

В появившемся окне слева нажимаем на “Дополнительные параметры системы” в разделе “Быстродействие” нажимаем “Параметры”.

 

В появившемся окне переходим на вкладку “Дополнительно” и в разделе “Виртуальная память” нажимаем “Изменить”.

Откроется еще одно, вот такое окно.

Собственно в этом окне можно и нужно настроить файл подкачки.

Советы по настройке файла подкачки

Первым делом, нужно убрать файл подкачки с системного раздела (обычно с диска C), как видите, у меня файл подкачки находится на диске D. Раздел диска с установленной операционной системой и так загружен, а тут еще и файл подкачки :). В идеала, файл подкачки нужно ставить вообще на другой жесткий диск, так что, если у Вас такой установлен, то это очень хорошо. Установите виртуальную память на него.

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

Что касается размера, то здесь все просто. Чем меньше оперативной памяти, тем больше файла подкачки. Рекомендуется ставить в 2-3 раза больше, чем установлено оперативной памяти. У меня например при 1,5 Гб ОЗУ, стоит 2 Гб файла подкачки.

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

Можно и совсем отключить файл подкачки, и кстати это может существенно увеличить работу компьютера. Но только при условии, что у Вас установлен достаточный объем оперативной памяти, примерно такой:

Windows XP – 3-4 ГБ ОЗУ

Windows Vista – 6 ГБ ОЗУ

Windows 7 – 6 ГБ ОЗУ

Здесь уже нужно экспериментировать. Если же у Вас нет желания это делать, то Вы можете оставит операционной системе возможность самой контролировать файл подкачки. Простор установите галочку “Автоматически выбирать объем файла подкачки”. Ну и в любом случае не забудьте изменить внесенные вами изменения, нажав “ОК” и “Применить”.

Так же при использовании файла подкачки, советую делать время от времени дефрагментацию жесткого диска. Удачи!

 

Файл подкачки Windows 10 — как увеличить или отключить

Файл подкачки Windows 10, именуемый «pagefile.sys», — это выделенная на винчестере область, которая сохраняет в себе элементы программ и обрабатываемые пользователем файлы, не умещающиеся в оперативной памяти.

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

Когда во время работы с ресурсоемкими программами оперативной памяти перестает хватать, система инициирует обращение к файлу подкачки, чтобы пользователь имел возможность завершить начатые им процессы. Если человек одновременно запускает несколько утилит, то система отслеживает их активность и выгружает из памяти те, что в данный момент не используются. После этого они работают в файле подкачки, а в оперативной памяти остаются только те программы, с которыми пользователь взаимодействует. Иными словами, файл подкачки — это программное дополнение для оперативной (физической) памяти, способ ее увеличения. Именно поэтому его еще называют виртуальной памятью.

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

Файл подкачки Windows 10

Файл подкачки располагается на системном диске (в подавляющем большинстве случаев это диск «C»), он имеет атрибуты «Системный файл» и «Скрытый». Последний предназначен для того, чтобы неопытные пользователи ненароком не удалили или не видоизменили файл.

Каждая операционная система последних поколений (от Windows 7 до Windows 10) самостоятельно подбирает для себя размер файла подкачки, это зависит из характеристик компьютера, где Windows установлена. В разных случаях система бронирует себе либо меньший или равный оперативной памяти объем, либо в 2 раза превышающий.

Узнать размер файла подкачки на своем компьютере можно, кликнув правой кнопкой мыши по ярлыку «Этот компьютер» и вызвав контекстное меню. В нем нужно перейти в подпункт «Свойства», где выбрать «Система». Прямо перед взором будет видна вкладка «Свойства системы». Далее есть раздел «Быстродействие», а в нем вкладка «Параметры». В ней необходимо кликнуть по меню «Дополнительно», где в нижней части окошка будет видна область «Виртуальная память». Именно здесь можно увидеть объем файла подкачки на вашем компьютере.

У меня, например, оперативной памяти 16 Гб, при таком объеме система посчитала нужным выделить 800 Мб для нужд файла подкачки. При чем определила она самостоятельно, в автоматическом режиме.

Как изменить размер файла подкачки

Не всех пользователей может устраивать присвоенное системой значение, поэтому нужно знать, как изменить размер файла подкачки в Windows 10. Для этого нужно перейти в окошко «Параметры быстродействия», где открыть вкладку «Дополнительно». В появившемся диалоговом окне, в области «Виртуальная память», кликнуть по кнопке «Изменить…».

В новом окне видно, что система по умолчанию активирует пункт, который позволяет ей самостоятельно выбирать размер — «Автоматически выбирать объем файла подкачки». Сам файл, кстати, также устанавливается операционной системой на диск «C».

Теперь что непосредственно касается вопроса, как увеличить размер файла подкачки в Windows 10. Чаще всего его именно увеличивают, но и для уменьшения процедура полностью аналогична. Итак, для этого нужно убрать галочку в пункте «Автоматически выбирать объем файла подкачки». Это позволит включить режим ручной регулировки. Далее нужно нажать на пункт «Указать размер», после чего в области «Исходный размер» и «Максимальный размер» необходимо ввести одинаковые значения в Мб (это рекомендовано для того, чтобы не инициировать фрагментацию файлов). Исходя из характеристик определенного компьютера, можно указать объем равный оперативной памяти или в 2 раза превышающий — на этот показатель влияет исключительно быстродействие вашей машины.

После выставления всех настроек нужно нажать «Задать», а потом «Ок». Вновь указанные настройки вступят в силу после перезагрузки компьютера.

Проводить такую операцию рекомендуется в случаях, когда явно становится видно, что для нормального функционирования нескольких программ одновременно не хватает памяти.

Как отключить файл подкачки

Для того чтобы понять, как отключить файл подкачки Windows 10, нужно определиться, так ли это необходимо. Если же да, то необходимо просто поставить галочку напротив пункта «Без файла подкачки». Делается это в том же самом окошке, где и манипуляции с размером. В конце надо также поочередно нажать «Задать» и «Ок», что приведет к перезагрузке компьютера.

В целом я бы не рекомендовал удалять файл подкачки даже в том случае, если у вас невероятно много оперативной памяти. Дело в том, что работа некоторых программ будет некорректной. Это могут быть старые версии привычных вам утилит, виртуальные приводы и диски, неверная запись системной информации и прочее.

Так же без файла подкачки не будет сбрасываться дамп памяти на диск при сбоях в работе Windows, что может привести к проблемам в будущем.

Лучше указать минимальный объем виртуальной памяти, это никак не повлияет на быстродействие компьютера, но в случае зависаний вы точно будете знать, в чем неполадка и как ее устранить.

Как перенести файл подкачки на другой диск

Диск «C» — не единственное место, где может находиться виртуальная память, его смело можно ставить на другие диски. Для этого необходимо сначала удалить его с системного, как это описано выше, а затем в этом же окошке просто указать другой диск, задать необходимый размер (или же дать это сделать операционной системе), после чего нажать «Задать» и «Ок». Теперь вы будете знать, как перенести файл подкачки на другой диск быстро и без проблем.

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

Что такое память подкачки в Linux?

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

Эта концепция применима как для операционной системы Windows, так и для Linux. В ОС Windows, когда в ОЗУ недостаточно памяти для хранения процесса, она занимает некоторый объем памяти из вторичного хранилища.Эта заимствованная память называется виртуальной памятью. Точно так же, когда в Linux заканчивается оперативная память, она занимает некоторую память из вторичного хранилища для хранения своего неактивного содержимого.

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

Работа подкачки памяти:

Как объяснено выше, память подкачки — это выделенный объем жесткого диска, который используется всякий раз, когда в оперативной памяти заканчивается память.В Linux есть программа управления памятью, которая заботится об этом процессе. Когда в ОЗУ не хватает памяти, программа управления памятью ищет все те неактивные блоки данных, присутствующие в ОЗУ, которые не использовались в течение длительного времени.

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

Типы подкачки памяти:

Обычно существует два разных типа памяти подкачки, которые упомянуты ниже:

  • Раздел подкачки- Это тип памяти подкачки по умолчанию, который фактически представляет собой раздел жесткого диска, предназначенный для подкачки.
  • Файл подкачки — Это самосозданный тип памяти подкачки. Если на жестком диске недостаточно места для создания раздела подкачки, вручную создается файл подкачки для подкачки в него неактивного содержимого ОЗУ.

Какая должна быть идеальная частота обмена?

Linux позволяет нам самостоятельно устанавливать частоту подкачки, то есть как часто должен происходить процесс подкачки. Вы можете установить значение обмена от 0 до 100 в зависимости от ваших требований. Низкочастотное значение подкачки означает, что процесс подкачки будет происходить очень редко, только когда он необходим, тогда как высокочастотное значение подкачки означает, что процесс подкачки будет происходить довольно часто.Однако по умолчанию и рекомендуемое значение частоты переключения — 60.

Преимущества использования памяти подкачки:

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

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

Заключение:

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

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

Место подкачки в операционной системе

Компьютер имеет достаточный объем физической памяти, но в большинстве случаев нам нужно больше, поэтому мы меняем часть памяти на диске. Пространство подкачки — это пространство на жестком диске, которое заменяет физическую память. Он используется как виртуальная память, которая содержит образы памяти процесса.Когда нашему компьютеру не хватает физической памяти, он использует свою виртуальную память и сохраняет информацию в памяти на диске. Пространство подкачки помогает операционной системе компьютера делать вид, что у нее больше оперативной памяти, чем есть на самом деле. Его также называют файлом подкачки. Этот обмен данными между виртуальной и реальной памятью называется подкачкой, а пространство на диске — «пространством подкачки».

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

Пространство подкачки может быть полезно компьютерам по-разному:

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

Операционные системы, такие как Windows, Linux и т. Д., По умолчанию предоставляют определенный объем пространства подкачки, который пользователи могут изменять в соответствии со своими потребностями. Если вы не хотите использовать виртуальную память, вы можете легко отключить ее все вместе, но в случае, если у вас закончится память, ядро ​​убьет некоторые из процессов, чтобы создать достаточный объем места в физической памяти. Таким образом, это полностью зависит от пользователя, хочет он использовать пространство подкачки или нет.

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

Изучите все концепции GATE CS с бесплатными живыми классами на нашем канале YouTube.

Место подкачки в системах Linux: учебник

В обычном компьютере есть два основных типа памяти. Первый тип, оперативная память (RAM), используется для хранения данных и программ, когда они активно используются компьютером. Компьютер не может использовать программы и данные, если они не хранятся в оперативной памяти.RAM — энергозависимая память; то есть данные, хранящиеся в ОЗУ, теряются при выключении компьютера.

Жесткие диски — это магнитные носители, используемые для длительного хранения данных и программ. Магнитные носители энергонезависимы; данные, хранящиеся на диске, остаются даже после отключения питания компьютера. ЦП (центральный процессор) не может напрямую обращаться к программам и данным на жестком диске; сначала он должен быть скопирован в ОЗУ, и именно здесь ЦП может получить доступ к своим программным инструкциям и данным, которые будут обрабатываться этими инструкциями.Во время процесса загрузки компьютер копирует определенные программы операционной системы, такие как ядро ​​и init или systemd, и данные с жесткого диска в оперативную память, где к ним обращается непосредственно процессор компьютера, то есть ЦП.

Второй тип памяти в современных системах Linux — это область подкачки.

Место подкачки

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

Например, предположим, что у вас есть компьютерная система с 8 ГБ ОЗУ.Если вы запускаете программы, которые не заполняют эту оперативную память, все в порядке и подкачка не требуется. Но предположим, что электронная таблица, над которой вы работаете, увеличивается, когда вы добавляете больше строк, и это, плюс все остальное, что работает, теперь заполняет всю оперативную память. Без свободного места для подкачки вам придется прекратить работу с электронной таблицей до тех пор, пока вы не освободите часть своей ограниченной оперативной памяти, закрыв некоторые другие программы.

Ядро использует программу управления памятью, которая обнаруживает блоки, также известные как страницы, памяти, содержимое которых в последнее время не использовалось.Программа управления памятью выгружает достаточное количество этих относительно редко используемых страниц памяти в специальный раздел на жестком диске, специально предназначенный для «подкачки» или подкачки. Это освобождает оперативную память и освобождает место для ввода большего количества данных в вашу электронную таблицу. Эти страницы памяти, выгруженные на жесткий диск, отслеживаются кодом управления памятью ядра и при необходимости могут быть выгружены обратно в ОЗУ.

Общий объем памяти на компьютере Linux — это ОЗУ плюс пространство подкачки и называется виртуальной памятью .

Типы подкачки Linux

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

Файл подкачки можно использовать, если на диске нет свободного места для создания нового раздела подкачки или пространства в группе томов, где можно создать логический том для пространства подкачки.Это просто обычный файл, который создается и предварительно выделяется определенному размеру. Затем запускается команда mkswap , чтобы настроить его как пространство подкачки. Я не рекомендую использовать файл для подкачки без крайней необходимости.

Обмолота

Возникновение сбоя может произойти, когда общая виртуальная память, как ОЗУ, так и пространство подкачки, почти заполнена. Система тратит так много времени на подкачку блоков памяти между пространством подкачки и ОЗУ и обратно, что для реальной работы остается мало времени. Типичные симптомы этого очевидны: система работает медленно или полностью не отвечает, а индикатор активности жесткого диска горит почти постоянно.

Если вам удастся ввести команду типа free , которая показывает загрузку ЦП и использование памяти, вы увидите, что загрузка ЦП очень высока, возможно, в 30-40 раз больше, чем количество ядер ЦП в системе. Еще один симптом — почти полностью выделены как оперативная память, так и пространство подкачки.

Фактически, просмотр данных SAR (отчета о деятельности системы) также может показать эти симптомы. Я устанавливаю SAR на каждую систему, над которой работаю, и использую ее для криминалистической экспертизы после ремонта.

Каков правильный объем пространства подкачки?

Много лет назад эмпирическое правило для объема пространства подкачки, которое должно быть выделено на жестком диске, было вдвое больше объема ОЗУ, установленного на компьютере (конечно, это было тогда, когда ОЗУ большинства компьютеров измерялось в КБ или МБ. ). Таким образом, если бы на компьютере было 64 КБ ОЗУ, раздел подкачки размером 128 КБ был бы оптимальным размером. Это правило учитывало тот факт, что размеры ОЗУ в то время обычно были довольно небольшими и что выделение более чем в 2 раза ОЗУ для пространства подкачки не улучшало производительности.Имея более чем в два раза ОЗУ для подкачки, большинство систем тратили больше времени на обработку, чем на выполнение полезной работы.

Оперативная память

стала недорогим товаром, и в наши дни большинство компьютеров имеют объемы оперативной памяти, достигающие десятков гигабайт. Большинство моих новых компьютеров имеют как минимум 8 ГБ ОЗУ, один — 32 ГБ, а моя основная рабочая станция — 64 ГБ. Мои старые компьютеры имеют от 4 до 8 ГБ оперативной памяти.

При работе с компьютерами с огромным объемом оперативной памяти предельный коэффициент производительности для пространства подкачки намного ниже, чем множитель 2X.Онлайн-руководство по установке Fedora 28, которое можно найти в Интернете по адресу Fedora Installation Guide, определяет текущие взгляды на распределение пространства подкачки. Ниже я привел некоторые обсуждения и таблицу рекомендаций из этого документа.

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

Таблица 1: Рекомендуемое пространство подкачки системы в документации Fedora

Объем ОЗУ системы

Рекомендуемое пространство подкачки

Рекомендуемый своп с гибернацией

менее 2 ГБ

В 2 раза больше ОЗУ

В 3 раза больше ОЗУ

2 ГБ — 8 ГБ

Равно объему ОЗУ

В 2 раза больше ОЗУ

8 ГБ — 64 ГБ

0.В 5 раз больше RAM

В 1,5 раза больше ОЗУ

более 64 ГБ

в зависимости от нагрузки

гибернация не рекомендуется

На границе между каждым диапазоном, указанным выше (например, система с 2 ГБ, 8 ГБ или 64 ГБ системной ОЗУ), используйте усмотрение в отношении выбранного пространства подкачки и поддержки гибернации.Если ваши системные ресурсы позволяют это, увеличение пространства подкачки может привести к повышению производительности.

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

Таблица 2: Рекомендуемое пространство подкачки системы согласно автору

Количество RAM

Рекомендуемое пространство подкачки

≤ 2 ГБ

2X RAM

2–8 ГБ

= RAM

> 8 ГБ

8 ГБ

Одно из соображений в обеих таблицах состоит в том, что по мере увеличения объема ОЗУ после определенного момента добавление дополнительного пространства подкачки просто приводит к перегрузке задолго до того, как пространство подкачки даже приблизится к заполнению.Если при выполнении этих рекомендаций у вас слишком мало виртуальной памяти, вам следует по возможности добавить больше ОЗУ, а не больше места для подкачки. Как и все рекомендации, которые влияют на производительность системы, используйте то, что лучше всего подходит для вашей конкретной среды. Это потребует времени и усилий, чтобы поэкспериментировать и внести изменения в зависимости от условий в вашей среде Linux.

Добавление дополнительного пространства подкачки к дисковой среде без LVM

В связи с изменением требований к пространству подкачки на хостах с уже установленным Linux может потребоваться изменить объем пространства подкачки, определенный для системы.Эту процедуру можно использовать для любого общего случая, когда необходимо увеличить объем пространства подкачки. Предполагается, что на диске достаточно свободного места. Эта процедура также предполагает, что диски разбиты на «необработанные» разделы EXT4 и раздела подкачки и не используют управление логическими томами (LVM).

Основные шаги просты:

  1. Отключите существующее пространство подкачки.

  2. Создайте новый раздел подкачки желаемого размера.

  3. Перечитайте таблицу разделов.

  4. Настройте раздел как пространство подкачки.

  5. Добавьте новый раздел / etc / fstab.

  6. Включите свопинг.

Перезагрузка не требуется.

В целях безопасности перед отключением подкачки, по крайней мере, следует убедиться, что никакие приложения не работают и не используется пространство подкачки. Команды free или top могут сказать вам, используется ли пространство подкачки.Чтобы быть еще безопаснее, вы можете вернуться к запуску уровня 1 или однопользовательскому режиму.

Отключите раздел подкачки с помощью команды, которая отключает все пространство подкачки:

  $ swapoff -a  

Теперь отобразите существующие разделы на жестком диске.

  $ fdisk -l  

Отображает текущие таблицы разделов на каждом диске. Определите текущий раздел подкачки по номеру.

Запустите fdisk в интерактивном режиме командой:

  $ fdisk / dev / <имя устройства>  

Например:

  $ fdisk / dev / sda  

На этом этапе fdisk является интерактивным и работает только на указанном диске.

Используйте подкоманду fdisk p , чтобы убедиться, что на диске достаточно свободного места для создания нового раздела подкачки. Пространство на жестком диске показано в виде блоков по 512 байт и номеров начального и конечного цилиндров, поэтому вам, возможно, придется выполнить некоторую математику, чтобы определить доступное пространство между и в конце выделенных разделов.

Используйте подкоманду n для создания нового раздела подкачки. fdisk спросит у вас начальный цилиндр. По умолчанию он выбирает доступный цилиндр с наименьшим номером.Если вы хотите изменить это, введите номер стартового цилиндра.

Команда fdisk теперь позволяет вам вводить размер разделов в нескольких форматах, включая номер последнего цилиндра или размер в байтах, КБ или МБ. Введите 4000M, что даст около 4 ГБ места на новом разделе (например), и нажмите Enter.

Используйте подкоманду p , чтобы убедиться, что раздел был создан, как вы его указали. Обратите внимание, что раздел, вероятно, будет не совсем тем, что вы указали, если вы не укажете номер конечного цилиндра.Команда fdisk может выделять дисковое пространство только с приращениями на целых цилиндрах, поэтому ваш раздел может быть немного меньше или больше, чем вы указали. Если раздел не тот, который вам нужен, вы можете удалить его и создать заново.

Теперь необходимо указать, что новый раздел должен быть разделом подкачки. Подкоманда t позволяет указать тип раздела. Итак, введите t , укажите номер раздела и, когда он запросит тип раздела с шестнадцатеричным кодом, введите 82, который является типом раздела подкачки Linux, и нажмите Enter.

Когда вы будете удовлетворены созданным разделом, используйте подкоманду w для записи новой таблицы разделов на диск. Программа fdisk завершится и вернет вас в командную строку после завершения записи измененной таблицы разделов. Вы, вероятно, получите следующее сообщение, когда fdisk завершит запись новой таблицы разделов:

 

Таблица разделов изменена!
Вызов ioctl () для повторного чтения таблицы разделов.
ПРЕДУПРЕЖДЕНИЕ. Повторное чтение таблицы разделов завершилось ошибкой 16: Устройство или ресурс занят.
Ядро по-прежнему использует старую таблицу.
Новая таблица будет использована при следующей перезагрузке.
Диски синхронизации.

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

  $ зонд  

Теперь используйте команду fdisk -l , чтобы вывести список разделов, и новый раздел подкачки должен быть среди них.Убедитесь, что новый тип раздела — «Linux swap».

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

  LABEL = SWAP-sdaX swap swap по умолчанию 0 0  

, где X — номер раздела. Добавьте новую строку, которая выглядит примерно так, в зависимости от расположения вашего нового раздела подкачки:

  / dev / sdaY swap swap значения по умолчанию 0 0  

Убедитесь, что вы используете правильный номер раздела.Теперь вы можете выполнить последний шаг в создании раздела подкачки. Используйте команду mkswap , чтобы определить раздел как раздел подкачки.

  $ mkswap / dev / sdaY  

Последний шаг — включить свопинг с помощью команды:

  $ свопон -a  

Ваш новый раздел подкачки теперь в сети вместе с ранее существовавшим разделом подкачки. Вы можете использовать команды free или top , чтобы проверить это.

Добавление свопа в дисковую среду LVM

Если при установке вашего диска используется LVM, изменить пространство подкачки будет довольно просто.Опять же, это предполагает, что пространство доступно в группе томов, в которой расположен текущий том подкачки. По умолчанию процедуры установки Fedora Linux в среде LVM создают раздел подкачки как логический том. Это упрощает задачу, поскольку вы можете просто увеличить размер тома подкачки.

Вот шаги, необходимые для увеличения объема подкачки в среде LVM:

  1. Отключить свопинг.

  2. Увеличьте размер логического тома, предназначенного для подкачки.

  3. Настройте том с измененным размером как пространство подкачки.

  4. Включите свопинг.

Сначала убедитесь, что подкачка существует и является логическим томом, с помощью команды lvs (список логических томов).

 

# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy% Sync Convert
home fedora_studentvm1 -wi-ao ---- 2,00g
pool00 fedora_studentvm1 twi-aotz-- 2.00g 8.17 2.93
root fedora_studentvm1 Vwi-aotz-- 2.00g pool00 8.17
swap fedora_studentvm1 -wi-ao ---- 8.00g
tmp fedora_studentvm1 -wi-ao ---- 5.00g
usr fedora_studentvm1--wi-a - 15.00 г
вар fedora_studentvm1 -wi-ao ---- 10.00г

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

  $ swapoff -a  

Теперь увеличьте размер логического тома.

 

# lvextend -L + 2G / dev / mapper / fedora_studentvm1-swap
Размер логического тома fedora_studentvm1 / swap изменен с 8,00 ГиБ (2048 экстентов) на 10,00 ГиБ (2560 экстентов).
Размер логического тома fedora_studentvm1 / swap успешно изменен.

Запустите команду mkswap , чтобы превратить весь раздел размером 10 ГБ в пространство подкачки.

 

# mkswap / dev / mapper / fedora_studentvm1-swap
mkswap: / dev / mapper / fedora_studentvm1-swap: warning: стирание старой подписи подкачки.
Настройка пространства подкачки версии 1, размер = 10 ГиБ (10737414144 байта)
без метки, UUID = 3cc2bee0-e746-4b66-aa2d-1ea15ef1574a

Включите своп снова.

  # swapon -a  

Теперь проверьте наличие нового пространства подкачки с помощью команды list block devices. Опять же, перезагрузка не требуется.

 

# lsblk
ИМЯ ОСНОВНОЕ: МИН. РАЗМЕР RM RO ТИП MOUNTPOINT
sda 8: 0 0 60G 0 disk
| -sda1 8: 1 0 1G 0 part / boot
`-sda2 8: 2 0 59G 0 part
| - fedora_studentvm1-pool00_tmeta 253: 0 0 4M 0 lvm
| `-fedora_studentvm1-pool00-tpool 253: 2 0 2G 0 lvm
| | -fedora_studentvm1-root 253: 3 0 2G 0 lvm /
| `-fedora_studentvm1-pool00 253: 6 0 2G 0 lvm
| -fedora_studentvm1-pool00_tdata 253: 1 0 2G 0 lvm
| `-fedora_studentvm1-pool00-tpool 253: 2 0 2G 0 lvm
| | -fedora_studentvm1-root 253: 3 0 2G 0 lvm /
| `-fedora_studentvm1-pool00 253: 6 0 2G 0 lvm
| -fedora_studentvm1-swap 253: 4 0 10G 0 lvm [SWAP]
| -fedora_studentvm1-usr 253: 5 0 15G 0 lvm / usr_
| -fedorafedora : 7 0 2G 0 lvm / home
| -fedora_studentvm1-var 253: 8 0 10G 0 lvm / var
`-fedora_studentvm1-tmp 253: 9 0 5G 0 lvm / tmp
sr0

Вы также можете использовать команду swapon -s или top , free или любую из нескольких других команд, чтобы проверить это.

 

# бесплатно
всего использованного свободного общего буфера / доступного кеша
Mem: 4038808 382404 2754072 4152 2 3404184
Swap: 10485756 0 10485756

Обратите внимание, что разные команды отображают или требуют в качестве ввода специальный файл устройства в разных формах. Есть несколько способов доступа к конкретным устройствам в каталоге / dev. Моя статья «Управление устройствами в Linux» содержит дополнительную информацию о каталоге / dev и его содержимом.


Эта статья была первоначально опубликована в сентябре 2018 года и была дополнена дополнительной информацией редактором.

Почему почти всегда следует добавлять пространство подкачки

Мы знаем, что использование пространства подкачки Linux вместо RAM (памяти) может серьезно снизить производительность. Итак, кто-то может спросить, раз у меня более чем достаточно доступной памяти, не лучше ли удалить пространство подкачки? Короткий ответ: нет. При включенном пространстве подкачки есть преимущества в производительности, даже если у вас более чем достаточно оперативной памяти.Обновление , также см. Часть 2: Производительность Linux: почти всегда добавлять подкачку (ZRAM).

Даже если на сервере установлено более чем достаточно памяти, вы часто обнаружите, что пространство подкачки будет использоваться после длительных периодов безотказной работы. См. Приведенный ниже пример сервера живого чата со временем безотказной работы около одного месяца:

Всего
 использованных бесплатных общих баффов / кешей доступны
Память: 3,7 г 1,0 г 445 м 84 м  2,2 г   2.2G 
Swap: 1.8G  308M  1.5G 

Результат free -h здесь показывает 308M используемого пространства подкачки. Когда я проводил проверки на подкачку, не было никаких признаков продолжающейся или несвоевременной активности ввода-вывода подкачки. Кроме того, служба kswap не потребляла много процессорного времени. Фактически, процесс kswap нигде не находился в топе (топ-процессы, отсортированные по времени ЦП). Для подтверждения я использовал следующую команду:

 ps -A | grep kswap
 40? 00:00:  29  kswapd0 

… так что в этом случае, как и во многих других случаях, использование подкачки не влияет на производительность сервера Linux.Теперь давайте посмотрим, как пространство подкачки может на самом деле повысить производительность сервера Linux .

Обновление

: недавно я установил Manjoro i3 на свой Pinebook Pro. Теперь он поставляется с включенным ZRAM по умолчанию.

Преимущества пространства подкачки в системах с достаточным объемом ОЗУ

Использование некоторого объема подкачки в системах Linux — это нормально и может быть хорошо, даже если ОЗУ все еще есть. Ядро Linux переместит страниц памяти, которые почти никогда не используются, , в пространство подкачки, чтобы обеспечить доступность еще большего кешируемого пространства в памяти для более часто используемых страниц памяти (страница — это часть памяти).Использование подкачки становится проблемой производительности, когда ядро ​​вынуждено постоянно перемещать страницы памяти в память и из нее, а также пространство подкачки.

Еще одно преимущество заключается в том, что подкачка дает администраторам время реагировать на проблемы с нехваткой памяти. Мы часто замечаем, что сервер работает медленно, и при входе в систему заметим интенсивный свопинг. Без подкачки (как описано в следующем разделе) нехватка памяти может вызвать гораздо более внезапные и серьезные цепные реакции. Поэтому обычно я бы посоветовал установить пространство подкачки примерно на размер вашего самого большого процесса.Например, сконфигурированная память MySQL в my.cnf. Он может быть даже меньше, особенно если у вас есть мониторинг и / или оповещение.

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

Подводя итог:
— Даже если есть еще доступная RAM, ядро ​​Linux будет перемещать страницы памяти, которые почти никогда не используются, в пространство подкачки.
— Лучше поменять местами страницы памяти, которые некоторое время были неактивными, сохраняя часто используемые данные в кеше, и это должно происходить, когда сервер наиболее простаивает, что является целью ядра.
— Не устанавливайте слишком большое пространство подкачки, если это приведет к увеличению проблем с производительностью, отключениям или времени отклика (без надлежащего мониторинга / предупреждений).

Пространство подкачки против отсутствия подкачки при низком уровне доступной памяти

В отличие от случая, описанного выше, если у вас недостаточно памяти, подкачка будет использоваться довольно часто и заметно чаще во время любых всплесков требований к памяти. Если у вас недостаточно памяти и места подкачки, это часто приводит к невозможности выделения памяти для запросов, требующих большего количества страниц памяти. В крайнем случае, ядро ​​развернет убийцу OOM, чтобы уничтожить процессы с высокой памятью (обычно MySQL, java и т. Д.).

Для более подробного ознакомления с пространством подкачки Linux прочтите главы «Управление подкачкой» и «Восстановление кадров страницы» из ядра.org docs. Также посмотрите последний раздел « Kernel cache pressure and swappiness, » моего другого сообщения в блоге, где вы найдете советы по настройке использования пространства подкачки Linux ядром. Если ваше пространство подкачки «используется» всегда равно «0», то у вас действительно есть тонна свободно доступной оперативной памяти, и в этом случае может быть безопасно удалить пространство подкачки … или вы можете настроить давление кеша вашего ядра, чтобы использовать даже больше оперативной памяти.

Подводя итог:
— Ввод / вывод подкачки очень плохо масштабируется. Если страницы памяти нельзя поменять местами только тогда, когда сервер бездействует, вам следует настроить или отключить подкачку.Обычно это не так, поэтому заголовок этого сообщения в блоге «почти всегда».
— При отключенной подкачке проблемы с производительностью становятся заметными очень быстро, и убийца OOM может вас достать! 🙂

Для сравнения, вот результат бесплатного использования более старой версии free из procps-ng-3.3.1 на том же сервере:

Всего
 использованных свободных общих буферов кэшировано
Mem: 3,7 г 3,3 г 445 м 0B 4,2 м  1,7 г 
- / + буферы / кеш: 1.6 г 2,1 г
Своп: 1,8 Гб  308 Мб  1,5 Гб 

Давление в кэше ядра и подкачка

Теперь, когда у вас включен свопинг. Подумайте о том, чтобы отрегулировать давление в кеш-памяти вашего сервера и тенденцию к подкачке (vm.swappiness), следуя приведенному ниже руководству из предыдущей статьи: Сервер Linux нуждается в обновлении ОЗУ? Проверьте с помощью top, free, vmstat и sar:

vfs_cache_pressure — Управляет тенденцией ядра освобождать память, которая используется для кэширования объектов каталога и inode.(по умолчанию = 100, рекомендуемое значение от 50 до 200)

swappiness — Этот элемент управления используется для определения того, насколько агрессивно ядро ​​будет перекачивать страницы памяти. Более высокие значения увеличивают агрессивность; более низкие значения уменьшают объем обмена. (по умолчанию = 60, рекомендуемые значения от 1 до 60) Удалите свой своп для значения 0, но обычно не рекомендуется в большинстве случаев.

Для редактирования вы можете добавить или заменить эти строки в файле /etc/sysctl.conf . Например, если у вас мало памяти до обновления, вы можете попробовать что-то вроде:

 vm.swappiness = 10
vm.vfs_cache_pressure = 200 

Это увеличит нагрузку на кэш, что может показаться несколько контрпродуктивным, поскольку кеширование полезно для производительности. Однако слишком частая подкачка значительно снижает общую производительность вашего сервера. Таким образом, уменьшение объема кеш-памяти в памяти поможет снизить активность подкачки. Кроме того, если для vm.swappiness установлено значение 10 или всего 1, это уменьшит подкачку диска.

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

 vm.swappiness = 10
vm.vfs_cache_pressure = 50 

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

Для проверки текущих значений с помощью этих команд используйте:

 sudo cat / proc / sys / vm / swappiness
sudo cat / proc / sys / vm / vfs_cache_pressure 

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

 sudo sysctl -w vm.swappiness = 10
sudo sysctl -w vm.vfs_cache_pressure = 50 

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

Обмен — ArchWiki

Эта страница представляет собой введение в пространство подкачки и подкачку в GNU / Linux. Он охватывает создание и активацию разделов подкачки и файлов подкачки.

От Все о пространстве подкачки Linux:

Linux делит свою физическую RAM (оперативную память) на фрагменты памяти, называемые страницами.Подкачка — это процесс, при котором страница памяти копируется в предварительно сконфигурированное пространство на жестком диске, называемое пространством подкачки, чтобы освободить эту страницу памяти. Комбинированные размеры физической памяти и пространства подкачки — это объем доступной виртуальной памяти.

Поддержка подкачки обеспечивается ядром Linux и утилитами пользовательского пространства из пакета util-linux.

Место подкачки

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

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

Самым большим недостатком включения подкачки является его низкая производительность, см. Раздел # Производительность. Следовательно, включение подкачки — это вопрос личных предпочтений: некоторые предпочитают убивать программы, а не включать подкачку, а другие предпочитают подкачку и более медленную систему, когда физическая память исчерпана.

Примечание: Нет разницы в производительности между использованием раздела подкачки и непрерывного файла подкачки.

Чтобы проверить статус свопа, используйте:

 $ свопон - показать
 

Или для отображения физической памяти и использования подкачки:

 $ бесплатно -ч
 

Раздел подкачки

Фактическая точность данной статьи или раздела оспаривается.

Раздел подкачки можно создать с помощью большинства инструментов для разметки разделов GNU / Linux. Разделы подкачки обычно обозначаются как тип 82 . Несмотря на то, что в качестве раздела подкачки можно использовать любой тип раздела, в большинстве случаев рекомендуется использовать тип 82 , поскольку systemd автоматически обнаружит его и смонтирует (см. Ниже).

Чтобы настроить раздел как область подкачки Linux, используется команда mkswap (8). Например:

 # mkswap / dev / sd  ху 
 

Предупреждение: Все данные в указанном разделе будут потеряны.

Чтобы включить устройство для пейджинга:

 # swapon / dev / sd  ху 
 

Чтобы включить этот раздел подкачки при загрузке, добавьте запись в / etc / fstab :

 UUID =  device_UUID  none swap по умолчанию 0 0
 

, где device_UUID — это UUID пространства подкачки.

Синтаксис файла см. В fstab.

Примечание:
  • Запись fstab необязательна, если раздел подкачки расположен на устройстве, использующем GPT. См. Следующий подраздел.
  • При использовании SSD с поддержкой TRIM рассмотрите возможность использования discard в строке подкачки в fstab. При активации подкачки вручную с помощью swapon использование параметра -d / --discard дает то же самое. За подробностями обращайтесь к swapon (8).

Предупреждение: Включение сброса настроек RAID с помощью mdadm приведет к зависанию системы при загрузке и во время выполнения, если используется swapon.

Активация по systemd

systemd активирует разделы подкачки на основе двух разных механизмов. Оба являются исполняемыми файлами в / usr / lib / systemd / system-generators . Генераторы запускаются при запуске и создают собственные модули systemd для монтирования. Первый, systemd-fstab-generator , считывает fstab для генерации модулей, включая модуль для подкачки. Второй, systemd-gpt-auto-generator проверяет корневой диск для создания блоков. Он работает только с дисками GPT и может идентифицировать разделы подкачки по их типу GUID, см. Systemd # Автоматическое монтирование разделов GPT для получения дополнительной информации.

Отключение свопа

Чтобы отключить определенное пространство подкачки:

 # swapoff / dev / sd  ху 
 

В качестве альтернативы используйте переключатель -a , чтобы отключить все пространство подкачки.

Поскольку свопом управляет systemd, он будет снова активирован при следующем запуске системы. Чтобы навсегда отключить автоматическую активацию обнаруженного пространства подкачки, запустите systemctl --type swap , чтобы найти ответственный модуль .swap и замаскировать его.

Файл подкачки

В качестве альтернативы созданию всего раздела файл подкачки предлагает возможность изменять его размер на лету, и его легче удалить полностью.Это может быть особенно желательно, если дисковое пространство ограничено (например, SSD скромного размера).

Предупреждение: Btrfs поддерживает файл подкачки с ограничениями, начиная с версии ядра Linux 5.0. См. Btrfs # Файл подкачки для получения дополнительной информации.

Вручную

Создание файла подкачки
Примечание: Если вы используете Btrfs, сначала выполните процедуру, описанную в Btrfs # Файл подкачки, чтобы инициализировать файл подкачки.

Используйте dd для создания файла подкачки любого размера по вашему выбору. Например, создание файла подкачки объемом 512 МБ:

 # dd if = / dev / zero of = / swapfile bs = 1M count = 512 status = прогресс
 

Установите правильные разрешения (доступный для чтения файл подкачки — огромная локальная уязвимость):

 # chmod 600 / файл подкачки
 

После создания файла правильного размера отформатируйте его для обмена:

 # mkswap / swapfile
 

Активируйте файл подкачки:

 # swapon / файл подкачки
 

Наконец, отредактируйте конфигурацию fstab, чтобы добавить запись для файла подкачки:

 / и т. Д. / Fstab 
 / swapfile none swap по умолчанию 0 0
 

Для получения дополнительной информации см. Использование fstab #.

Примечание:
  • Файл подкачки должен быть указан по его расположению в файловой системе, а не по его UUID или LABEL.
  • При использовании Btrfs не забудьте также добавить созданный вложенный том в список и удалить параметры сброса , автоматической дефрагментации и сжатия.
Удалить файл подкачки

Чтобы удалить файл подкачки, его сначала необходимо отключить, а затем можно удалить:

 # swapoff / файл подкачки
# rm -f / swapfile
 

Наконец, удалите соответствующую запись из / etc / fstab .

Автоматизированный

зрам-генератор

Целью данного инструмента является создание устройств Zram. Он написан на Rust и находится на GitHub systemd. Его можно установить с помощью пакета zram-generator. Конфигурация проста и объяснена в README.

systemd-своп

systemd-swap — это сценарий для создания гибридного пространства подкачки из файлов подкачки zram, файлов подкачки и разделов подкачки. Он не связан с проектом systemd.

Установите пакет systemd-swap.Раскомментируйте и установите swapfc_enabled = 1 в разделе Swap File Chunked файла /etc/systemd/swap.conf . Запустить / включить службу systemd-swap .

Посетите страницу авторов GitHub для получения дополнительной информации и настройки рекомендуемой конфигурации.

Примечание:
  • Если журнал продолжает показывать следующее предупреждение systemd-swap [..]: WARN: swapFC: ENOSPC и файл подкачки не создается, необходимо раскомментировать и установить swapfc_force_preallocated = 1 в / etc / systemd /поменять местами.conf .
  • Файл подкачки, созданный с помощью systemd-swap, не может быть легко использован для гибернации. См. Systemd-swap issue 85.

Шифрование свопа

См. Шифрование dm-crypt / Swap.

Производительность

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

Значения свопа можно изменить для повышения производительности:

Обмен

Параметр swappiness sysctl представляет предпочтение (или отказ) ядра от пространства подкачки. Подкачка может иметь значение от 0 до 200 (максимум 100, если Linux <5.8), значение по умолчанию - 60. Низкое значение заставляет ядро ​​избегать подкачки, высокое значение заставляет ядро ​​пытаться использовать пространство подкачки, а значение 100 означает, что предполагается, что затраты на ввод-вывод равны. Известно, что использование низкого значения достаточного объема памяти улучшает скорость отклика во многих системах.

Чтобы проверить текущее значение подкачки:

 $ sysctl vm.swappiness
 

В качестве альтернативы можно прочитать файлы /sys/fs/cgroup/memory/memory.swappiness или / proc / sys / vm / swappiness , чтобы получить необработанное целочисленное значение.

Примечание: Поскольку / proc намного менее организован и сохраняется только для целей совместимости, вам рекомендуется использовать вместо него / sys .

Чтобы временно установить значение подкачки:

 # sysctl -w vm.swappiness = 10
 

Чтобы установить значение подкачки навсегда, создайте файл конфигурации sysctl.d (5). Например:

 /etc/sysctl.d/99-swappiness.conf 
 vm.swappiness = 10 

Чтобы проверить и узнать больше о том, почему это может работать, прочтите эту статью.

Давление кэша VFS

Еще один параметр sysctl , влияющий на производительность подкачки, — это vm.vfs_cache_pressure , который контролирует тенденцию ядра освобождать память, которая используется для кэширования кэшей VFS, по сравнению с кешем страниц и подкачкой.Увеличение этого значения увеличивает скорость восстановления кэшей VFS [1]. Для получения дополнительной информации см. Документацию по ядру Linux.

Приоритет

Если у вас более одного файла подкачки или раздела подкачки, вам следует подумать о назначении значения приоритета (от 0 до 32767) для каждой области подкачки. Система будет использовать области подкачки с более высоким приоритетом, прежде чем использовать области подкачки с более низким приоритетом. Например, если у вас более быстрый диск ( / dev / sda ) и более медленный диск ( / dev / sdb ), назначьте более высокий приоритет области подкачки, расположенной на самом быстром устройстве.Приоритеты можно назначить в fstab через параметр pri :

 / dev / sda1 нет свопинга по умолчанию, pri = 100 0 0
/ dev / sdb2 нет свопинга по умолчанию, pri = 10 0 0
 

Или через параметр --priority для swapon :

 # swapon --priority 100 / dev / sda1
 

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

Использование zswap или zram

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

Чередование

Нет необходимости использовать RAID для повышения производительности подкачки. Само ядро ​​может чередовать своппинг на нескольких устройствах, если вы просто дадите им одинаковый приоритет в файле / etc / fstab . За подробностями обращайтесь к Software-RAID HOWTO.

Параметры времени выполнения с памятью, центральными и графическими процессорами

Расчетное время чтения: 16 минут

По умолчанию контейнер не имеет ограничений ресурсов и может использовать столько же заданный ресурс, как позволяет планировщик ядра хоста.Docker предоставляет способы чтобы контролировать, сколько памяти или ЦП может использовать контейнер, устанавливая время выполнения флаги конфигурации docker run command. В этом разделе представлены подробности о том, когда следует устанавливать такие ограничения, и о возможных последствиях их установления.

Многие из этих функций требуют, чтобы ваше ядро ​​поддерживало возможности Linux. К проверьте наличие поддержки, вы можете использовать docker info команда. Если возможность отключен в вашем ядре, вы можете увидеть предупреждение в конце вывода, например следующее:

  ПРЕДУПРЕЖДЕНИЕ: Ограничение на замену не поддерживается.
  

Обратитесь к документации вашей операционной системы, чтобы включить их.Учить больше.

Память

Узнайте о рисках нехватки памяти

Важно не допускать, чтобы работающий контейнер потреблял слишком много память хост-машины. На хостах Linux, если ядро ​​обнаруживает, что нет достаточно памяти для выполнения важных системных функций, бросает OOME , или Исключение нехватки памяти и запускает завершающие процессы, чтобы освободить объем памяти. Уничтожению подлежит любой процесс, включая Docker и другие важные Приложения.Это может эффективно вывести из строя всю систему, если процесс убит.

Docker пытается снизить эти риски, регулируя приоритет OOM на Демон Docker, чтобы его убить с меньшей вероятностью, чем другие процессы в системе. Не регулируется приоритет OOM на контейнерах. Это делает его более скорее всего, отдельный контейнер будет убит, чем демон Docker или другие системные процессы, которые нужно убить. Вы не должны пытаться обойти эти меры предосторожности, вручную установив --oom-score-adj на крайнее отрицательное значение номер на демоне или контейнере, или установив --oom-kill-disable на контейнер.

Для получения дополнительной информации об управлении OOM ядра Linux см. Управление нехваткой памяти.

Вы можете снизить риск нестабильности системы из-за OOME с помощью:

  • Выполните тесты, чтобы понять требования к памяти вашего приложения перед запускаем в производство.
  • Убедитесь, что ваше приложение работает только на хостах с соответствующими ресурсами.
  • Ограничьте объем памяти, который может использовать ваш контейнер, как описано ниже.
  • Будьте внимательны при настройке подкачки на хостах Docker.Своп медленнее и менее эффективен, чем память, но может обеспечить буфер против исчерпания системная память.
  • Рассмотрите возможность преобразования вашего контейнера в службу, и используя ограничения уровня обслуживания и метки узлов, чтобы гарантировать, что приложение работает только на хостах с достаточным объемом памяти

Ограничить доступ контейнера к памяти

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

Большинство этих параметров принимают положительное целое число, за которым следует суффикс b , k , m , g , для обозначения байтов, килобайт, мегабайт или гигабайт.

Опция Описание
-m или --memory = Максимальный объем памяти, который может использовать контейнер.Если вы установите этот параметр, минимально допустимое значение будет 6 м (6 мегабайт).
- замена памяти * Объем памяти, который этому контейнеру разрешено перекачивать на диск. См. Подробности --memory-swap .
- замена памяти По умолчанию ядро ​​хоста может выгружать процент анонимных страниц, используемых контейнером. Вы можете установить --memory-swappiness на значение от 0 до 100, чтобы настроить этот процент.См. Подробности --memory-swappiness .
- память-резерв Позволяет указать мягкое ограничение меньше --memory , которое активируется, когда Docker обнаруживает конкуренцию или нехватку памяти на хост-машине. Если вы используете --memory-reserve , он должен быть установлен ниже, чем --memory , чтобы он имел приоритет. Поскольку это мягкий лимит, он не гарантирует, что контейнер не превысит лимит.
- память ядра Максимальный объем памяти ядра, который может использовать контейнер. Минимально допустимое значение — . Поскольку память ядра не может быть выгружена, контейнер, которому не хватает памяти ядра, может блокировать ресурсы хост-машины, что может иметь побочные эффекты на хост-машине и в других контейнерах. См. Подробности --kernel-memory .
--oom-kill-disable По умолчанию, если возникает ошибка нехватки памяти (OOM), ядро ​​завершает процессы в контейнере.Чтобы изменить это поведение, используйте параметр --oom-kill-disable . Отключите убийцу OOM только в контейнерах, где вы также установили параметр -m / - memory . Если флаг -m не установлен, хосту может не хватить памяти, и ядру может потребоваться остановить процессы хост-системы, чтобы освободить память.

Дополнительные сведения о контрольных группах и памяти в целом см. В документации. для контроллера ресурсов памяти.

- замена памяти детали

--memory-swap — это флаг-модификатор, который имеет значение, только если --memory также установленный.Использование подкачки позволяет контейнеру записывать на диск избыточные требования к памяти. когда контейнер исчерпал всю доступную ему оперативную память. Существует снижение производительности для приложений, которые часто меняют память на диск.

Его настройка может иметь сложные последствия:

  • Если для параметра --memory-swap задано положительное целое число, то и --memory , и --memory-swap должен быть установлен. --memory-swap представляет собой общую сумму память и своп, которые можно использовать, а --memory контролирует объем, используемый память без подкачки.Итак, если --memory = "300m" и --memory-swap = "1g" , контейнер может использовать 300 м памяти и 700 м ( 1 г - 300 м ) подкачки.

  • Если для параметра --memory-swap установлено значение 0 , настройка игнорируется, и значение рассматривается как неустановленное.

  • Если для --memory-swap установлено то же значение, что и для --memory , а для --memory установлено установлено положительное целое число , у контейнера нет доступа к свопингу .Видеть Запретить контейнеру использовать подкачку.

  • Если --memory-swap не задано, а --memory установлено, контейнер может использовать столько же подкачки, сколько настройка --memory , если в хост-контейнере есть подкачка память настроена. Например, если --memory = "300m" и --memory-swap — не задано, контейнер может использовать в общей сложности 600 м памяти и подкачки.

  • Если для параметра --memory-swap явно задано значение -1 , контейнеру разрешено использовать неограниченный своп до суммы, доступной в хост-системе.

  • Внутри контейнера такие инструменты, как free , сообщают о доступном свопе хоста, а не о том, что доступно внутри контейнера. Не полагайтесь на вывод free или аналогичные инструменты, чтобы определить, присутствует ли своп.

Запретить контейнер от использования подкачки

Если для --memory и --memory-swap установлено одинаковое значение, это предотвращает контейнеры от использования какого-либо свопа. Это потому, что --memory-swap — это количество объединенная память и своп, которые можно использовать, а - память — это только количество физической памяти, которую можно использовать.

- замена памяти детали
  • Значение 0 отключает анонимный обмен страниц.
  • Значение 100 устанавливает все анонимные страницы как заменяемые.
  • По умолчанию, если вы не установите --memory-swappiness , значение будет досталось от хоста машины.

- ядро-память детали

Пределы памяти ядра выражаются в терминах общей памяти, выделенной для контейнер. Рассмотрим следующие сценарии:

  • Неограниченная память, неограниченная память ядра : это значение по умолчанию поведение.
  • Неограниченная память, ограниченная память ядра : Это уместно, когда объем памяти, необходимый всем контрольным группам, превышает количество память, которая действительно существует на хост-машине. Вы можете настроить память ядра, чтобы никогда не выходить за рамки того, что доступно на хост-машине, и контейнеры, которым требуется больше памяти, должны дождаться этого.
  • Ограниченная память, неограниченная память ядра : Общая память ограничено, но память ядра нет.
  • Ограниченная память, ограниченная память ядра : Ограничение как для пользователя, так и для ядра память может быть полезна для отладки проблем, связанных с памятью. Если контейнер использует неожиданный объем памяти любого типа, он заканчивается памяти, не затрагивая другие контейнеры или хост-машину. В этот параметр, если предел памяти ядра ниже, чем память пользователя предел, исчерпание памяти ядра приводит к тому, что контейнер испытывает ошибка OOM. Если предел памяти ядра выше, чем пользовательская память limit, ограничение ядра не вызывает OOM контейнера.

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

процессор

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

Настроить планировщик CFS по умолчанию

CFS — это планировщик ЦП ядра Linux для обычных процессов Linux. Несколько флаги времени выполнения позволяют настроить объем доступа к ресурсам ЦП. контейнер имеет. Когда вы используете эти настройки, Docker изменяет настройки для контрольная группа контейнера на хост-машине.

Опция Описание
--cpus = <значение> Укажите, сколько доступных ресурсов ЦП может использовать контейнер.Например, если на хост-машине два ЦП, и вы установили --cpus = "1.5" , контейнер гарантированно получит не более полутора процессоров. Это эквивалент установки --cpu-period = "100000" и --cpu-quota = "150000" .
--cpu-period = <значение> Укажите период планировщика CFS ЦП, который используется вместе с --cpu-quota . По умолчанию 100000 микросекунд (100 миллисекунд). Большинство пользователей не меняют это значение по умолчанию.Для большинства случаев использования более удобной альтернативой является --cpus .
--cpu-quota = <значение> Установите для контейнера квоту CFS ЦП. Число микросекунд на --cpu-period , которым контейнер ограничен перед дросселированием. Как таковой действует эффективный потолок. Для большинства случаев использования более удобной альтернативой является --cpus .
- процессор-процессор Ограничьте количество процессоров или ядер, которые может использовать контейнер.Разделенный запятыми список или диапазон ЦП, разделенных дефисом, который может использовать контейнер, если у вас более одного ЦП. Первый ЦП имеет номер 0. Допустимое значение может быть 0-3 (для использования первого, второго, третьего и четвертого ЦП) или 1,3 (для использования второго и четвертого ЦП).
- доли ЦПУ Установите для этого флага значение больше или меньше значения по умолчанию 1024, чтобы увеличить или уменьшить вес контейнера и предоставить ему доступ к большей или меньшей части циклов ЦП хост-машины.Это применяется только тогда, когда количество циклов ЦП ограничено. Когда доступно много циклов ЦП, все контейнеры используют столько ЦП, сколько им нужно. Таким образом, это мягкий предел. --cpu-share не препятствует планированию контейнеров в режиме роения. Он определяет приоритеты ресурсов ЦП контейнера для доступных циклов ЦП. Он не гарантирует и не резервирует какой-либо конкретный доступ к ЦП.

Если у вас 1 ЦП, каждая из следующих команд гарантирует, что контейнер на максимум 50% ЦП каждую секунду.

  $ docker run -it --cpus = ". 5" ubuntu / bin / bash
  

Что эквивалентно ручному указанию --cpu-period и --cpu-quota ;

  $ docker run -it --cpu-period = 100000 --cpu-quota = 50000 ubuntu / bin / bash
  

Настроить планировщик реального времени

Вы можете настроить свой контейнер для использования планировщика реального времени для задач, которые не может использовать планировщик CFS. Тебе следует убедитесь, что ядро ​​хост-машины настроено правильно прежде чем вы сможете настроить демон Docker или настраивать отдельные контейнеры.

Предупреждение

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

Настроить ядро ​​хост-машины

Убедитесь, что CONFIG_RT_GROUP_SCHED включен в ядре Linux, запустив zcat /proc/config.gz | grep CONFIG_RT_GROUP_SCHED или проверив наличие файла / sys / fs / cgroup / cpu.rt_runtime_us . Для руководства по настраивая планировщик ядра в реальном времени, обратитесь к документации для вашего операционная система.

Настроить демон Docker

Чтобы запускать контейнеры с помощью планировщика реального времени, запустите демон Docker с флаг --cpu-rt-runtime установлен на максимальное количество зарезервированных микросекунд для задач в реальном времени за период выполнения. Например, с периодом по умолчанию 1000000 микросекунд (1 секунда), установка --cpu-rt-runtime = 950000 гарантирует, что контейнеры, использующие планировщик реального времени, могут работать в течение 950000 микросекунд для каждого 1000000 микросекунд, оставляя не менее 50000 микросекунд для задачи не в реальном времени.Чтобы сделать эту конфигурацию постоянной в системах, которые используют systemd , см. Управление и настройка Docker с помощью systemd.

Настроить отдельные контейнеры

Вы можете передать несколько флагов для управления приоритетом ЦП контейнера, когда вы запустите контейнер, используя docker run . Проконсультируйтесь с вашей операционной системой документацию или команду ulimit для получения информации о соответствующих значениях.

Опция Описание
--cap-add = sys_nice Предоставляет контейнеру возможность CAP_SYS_NICE , которая позволяет контейнеру поднимать процесс nice значений, устанавливать политики планирования в реальном времени, устанавливать соответствие ЦП и другие операции.
--cpu-rt-runtime = <значение> Максимальное количество микросекунд, в течение которых контейнер может работать с приоритетом в реальном времени в рамках периода планировщика реального времени демона Docker. Вам также понадобится флаг --cap-add = sys_nice .
--ulimit rtprio = <значение> Максимальный приоритет в реальном времени, разрешенный для контейнера. Вам также понадобится флаг --cap-add = sys_nice .

В следующем примере команда устанавливает каждый из этих трех флагов на debian : jessie контейнер.

  $ docker run -it \
    --cpu-rt-runtime = 950000 \
    --ulimit rtprio = 99 \
    --cap-add = sys_nice \
    дебиан: Джесси
  

Если ядро ​​или демон Docker настроены неправильно, возникает ошибка.

графический процессор

Доступ к графическому процессору NVIDIA

Предварительные требования

Посетите официальную страницу драйверов NVIDIA чтобы загрузить и установить соответствующие драйверы. Перезагрузите систему, как только у вас сделал так.

Убедитесь, что ваш графический процессор работает и доступен.

Установить nvidia-container-runtime

Следуйте инструкциям на (https://nvidia.github.io/nvidia-container-runtime/) а затем запустите эту команду:

  $ apt-get установить nvidia-container-runtime
  

Убедитесь, что nvidia-container-runtime-hook доступен из $ PATH .

  $ который nvidia-container-runtime-hook
  

Перезапустите демон Docker.

Предоставление графических процессоров для использования

Включите флаг --gpus при запуске контейнера для доступа к ресурсам графического процессора.Укажите, сколько графических процессоров использовать. Например:

  $ docker run -it --rm --gpus все ubuntu nvidia-smi
  

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

  + ----------------------------------------------- ------------------------------ +
| NVIDIA-SMI 384.130 Версия драйвера: 384.130 |
| ------------------------------- + ----------------- ----- + ---------------------- +
| Имя GPU Persistence-M | Bus-Id Disp.А | Неустойчивый Uncorr. ECC |
| Fan Temp Perf Pwr: Использование / Крышка | Использование памяти | GPU-Util Compute M. |
| =============================== + ================= ===== + ====================== |
| 0 GRID K520 Off | 00000000: 00: 03.0 Выкл. | N / A |
| НЕТ 36C P0 39 Вт / 125 Вт | 0MiB / 4036MiB | 0% По умолчанию |
+ ------------------------------- + ----------------- ----- + ---------------------- +
+ ------------------------------------------------- ---------------------------- +
| Процессы: Память GPU |
| Тип PID графического процессора Имя процесса Использование |
| ================================================= ============================ |
| Запущенных процессов не найдено |
+ ------------------------------------------------- ---------------------------- +
  

Используйте параметр device , чтобы указать графические процессоры.Например:

  $ docker run -it --rm --gpus device = GPU-3a23c669-1f69-c64e-cf85-44e9b07e7a2a ubuntu nvidia-smi
  

Предоставляет конкретный графический процессор.

  $ docker run -it --rm --gpus '"device = 0,2"' ubuntu nvidia-smi
  

Предоставляет первый и третий графические процессоры.

Примечание

Графические процессоры NVIDIA

доступны только для систем с одним движком.

Установить возможности NVIDIA

Вы можете установить возможности вручную.Например, в Ubuntu вы можете запустить следующий:

  $ docker run --gpus 'all, features = utility' --rm ubuntu nvidia-smi
  

Это включает возможность драйвера утилиты , который добавляет инструмент nvidia-smi к контейнер.

Возможности, а также другие конфигурации могут быть установлены в образах через переменные среды. Более подробную информацию о допустимых переменных можно найти на nvidia-контейнер-время выполнения Страница GitHub. Эти переменные можно установить в Dockerfile.

Вы также можете использовать образы CUDA, которые автоматически устанавливают эти переменные. Видеть страница изображений CUDA на GitHub для дополнительной информации.

docker, демон, конфигурация, среда выполнения

Swap Memory — обзор

Реализация CCM

Мы используем реализацию CCM из LibTomCrypt в качестве справки. Это компактная и эффективная реализация CCM, которая выполняет все кодирование CCM с помощью одного вызова функции. Поскольку он принимает все параметры за один вызов, у него довольно много параметров.В таблице 7.3 имена реализации сопоставляются с именами проектных переменных.

Таблица 7.3. Руководство по внедрению CCM

Название проекта Название реализации Функция
cipher Индекс в таблицы LTC для использования 128-битного шифра, делает CCM независимым от выбора шифра
K ключ Секретный ключ keylen Длина ключа в октетах uskey Ключ, ранее запланированный, используется для экономии времени за счет неиспользования расписания ключей N6010 нет noncelen CCM noncelen Длина noncelen в октетах заголовок Заголовок или данные AAD headerlen 9014 Pt Обычный текст Q 9016 5 ptlen Длина открытого текста в октетах C ct Зашифрованный текст T tag Тег MAC4 Тег MAC4 длина желаемого тега MAC

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

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

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

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

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

LibTomCrypt может «перегружать» функции — в данном случае CCM. Если указатель не равен NULL, вычисление выгружается на него автоматически. Таким образом, разработчик может воспользоваться ускорителями, не переписывая свое приложение. Технически это не является частью CCM, поэтому вы можете не смотреть на этот кусок, если хотите.

Здесь мы вычисляем значение L ( q в проекте CCM). L было первоначальным именем этой переменной, поэтому мы использовали его здесь. Мы следим за тем, чтобы L было не менее 2 в соответствии со спецификацией CCM.

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

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

Этот раздел кода создает значение B 0 , которое нам нужно для фазы CBC-MAC CCM. Массив PAD содержит 16 байтов данных CBC для MAC, а CTRPAD, который мы увидим позже, содержит 16 байтов вывода CTR.

Первый байт (строка 122) блока — это флаги. Мы устанавливаем флаг Adata на основе заголовка , кодируем длину тега, разделив taglen на два, и, наконец, длина длины открытого текста сохраняется.

Затем одноразовый номер копируется в блок. Мы используем 16 — L + 1 байта одноразового номера, поскольку мы должны хранить флаги и L байта значения длины открытого текста.

Чтобы сделать вещи более практичными, мы храним только 32 бита длины открытого текста.Если пользователь указывает короткий одноразовый номер, значение L должно быть увеличено для компенсации. В этом случае мы заполняем нулевыми байтами перед кодированием фактической длины.

Мы эффективно используем CBC-MAC с обнуленным IV, поэтому первое, что мы должны сделать, это зашифровать PAD. Зашифрованный текст теперь является IV для CBC-MAC остальной части заголовка и данных открытого текста.

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

Кодирование длины данных заголовка зависит от размера данных заголовка.Если он меньше 65 280 байт, мы используем короткую двухбайтовую кодировку. В противном случае мы испускаем escape-последовательность OxFF FE, а затем четырехбайтовую кодировку. CCM поддерживает заголовки большего размера, но вряд ли вам когда-нибудь понадобится.

Обратите внимание, что вместо XOR PAD (как IV) против другого буфера мы просто XOR длины в PAD. Это позволяет избежать двойной буферизации, которую в противном случае пришлось бы использовать.

Этот цикл обрабатывает все данные заголовка. Мы не предоставляем никаких оптимизаций LTC_FAST, поскольку заголовки обычно пустые или очень короткие.Каждые 16 байтов данных заголовка мы шифруем PAD для правильной эмуляции CBC-MAC.

Если у нас остались данные заголовка (то есть заголовок не кратен 16), мы заполняем его нулевыми байтами и шифруем. Поскольку операция XOR с нулевыми байтами не является операцией, мы просто игнорируем этот шаг и вызываем шифр.

Этот код создает начальный счетчик для режима шифрования CTR. Флаги содержат только длину открытого текста. Одноразовый номер копируется так же, как и для CBC-MAC, а остальная часть блока обнуляется.Байты после одноразового номера увеличиваются во время шифрования.

При шифровании мы обрабатываем все полные 16-байтовые блоки открытого текста, которые у нас есть.

Счетчик CTR имеет обратный порядок байтов и хранится в конце массива ctr. Этот код увеличивает его на единицу.

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

Этот цикл выполняет операцию XOR 16 байтов открытого текста против панели CBC-MAC, а затем создает 16 байтов зашифрованного текста, выполняя операцию XOR с CTRPAD против открытого текста.Мы выполняем шифрование вторым (после CBC-MAC), поскольку мы позволяем открытому тексту и зашифрованному тексту указывать на один и тот же буфер.

Шифрование панели CBC-MAC выполняет необходимую операцию MAC для этого 16-байтового блока открытого текста.

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

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

Заканчиваем CBC-MAC, если остались байты. Как и при обработке заголовка, мы неявно дополняем нулями, шифруя PAD как есть. На этом этапе PAD теперь содержит значение CBC-MAC, но не тег CCM, поскольку нам все еще нужно его зашифровать.

Pad CTR для тега CBC-MAC вычисляется путем обнуления последних L байтов счетчика CTR и шифрования его в CTRPAD.

Если мы запланировали собственный ключ, теперь мы освободим все выделенные ресурсы.

CCM позволяет использовать теги переменной длины от 4 до 16 байтов с шагом 2 байта. Мы шифруем и сохраняем тег CCM путем XOR тега CBC-MAC с последним зашифрованным счетчиком CTR.

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

СОВЕТ

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

Обратной стороной замены памяти является то, что память процесса может содержать конфиденциальную информацию, такую ​​как закрытые ключи, имена пользователей, пароли и другие учетные данные. Чтобы предотвратить это, приложение может заблокировать память . В операционных системах, таких как системы, основанные на ядре NT (например, Windows 2000, WinXP), блокировка является полностью добровольной, и операционная система может выбрать замену неядерных данных позже.

В операционных системах, совместимых с POSIX, например, основанных на ядрах Linux и BSD, для облегчения блокировки был предоставлен набор функций, таких как mlock (), munlock (), mlockall () и т. Д.Физическая память в большинстве систем может быть дорогостоящей, поэтому вежливое и корректное приложение будет запрашивать блокировку как можно меньшего объема памяти. В большинстве случаев заблокированная память будет охватывать область, содержащую страницы и памяти. В процессорах серии x86 размер страницы составляет четыре килобайта. Это означает, что вся заблокированная память фактически будет заблокирована в размере, кратном четырем килобайтам.

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

После успешного завершения этой функции у пользователя теперь есть зашифрованный текст (или открытый текст в зависимости от направления) и тег CCM.

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *