Когда-то я тоже был обычным эникейщиком, который ходил и включал мониторы, когда пользователь паниковал что у него комп не включается. Но в своё время мне это надоело, и я пошёл дальше.
admin
09-02-2018 19:30
5 мин на чтение
3 480
0
На заре Linux мы измеряли оперативную память в мегабайтах. Тогда ее хватало на запуск всего нескольких приложений. Чтобы поддерживать систему в рабочем состоянии, необходим был файл подкачки [swap].
Но зачем он теперь, когда на новых компьютерах ОЗУ хоть отбавляй? Дело в том, что раздел подкачки очень пригодится в тех редких случаях, когда памяти все же будет мало.
По умолчанию в Ubuntu вместо раздела по умолчанию используется файл подкачки. Рекомендуется на него отводить либо 2% свободного места на диске, либо 2 ГБ, в зависимости от того, что меньше. Учтите, что раздел подкачки вдвое больше размера вашей оперативной памяти; в моем случае это дважды по 4 ГБ, то есть 8 ГБ. Это значит, что я сберегу 6 ГБ дискового пространства.
Создать новый файл подкачки легче, чем создать новый раздел или изменить его объем. При чистой установке Ubuntu 17.04 установщик создаст файл подкачки, если вы специально не попросите создать раздел. С другой стороны, во время обновления используется ваш текущий раздел подкачки.
Что же остается пользователям, желающим обновиться? Пользоваться старой системой они не хотят, но не хотят и целиком ее переустанавливать. Решение есть, и это не так сложно, хотя рекомендуется соблюдать осторожность; поэтому позаботьтесь припасти диск восстановления. Если у вас не Ubuntu, не расстраиваетесь. Процедура достаточно проста и применима к другим дистрибутивам.
Создать файл подкачки можно командой fallocate, либо dd. Сохранить его надо в корневом каталоге. Быстрее всего это делается с fallocate, но она использует действующую файловую систему, так что не с каждой будет работать хорошо. Зато для ext4 она подходит:
$ sudo fallocate -l 2G /swapfile
Данной командой создаем файл подкачки с именем swapfile размером 2 ГБ.
С dd данная процедура займет чуть больше времени, но этот способ более надежен:
$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=2147483648
Файл подкачки должен быть надежно защищен. Его используют все программы, так что там могут содержаться важные данные. Право доступа к нему может иметь только суперпользователь. Далее убедитесь, что права доступа и принадлежность правильно настроены:
$ sudo chown root:root /swapfile
Инициализируйте файл как файл подкачки:
Проверьте, что ваш текущий файл подкачки имеет приоритет -1, то есть что приоритет не назначен:
Чтобы убедиться, что система использует новый файл подкачки, при запуске файла подкачки используйте параметр задания приоритета. Пространство подкачки с наименьшим приоритетом выключится быстрее.
Ваш текущий раздел подкачки будет отключен (установлен в -1) по умолчанию:
$ sudo swapon -p 10 /swapfile
Проверьте, как используется подкачка: файл заполняется не сразу. Ядро хранит много памяти в кэше и на жестком диске. Наконец вы получите следующее:
Увидев, что система использует ваш файл подкачки, вы можете отключить swap (можно использовать swapoff -a) для своего раздела. В идеале ваш старый раздел подкачки должен быть пустым, но это необязательно:
Команда swapoff способна выйти из строя из-за ошибки ядра, без каких-либо видимых системных эффектов, поэтому проверьте, исчез ли раздел из списка:
Вся процедура может выполнятся на работающей системе, изменения будут актуальны только для текущего сеанса. Далее мы настроим систему так, чтобы это делалось при загрузке.
Чтобы использовать файл подкачки, надо сделать так, чтобы система запускала его при загрузке. Простейший способ сделать это — добавить строку в файл fstab, например, так:
Вы можете определить приоритет файла, если у вас несколько файлов на разных носителях. Например, можно использовать для второго файла подкачки старый более медленный диск:
/swapfile_1 none swap defaults,pri=100 0 0
/swapfile_2 none swap defaults,pri=10 0 0
Система использует swapfile_1 чаще, чем swapfile_2, и было бы полезно, если бы swapfile_2 находился на другом диске. Вам также потребуется удалить раздел подкачки из того же файла. Но fstab — более старый инструмент, и в большинстве дистрибутивов systemd-fstabgenerator во время загрузки преобразует его в файл подкачки.
Теперь может показаться, что раздел подкачки в системе не используется, но посмотрите, что делает systemd-gpt-auto-generator. Он находит все разделы подкачки и создает соответствующий файл в начале процесса загрузки. Если вы хотите загрузить систему один или два раза, прежде чем восстанавливать раздел подкачки, не нужны другие меры. Чтобы получить раздел подкачки, но не использовать его, надо его замаскировать:
Теперь попробуйте систему некоторое время и убедитесь, что места для подкачки достаточно. Решив вернуть наше дисковое пространство, мы удалим раздел. Для этого подойдет GParted, fdisk или подобное. В systemd операция может закончиться неудачей.
Оперативной памяти много не бывает. Виртуальная память предназначена для рационального распределения оперативной памяти между пользовательскими и системными процессами. Проще говоря, чтобы не расходовать оперативную память на хранение статичной информации, выделяют некоторую область жесткого диска для ее размещения.
В системе Линукс для размещения виртуальной памяти можно выделить отдельный раздел жесткого диска или использовать обычный файл. Линукс позволяет комбинировать эти два способа. По умолчанию в Unix системах применяется SWAP раздел. Производительность отдельного SWAP раздела жесткого диска выше, чем производительность виртуальной памяти размещенной в файле. Единственным минусом SWAP раздела является сложность его редактирования.
Если Вы до эксплуатации сервера знаете какой емкости нужна SWAP область, то обязательно используйте отдельный раздел жесткого диска. Если нагрузка на SWAP область пока неизвестна, то лучше разместить виртуальную память в файле, после чего определив потребности системы, создать раздел нужного размера.
Система Linux позволяет одновременно использовать несколько SWAP разделов и SWAP файлов. Это позволяет более гибко подойти к вопросу расширения виртуальной памяти в случае нехватке размера SWAP области на сервере. Чаще всего, на работающем сервере с существующим SWAP разделом выясняется, что текущего размера виртуальной памяти уже не хватает. Целесообразнее добавить тестовый файл подкачки для определения нагрузки на SWAP область, а уже после увеличить размер раздела.
Создание, редактирование и удаление любых разделов из под загруженной в данный момент операционной системы не безопасно, поэтому создание SWAP раздела, вместо SWAP файла, делается только с использованием LiveCD. Статья на тему безопасного редактирования разделов будет написана в будущее время.
В системе Windows виртуальная память размещена только в отдельном файле – pagefile.sys (для Windows 2000 и выше) и win386.swp (для Windows 9x).
Для любой операционной системы, если используется спящий режим (Hebernation), размер виртуальной памяти следует делать не меньше объема оперативной памяти. В общих случаях наиболее эффективно использовать размер виртуальной памяти кратный 4 (1024 Мб, 2048 Мб и т.д.), так как ядро системы производит обмен страницами с памятью по 4 Кб в каждой. Размер виртуальной памяти легче посчитать от объема оперативной памяти *2, *3. Область подкачки стоит размещать на самом быстром жестком диске ближе к началу.
Хочу обратить Ваше внимани, что приведенные ниже инструкции касается только изменения размера ФАЙЛА ВИРТУАЛЬНОЙ ПАМЯТИ , а не изменение размера отдельной директории SWAP .
Ниже приведены пошаговые инструкции, которые позволят создать, изменить и удалить файл SWAP .
[user@localhost user]#sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K
1048576+0 записей считано
1048576+0 записей написано
скопировано 1073741824 байта (1,1 GB), 137,509 c, 7,8 MB/c
[user@localhost user]# sudo mkswap /home/swap-tmp
Устанавливается пространство для свопинга версии 1, размер = 1073737 кБ
без метки, UUID =54c60583-e61a-483a-a15c-2f1be966db85
Для просмотра результата просматриваем все объекты, которые используются для размещения виртуальной памяти:
Если Вы раньше добавляли строчку в fstab, для автоматической загрузки SWAP файла при старте операционной системы, то следует ее удалить. Выводим файл /etc/fstab для редактирования на экран:
Действия по редактирование объема SWAP файла сводятся к удалению уже созданного файла SWAP и созданию нового файла требуемого размера. То есть нужно сначало сделать пункт 3, а после пункт 2.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Adblock