Parus16.ru

Парус №16
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Управление памятью в Linux. Физическая и Виртуальная память

Управление памятью в Linux. Физическая и Виртуальная память

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

Что такое физическая память?

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

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

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

Виртуальная память (или «логическая память») — это метод управления памятью, осуществляемый операционной системой, который позволяет программам задействовать значительно больше памяти, чем фактически установлено в компьютере. Например, если объем физической памяти компьютера составляет 4 ГБ, а виртуальной 16 ГБ, то программе может быть доступен объем виртуальной памяти вплоть до 16 ГБ.

Физическая память vs. Виртуальная память

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

Физическая память Виртуальная память
Непосредственно установленная в компьютере оперативная память.Метод управления памятью, с помощью которого для программ создается иллюзия наличия в системе (физической) памяти, гораздо больше реально установленной.
Работает быстрее.Работает медленнее.
Ограничена размером чипа ОЗУ.Ограничена размером жесткого диска.
Может напрямую обращаться к процессору.Не может напрямую обращаться к процессору.
Использует swapping.Использует paging.

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

#1: Тип памяти:

Физическая память является фактической памятью.

Виртуальная память является логической памятью.

#2: Скорость:

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

#3: Размер:

Физическая память ограничена размером чипа ОЗУ.

Читайте так же:
Главная страница контакта вход

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

#4: Процессор:

Физическая память может напрямую обращаться к процессору, в то время как виртуальная память — нет.

#5: Методы, лежащие в основе:

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

Виртуальная память использует paging. Paging — это метод выделения памяти, при котором разным несмежным блокам памяти назначается фиксированный размер. Размер обычно составляет 4 КБ. Paging всегда выполняется между активными страницами (pages).

Команды для управления памятью в Linux

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

Файл /proc/meminfo

Файл /proc/meminfo содержит всю информацию, связанную с памятью. Для просмотра данного файла используйте команду cat:

Эта команда выводит множество параметров, связанных с памятью. Чтобы получить информацию о физической памяти из файла /proc/meminfo, используйте:

$ grep MemTotal /proc/meminfo

Чтобы получить информацию о виртуальной памяти из файла /proc/meminfo, используйте:

$ grep VmallocTotal /proc/meminfo

Команда top

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

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

Команда free

Команда free отображает объем свободной и используемой памяти в системе.

Значения для каждого поля указаны в кибибайтах (КиБ).

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

Команда vmstat

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

Как использовать Ram Disk в Windows

Вы можете установить Ram диск на свой ПК с Windows, чтобы улучшить производительность, обслуживание и конфиденциальность на устройстве.

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

Читайте так же:
Можно ли оставлять диск в ps4

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

Совет : ознакомьтесь с нашим обзором бесплатных программ на RAM-диске для Windows, чтобы узнать, какие из них доступны. Я буду использовать SoftPerfekt RAM Disk, который вы можете скачать со сторонних сайтов, таких как Majorgeeks.

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

Установка RAM-диска

Самое первое, что вам нужно сделать, это установить RAM-диск на ваш компьютер. Скачайте и установите SoftPerfekt Ram Disk и запустите программу позже.

Настройка очень проста:

  1. Нажмите на значок плюс, чтобы создать новый RAM-диск.
  2. Назначьте ОЗУ на диск. Вам необходимо ввести сумму в мегабайтах, например, 4096 за 4 гигабайта.
  3. Выберите букву диска для диска, например, диск z:
  4. Измените файловую систему на NTFS.
  5. Добавьте корневые папки, например Temp и Firefox, в поле «Создать папки».
  6. Переключитесь на расширенный и добавьте метку диска.
  7. Нажмите OK, чтобы завершить создание.

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

Настройка Windows для использования с RAM-диском

Теперь, когда диск RAM создан, вы можете настроить Windows на использование диска. Одна вещь, которую вы, возможно, захотите рассмотреть, — это перемещение временных папок на RAM-диск, чтобы они автоматически очищались при перезапуске.

  1. Используйте Windows-Pause, чтобы открыть апплет панели управления системой. Если на клавиатуре нет клавиши «Пауза», коснитесь клавиши Windows, введите «Панель управления» и выберите результат. Перейдите в Система и безопасность> Система.
  2. Выберите Дополнительные параметры системы на боковой панели, когда появится системный апплет.
  3. Выберите Переменные среды в окне Свойства системы.
  4. Найдите переменные TEMP и TMP в полях пользовательских переменных.
  5. Дважды щелкните каждую запись и замените значение по умолчанию (путь к временным файлам) на путь, указывающий на диск RAM, например, z: temp

