Что такое виртуальная память в Linux? Как этим управлять
Виртуальная память помогает операционной системе выполнять свои процессы без прерываний. Вот как вы можете управлять виртуальной памятью в Linux.
Виртуальная память — это одна из тех вещей, которые лежат в основе современных операционных систем, но обычно вы не задумываетесь об этом, если у вас нет проблем. Дистрибутивы Linux просят вас настроить пространство виртуальной памяти (разделы подкачки) во время установки, но большинство новичков не знают, насколько это полезно.
Вот все, что вам нужно знать о виртуальной памяти в Linux.
Что такое виртуальная память?
Виртуальная память — это способ представления вашей памяти, который абстрагируется от физической памяти на вашем компьютере. Она использует как вашу оперативную память, так и ваше пространство для хранения, будь то на традиционном жестком диске или SSD.
В Linux это делается на уровне ядра и аппаратного обеспечения. В процессоре есть аппаратное обеспечение, называемое модулем управления памятью (MMU), которое преобразует адреса физической памяти в виртуальные. Эти адреса не зависят от того, где они физически находятся на компьютере. Эти адресные пространства известны как «страницы», и они могут находиться в оперативной памяти или на вашем жестком диске или SSD. ОС рассматривает эти адреса как один большой пул памяти, известный как «адресное пространство».
Виртуальная память использует тот факт, что не вся память, которая используется в теории, используется постоянно. Программы в памяти разбиваются на страницы, а части, которые ядро считает ненужными, «выгружаются» или перемещаются на жесткий диск. Когда они необходимы, их можно «поменять местами» или вернуть обратно в оперативную память.
Пространство, используемое для виртуальной памяти на диске, известно как «резервное хранилище» или «пространство подкачки». В мире Windows она обычно реализуется в виде файла, известного как «файл подкачки». Это также возможно сделать в Linux, но гораздо чаще используется выделенный раздел диска.
Файлы подкачки в Linux обычно зарезервированы для минимальных или встроенных систем, и последние обычно работают без виртуальной памяти полностью, потому что встроенные ОС должны быть небольшими.
Преимущество виртуальной памяти заключается в том, что можно запускать большие программы, используя больше памяти, чем физическая оперативная память вашего компьютера, подобно тому, как кредитная карта позволяет совершать крупные покупки на сумму, превышающую сумму, имеющуюся на вашем банковском счете. Как и кредитная карта, виртуальная память полезна, когда она вам нужна, но вы не хотите чрезмерно ее использовать.
Виртуальная память также позволяет разработчикам создавать приложения, не зная, как организована память компьютера.
Исторически основным недостатком виртуальной памяти было то, что жесткие диски работали медленнее, чем оперативная память. Если на компьютере недостаточно оперативной памяти, система может бесконечно загружать и удалять страницы, процесс, известный как «загрузка». Это не такая проблема на современных ПК с большим объемом оперативной памяти и более быстрыми твердотельными накопителями, вытесняющими механические жесткие диски, но об этом все равно нужно знать.
Разделы подкачки Linux
Как упоминалось ранее, обычным методом настройки виртуальной памяти в Linux является использование выделенного раздела диска. Утилита установки изучит ваше оборудование и предложит схему разделения, которая включает раздел подкачки.
Вы также можете добавить разделы подкачки после установки. Если вы хотите добавить новый раздел на существующий диск, вам придется использовать инструмент неразрушающего разбиения на разделы, такой как GParted. Убедитесь, что вы выбрали «Linux swap» в качестве файловой системы для вашего раздела.
После того, как вы создали свой раздел, используйте команду mkswap для форматирования вашего раздела.
Теперь вам нужно отредактировать /etc/fstab как root, чтобы добавить раздел подкачки. Эта строка, добавленная в файл, настроит раздел подкачки, который будет смонтирован во время загрузки:
Теперь используйте команду swapon , чтобы активировать новое пространство подкачки, где sdX — это имя вашего раздела подкачки:
Использование файлов подкачки в Linux
Легко настроить файл подкачки в Linux с помощью командной строки. Возможно, вы захотите сделать это, если не хотите переделывать свой диск или редактировать /etc/fstab . Один из методов — использовать fallocate :
Например, для создания файла подкачки объемом 2 ГБ:
В качестве альтернативы вы можете использовать команду dd для создания файла подкачки.