Виртуальная память — это одна из тех вещей, которые лежат в основе современных ОС, но обычно вы не задумываетесь об этом, если у вас нет проблем. Дистрибутивы Linux просят вас настроить пространство виртуальной памяти (разделы подкачки) во время установки, но большинство новичков не знают, насколько это полезно.

Вот все, что вам нужно знать о виртуальной памяти в Linux.

Что такое виртуальная память?

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

В Linux это делается на уровне ядра и оборудования. ЦП имеет аппаратную часть, называемую блоком управления памятью (MMU), которая преобразует адреса физической памяти в виртуальные. Эти адреса не зависят от того, где они физически находятся на машине. Эти адресные пространства известны как «страницы» и могут находиться в оперативной памяти, на жестком диске или SSD. ОС видит эти адреса как один большой пул памяти, известный как «адресное пространство».

instagram viewer

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

Пространство, используемое для виртуальной памяти на диске, известно как «резервное хранилище» или «пространство подкачки». В мире Windows это обычно реализуется в виде файла, известного как «файл подкачки». Это также возможно сделать в Linux, но это гораздо более распространено. к использовать выделенный раздел диска.

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

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

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

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

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

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

Вы также можете добавить разделы подкачки после установки. Если вы хотите добавить новый раздел на существующий диск, вам нужно использовать инструмент неразрушающего разделения как GParted. Убедитесь, что вы выбрали «Linux swap» в качестве файловой системы для вашего раздела.

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

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

sudo mkswap /dev/sdX

Теперь вам нужно отредактировать /etc/fstab как root, чтобы добавить раздел подкачки. Эта строка, добавленная в файл, установит раздел подкачки, который будет монтироваться во время загрузки:

/dev/sdX нет своп по умолчанию 0 0

Теперь используйте свопон Команда для активации вашего нового пространства подкачки, где sdX — это имя вашего раздела подкачки:

sudo swapon /dev/sdX

Использование файлов подкачки в Linux

Это легко настроить файл подкачки в Linux с помощью командной строки. Возможно, вы захотите сделать это, если не хотите беспокоиться о переразметке диска или редактировании /etc/fstab. Один из методов заключается в использовании ошибаться:

Например, чтобы создать файл подкачки размером 2 ГБ:

sudo fallocate -l 2G /путь/к/файлу подкачки

В качестве альтернативы вы можете использовать команду dd для создания файла подкачки.

судо дд если=/dev/нуль из=/path/в/файл подкачки bs=1024 количество =2048

Убедитесь, что вы правильно используете команду dd, так как неправильное указание входного и выходного файлов может привести к потере данных. Fallocate является предпочтительным методом по этой причине.

В /dev/zero устройство — это специальное устройство, которое выводит «0». Что делает эта команда dd, так это создает пустой двухгигабайтный блочный файл, используя 1024-килобайтные блоки, подходящие для использования в качестве пространства подкачки.

Затем вы можете использовать mkswap а также свопон команды с файлом подкачки, как и с разделом подкачки:

sudo mkswap /путь/к/файлу подкачки
sudo swapon /путь/к/файлу подкачки

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

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

Сколько места подкачки?

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

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

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

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

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

Самый простой способ исправить это — просто добавить больше оперативной памяти на ваш компьютер. Если это невозможно, вы можете попробовать настроить «подкачку» ядра Linux.

Число подкачки определяет, насколько ядро ​​погружается в виртуальную память. Он варьируется от 0 до 100. Установка его на 0 означает, что Linux вообще не будет меняться, а на 100 он будет меняться при каждой возможности. По умолчанию в большинстве систем 60.

Чтобы временно изменить swappiness, используйте команду sysctl:

sudo sysctl vm.swappiness=20

«20» в этой команде будет номером подкачки до перезагрузки. Чтобы изменить его навсегда, отредактируйте /etc/sysctl.conf файл как root и поместите строку «vm.swappiness=[номер подкачки]», где «[номер подкачки]» — это номер подкачки, который вы хотите. Это будет временное решение, пока вы не сможете установить больше оперативной памяти.

Виртуальная память обеспечивает бесперебойную работу вашей системы Linux

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

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