Настройка сторонних программ для использования с RAM-диском

Вы можете также настроить сторонние программы на использование RAM-диска, если сторонние программы позволяют вам перемещать каталог кеша.

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

Хотя перемещение каталогов кэширования на RAM-диск, вероятно, является целью номер один для использования дисков на основе памяти, это полезно и другими способами. Вот три:

  1. Вы можете переместить каталоги, которые обрабатывают данные, на диск RAM. Если вы конвертируете видеофайлы, аудиофайлы или что-то визуализируете, вы можете рассмотреть возможность перемещения обработки на диск RAM, чтобы ускорить процесс.
  2. Хотите протестировать программу? Установите это или поместите это в RAM-диск, чтобы сделать это. Установка оставляет некоторые следы файла в системе, например, в установленных программах, но сама программа пропадает при следующей перезагрузке.
  3. Поместите игры и другие приложения, которые выигрывают от более быстрого времени загрузки на диск. Некоторые RAM-диски поддерживают хранение постоянных файлов на диске, которые вам нужны, когда вы хотите играть в игры с диска. Обратите внимание, что многие игры довольно большие, и вам нужно много оперативной памяти, чтобы полностью переместить их на диск.
Читайте так же:
Можно ли файл пдф перевести в эксель

Заключительные слова

Создание и использование RAM-диска — это простой процесс. Хотя вам необходимо один раз установить и настроить диск, он запускается автоматически после начальной настройки.

Как увеличить виртуальную память в Windows 10,8,7

Файл подкачки используется в Windows для увеличения виртуальной памяти. Т.е., память, доступная для приложений виндовс, складывается из реальной оперативной памяти и размера файла подкачки. Например, если в компьютере установлено 4Гб оперативной памяти, и файл подкачки 4Гб, то в Windows будет доступно 8Гб виртуальной памяти.

Работает это таким образом, что неиспользуемые на текущий момент данные сбрасываются в страничные файлы «C:pagefile.sys» и «C:swapfile.sys» (используется в Windows 10 для приложений Metro). По умолчанию, размер файла подкачки устанавливается автоматически на выбор системы, но это можно изменить.

Настройки файла подкачки

Для Windows 7 и Windows 10/8 действия практически ничем не отличаются. Кликаем по иконке «Мой компьютер» на рабочем столе правой кнопкой и выбираем «Свойства» , либо нажимаем комбинацию клавиш «Win + Pause». Альтернативный вариант через «Панель управления -> Система и безопасность -> Система» . В виндовс 7 откроются «Свойства системы» , а в Win 10 кликаем слева на «Дополнительные параметры системы»

дополнительные параметры системы

На вкладке «Дополнительно» в блоке «Быстродействие» кликаем «Параметры»

быстродействие

Далее, переходим на вкладку «Дополнительно», в блоке «Виртуальная память» нажимаем «Изменить»

параметры быстродействия

Чтобы увеличить файл подкачки, в окне «Виртуальная память»:

  • Снимаем галку «Автоматически выбирать объём файла подкачки»
  • По умолчанию, напротив диска «C» написано «По выбору системы», значит файл «pagefile.sys» размещается на диске «C». Кликаем по нему и переводим переключатель на «Указать размер»
  • Вводим минимальный (исходный) и максимальный размер файла виртуальной памяти
  • Нажимаем «Задать» и «OK»
  • Перезагружаем ноутбук

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

Стоит отметить, что Windows 10 ругается, если минимальный размер «pagefile.sys» меньше 400Мб, но это влияет только на запись отладочной информации в случае системных сбоев. Также, в Windows 7 и x86 системах может быть ограничение на максимальный размер в 4Гб.

Чтобы вернуть автоматическое определение файла подкачки, просто переведите переключатель на «Размер по выбору системы». Рекомендуется указать размер файла = объём оперативной памяти * 1-1,5.

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

Читайте так же:
Зарезервировано системой можно ли форматировать

Системный диск «C:» и так загружен системными запросами, поэтому рекомендую перенести файл «pagefile.sys» на другой диск (тем самым освободив свободное место, если оно кончается). Чтобы перенести файл подкачки на другой диск, например «D:»:

  • Выключаем файл подкачки на диске «C:»
  • нажимаем «Задать»
  • Включаем файл подкачки на диске «D:» с автоматическим или вручную указанным размером
  • нажимаем «Задать»

