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

Управление и мониторинг областью подкачки в Linux

img

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

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

Что такое область подкачки и как она используется.

Область подкачки (swap space) – это дисковое пространство, которое действует как расширение памяти. Он используется, когда физическая память (ОЗУ) системы заполнена и системе требуется больше ресурсов памяти. Это называется «swap», потому что система перемещает некоторые неактивные страницы в памяти в область подкачки, чтобы можно было разместить больше данных в ОЗУ. Другими словами, это позволяет освободить оперативную память в загруженной системе.

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

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

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

Вместе RAM и swap называются «виртуальной памятью».

Какой объем swap space необходим?

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

Рис. 1 Swap space Ubuntu

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

Читайте также:  Linux and hardware requirements

Чтобы узнать, может ли ваша система перейти в спящий режим, выполните команду:

$ which pm-hibernate /usr/sbin/pm-hibernate

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

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

Используйте команду swapon —show , чтобы просмотреть область подкачки в вашей системе.

Рис. 2 Определение размера области подкачки

Еще одна полезная команда — это команда free , которая отображает как размер области подкачки, так и использование памяти. При использовании параметра -m результаты отображаются в МБ, а не в КБ.

Рис. 3 Использование команды Free

Команда sar сообщает об использовании области подкачки

Рис. 4 Использование команды sar

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

Вы также можете просмотреть раздел подкачки с помощью такой команды:

Рис. 5 Применение команды lsblk

Когда необходима область подкачки?

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

Создание файла подкачки.

Если вам нужно создать файл подкачки в системе Linux, используйте команду:

Рис. 6 Создание файла подкачки в системе Linux

После создания файла измените права доступа к нему, запустите команду mkswap и используйте команду swapon -a , чтобы сделать его доступным, и команду swapon —show , чтобы убедиться, что он запущен.

Рис. 7 Изменение прав доступа к файлу подкачки

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

Источник

Как в Linux Mint и Ubuntu увеличить и раздел подкачки. Как в Linux создать файл подкачки Swap

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

Файл подкачки — это определённое место на постоянном хранилище (например, на жёстком диске), куда на время сбрасываются данные, которые не умещаются в оперативную память. То есть это возможность увеличить количество оперативной памяти без покупки модулей ОЗУ. Правда, такая «виртуальная» оперативная память работает медленнее.

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

Как можно увидеть, в системе присутствует файл подкачки размером 2 Гигабайта, что, предположим, недостаточно.

Отключаем и удаляем этот файл подкачки следующими командами:

sudo swapoff -a sudo rm -f /swapfile

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

Для создания файла подкачки размером 8G (измените значение по вашему желанию) выполните команду:

sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile

Откройте системный монитор, чтобы убедиться, что система видит файл подкачки:

Читайте также:  What is reverse shell in linux

Либо это можно сделать командой:

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

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

Как в Linux Mint и Ubuntu удалить файл подкачки

Для полного удаления файла подкачки выполните команды:

sudo swapoff -a sudo rm -f /swapfile

Затем откройте файл /etc/fstab:

/swapfile none swap defaults 0 0

Ошибка «fallocate: fallocate failed: Текстовый файл занят»

Если вы столкнулись с ошибкой:

fallocate: fallocate failed: Текстовый файл занят

Это означает, что вы хотите создать файл подкачки, но файл с таким именем уже существует и всё ещё используется. На английском ошибка выглядит так: fallocate: fallocate failed: Text file busy.

Для его отключения и удаления выполните команды:

sudo swapoff -a sudo rm -f /swapfile

Управление файлами подкачки в других Linux

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

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

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

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

Стресс-тестирование системы в сценарии исчерпания всей оперативной памяти: Как проверить использование файла подкачки в Linux

Связанные статьи:

Рекомендуемые статьи:

15 Комментарии

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

При запуске GIMP появляются такие сообщения;»Невозможно открыть тестовый файл подкачки.Чтобы избежать потери данных, проверьте в настройках расположение файла подкачки и права на него. (сейчас «/home/val/.gimp-2.8″). Невозможно открыть файл подкачки. GIMP использовал всю доступную оперативную память и не может использовать файл подкачки. Некоторые части ваших изображений могут оказаться поврежденными. Сохраните файлы под другими именами, перезапустите GIMP и проверьте путь к файлу подкачки в параметрах программы.»
Куда копать, что изменить, ОС LM 19,2 x64

  1. Закончилась оперативная память во время работы GIMP и, видимо, системный файл подкачки тоже закончился, если он есть
  2. Закончилось место на диске, либо неправильно выставлены права на файлы подкачки самой программы GIMP, которые она хранит на диске.

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

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

Если на диске действительно закончилось место, то:

Читайте также:  Параметр загрузки ядра linux

б) укажите другую папку подкачки GIMP, для этого в меню GIMP перейдите в Правка → Параметры → Каталоги. Там установите значения для «Папка для временных файлов» и «Папка для подкачки»:

Если даже это невозможно, то в разделе «Системные ресурсы», уменьшите значения для «Максимальная память для отмены», «Размер кэша», а для «Сжатие файла подкачки» выберите «Лучшее сжатие»:

На одном из скриншотов видно, что не удаётся создать файл gimprc, поскольку отказано в доступе. Проверьте, существует ли папка ~/.gimp-2.8/ и какие у неё права доступа:

Правильно ли я понимаю, что ваша домашняя папка это /home/val, а имя пользователя val? То есть всё дело в правах доступа на папку ~/.gimp-2.8/ — или у вас нет прав на эту папку, либо нет самой этой папки или что-то похожее. Можно попробовать указать в качестве временного каталога и каталога подкачки какую-нибудь папку, на которую у вас точно есть права доступа.

Папка существует, права есть… Нет времени разбираться с проблемой (срочно нужно обработать десяток фотографий), сейчас переустановлю систему, быстрей получится. Спасибо за участие! С наступащим НГ, успехов, благополучия!

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

После перезагрузки изменения должны сохраняться. Обратите внимание, что информация о файле подкачки хранится в файле /etc/fstab, но в данной инструкции мы НЕ редактируем этот файл (не добавляем информацию о файле подкачки) по той причине, что в Linux Mint и Ubuntu эта запись уже есть. Данная инструкция, кстати, называется «Как в Linux Mint и Ubuntu увеличить и раздел подкачки» и предназначена для этих двух дистрибутивов. Возможно, у вас другой дистрибутив и просто нужно добавить запись в файл /etc/fstab чтобы автоматически использовался файл подкачки. О том, как это сделать, можете посмотреть в статье «Как в Kali Linux создать или увеличить файл подкачки (Swap)».

На вашем скрине и у меня на практике после данных действий файл подкачки не задействуется. там так и видно, что кол-во задействованного места — 0. В чем причина и как её решить?

Приветствую! Файл подкачки будет задействован когда закончится физическая память. На моём скрине видно, что задействовано только 14 процентов физической памяти. По этой причине файл подкачки в момент снятия скрина просто не нужен. У вас точно израсходована физическая память? Установите stress-ng и запустите что-нибудь такое:

stress-ng --vm-bytes $(awk '/MemAvailable/' < /proc/meminfo)k --vm-keep -m 1

И понаблюдайте за расходом памяти — увидите, как начнёт использоваться файл подкачки.

yuriy@Aspire-5742G:~$ sudo chmod 600 /swapfile
yuriy@Aspire-5742G:~$ mkswap /swapfile
mkswap: невозможно открыть /swapfile: Отказано в доступе Здравсвуйте!! А что делать дальше?

Источник

Оцените статью
Adblock
detector