Я настраиваю и собираю новое ядро 3.0. Одним из положительных моментов, которые я планировал использовать в течение некоторого времени (путем исправлений), который был объединен с 3.0, является zram.
Можно ли установить как hdd swap, так и zram swap, чтобы zram использовался первым, и только фактические страницы помещаются в настоящий swap?
linux
swap
zram
virtual-memory
Мацей Печотка
источник
источник
max_comp_streams
кажется, в1
соответствии с документацией . Я не проверял, существует ли этот параметр в 2011 году, но кажется, что он лучше, чем несколько файлов подкачки.zram-config
под Ubuntu (и, вероятно, с Debian), я заметил, что по умолчанию конфигурация равна 1 на ядро или поток (2 на старом двухъядерном E2140 и 4 на i3-3220)swapon
есть-p
переключатель, который устанавливает приоритет. Я могу настроить:Или в / etc / fstab:
РЕДАКТИРОВАТЬ: Просто для полного решения - такая строка может быть полезна, как правило udev:
источник
Выберите, сколько устройств Zram вы хотите, передав
к параметрам ядра или непосредственно к модулю (без zram.). Значение по умолчанию - 1. zram сможет использовать столько процессоров, сколько вы создаете.
Подготовьте устройство zram0, установите размер 1 ГБ.
В качестве альтернативы вы можете сделать это по правилу udev. Создать своп на zram0
и включите его с более высоким приоритетом, чем другие устройства подкачки
источник
zram0
иzram1
до значения 10 на ядрах Intel T9300 коробки 2, он бросает мне:swapon: /dev/zram0 or 1: swapon failed: Device or resource busy
.По некоторым причинам, по-видимому, существует много неверных толкований https://www.kernel.org/doc/Documentation/blockdev/zram.txt.
В нем четко говорится:
Но существует распространенный, постоянный городской миф о том, что максимальное количество потоков равно 1.
Это явно не правда.
Две ОС, где Zram доказала свою эффективность, Chrome OS и Android - это одно устройство. Также они настраивают
page-cluster
:- из документации ядра для
/proc/sys/vm/*
Так что используйте,
echo "0" > /proc/sys/vm/page-cluster
чтобы заставить одну страницу.Похоже, многое происходит из zram_config пакета debian / ubuntu, который по некоторым причинам, похоже, очень мало коррелирует с документами ядра для zram и породил серию китайских шепотов, которые по сути могут быть совершенно неверными.
С помощью файла подкачки вы создаете диск подкачки для каждого ядра? Может быть, это может ответить на ваши вопросы. Также, чтобы поддержать это, Googles Chrome OS & Android, которые успешно работают с вышеуказанным кластером страниц, поскольку он не соответствует диску, так что задержка может быть улучшена для отдельных устройств.
Также для системного администратора, что важно фактическое использование памяти или использование памяти? Большинство примеров показывают создание через disk_size и полностью игнорируют mem_limit. disk_size = несжатый размер виртуальной машины. mem_limit = фактический предел памяти.
Это как-то делает выбор параметра disk_size запутанным, поскольку его виртуальный максимальный размер зависит от соотношения comp_alg и накладных расходов 0,1% от размера диска, когда он не используется, и действительно является приблизительным значением mem_limit * (приблизительно 2 - 4) относительно экономичного оптимизм.
zram_config даже не проверяет предыдущее использование сервиса и перезаписывает, в то время как простая проверка класса zram sys, как показано ниже.
источник
Когда вы включаете zram, он автоматически будет иметь приоритет.
Для Ubuntu 16.04:
/usr/bin/init-zram-swapping
Вы можете отредактировать этот файл (сначала сделайте резервную копию), чтобы опустить реальный оперативный памяти, я изменил строку mem на это:
источник