Однако, если у вас SSD или вообще винчестер не поделен на разделы, то перенос не имеет смысла. Также хочу отметить, что если HDD поделён пополам, например 500Гб разделён на 2 диска по 250Гб, то можно и не переносить файл.

Это связано с тем, что диск работает медленнее от начала к концу. Т.е., диск «D:» медленнее раза в 1,5, чем «C:». А вот если бы разделение было «50Гб+450Гб», то начало диска «D:» почти такое же быстрое как и «C:», при условии что диск Д не забит и файл «pagefile.sys» попадёт ближе к началу. Лучше не забивайте себе голову, если запутано получилось

Всегда нужно переносить подкачку на второй физический HDD, если он есть.

Файл подкачки и быстродействие компьютера

Виртуальная память НИКАК не увеличивает быстродействие системы, её расширение нужно для того, чтобы программы или игры просто смогли РАБОТАТЬ на компьютере с недостаточным объёмом ОЗУ.

Вот как это работает:

  • Вы запускаете приложение №1, для которого не хватает памяти
  • Все временно ненужные процессы №2 сбрасываются на диск в файл подкачки, освобождая тем самым оперативную память, ваша программа №1 работает
  • Вдруг, система вызывает процесс №2 из виртуальной памяти, оперативка при этом «забита»
  • Теперь нужно найти другой «ненужный» процесс №3, среда исполнения которого записывается на диск, а с диска считывается в оперативную память процесс №2

Как вы понимаете, операции записи-чтения с жесткого диска в сотни раз медленнее ОЗУ (на то она и «оперативная» ) и ни о каком увеличении скорости работы речи не идёт. Разве что когда память кончается, и её негде взять, то система начинает подвисать. Когда установлен SSD, а не HDD диск, то файл подкачки работает в разы быстрее, конечно.

Использовать жесткий диск как оперативную память

Ускоряем MySQL используя RAM-диск

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

Зачем использовать оперативную память

RAM (оперативное запоминающее устройство) намного быстрее для чтения и записи, чем для других типов хранилищ на компьютере, таких как жесткий диск / ssd, где MySQL по умолчанию хранит базу данных. Перемещение базы данных в оперативную память может значительно увеличить скорость ввода и вывода операций с базой данных.

Читайте так же:
Можно ли подключить блютуз колонку к телевизору

Недостатки работы с MySQL используя RAM-диск

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

Перенос баз данных в оперативную память

Теперь, когда вы знаете преимущества и недостатки перемещения баз данных MySQL на RAM-диск, я расскажу вам, как этого добиться.

Сначала сделайте резервную копию всех баз данных. Скопируем его в /var/lib/mysql.bak

sudo cp -pRL /var/lib/mysql /var/lib/mysql.bak

Создайте каталог для RAM-диска.

sudo mkdir /tmp/ramdisk

Установите его. Я назначил рамдиску размер 2ГБ. Вам решать, сколько места вы хотите, просто убедитесь, что оно может вместить все данные, которые вы будете записывать в базу данных.

sudo mount -t tmpfs -o size=2G tmpfs /tmp/ramdisk/

Переместите базы данных MySQL на RAM-диск.

sudo mv /var/lib/mysql /tmp/ramdisk/mysql

Создайте символическую ссылку на RAM-диск.

sudo ln -s /tmp/ramdisk/mysql /var/lib/mysql

Измените принадлежность на MySQL, чтобы разрешить доступ.

sudo chown mysql:mysql /tmp/ramdisk/mysql

Перезапустите MySQL, чтобы изменения вступили в силу.

sudo /etc/init.d/mysql restart

Теперь мы закончили! После перемещения баз данных на RAM-диск выполнение миграции и сеялки заняло всего минуту по сравнению с почти часом при использовании жесткого диска.

Восстановление баз данных

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

Удалите ранее созданную символическую ссылку на mysql ramdisk.

sudo rm -rf /var/lib/mysql

Скопируйте и восстановите базы данных из резервной копии.

sudo cp -pRL /var/lib/mysql.bak /var/lib/mysql

Скрипты для удобства

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

Вот сценарий восстановления базы данных

#!/bin/bash
# Script for restoring backed up database that was moved to the RAM Disk.
if [ $(uname) = «Linux» ]; then
# Delete detached symlink
[ -L /var/lib/mysql ] && sudo rm -rf /var/lib/mysql
# Restore backups
[ -d /var/lib/mysql.bak ] && sudo cp -pRL /var/lib/mysql.bak /var/lib/mysql
else
echo «Unsupported platform.»
fi

Вот сценарий для переноса базы данных в оперативную память

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector