Seap lib что это
Перейти к содержимому

Seap lib что это

  • автор:

Swap (Русский)

Состояние перевода: На этой странице представлен перевод статьи Swap. Дата последней синхронизации: 15 июня 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

  • fstab (Русский)
  • Управление питанием/Ждущий и спящий режимы#Гибернация
  • Zswap
  • Swap on video ram
  • ZFS#Swap volume
  • dm-crypt/Swap encryption

Эта страница дает ознакомление с пространством подкачки и подкачкой страниц в GNU/Linux. Охватывает создание, активацию файлов и разделов подкачки.

Linux делит свою физическую RAM (оперативную память) на кусочки памяти, называемые страницами. Подкачка (swapping) это процесс, когда страницы памяти копируются на предварительно сконфигурированное пространство на жестком диске, называемое пространством подкачки, чтобы освободить эту страницу из памяти. Суммарный размер оперативной памяти и пространства подкачки это количество доступной виртуальной памяти.

Поддержка подкачки обеспечивается ядром Linux и утилитами в пользовательском пространстве из util-linux пакета.

Пространство подкачки

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

Иногда стоит включать Swap в зависимости от установленной оперативной памяти и количества требований для запуска желаемых программ. Если количество оперативной памяти меньше требуемого, тогда стоит включить подкачку. Это позволяет избежать состояния нехватки памяти (OOM), при котором механизм ядра Linux, OOM Killer, будет автоматически пытаться освободить память, убивая процессы. Чтобы увеличить количество виртуальной памяти до требуемого уровня, добавьте необходимую разницу как пространство подкачки. Например, если программа требует 7,5 GB памяти для запуска, а у вас установлено 4 GB оперативной памяти, добавьте разницу 3,5 GB как подкачку. В будущем добавляйте больше пространства к подкачке, учитывая требования. Это вопрос личных предпочтений если вы считаете, что программы должны быть убиты, вместо включения подкачки. Самый большой недостаток в подкачке это снижение производительности, см. раздел #Производительность

Для проверки статуса подкачки, используйте:

$ swapon --show
$ free -h

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

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

Раздел подкачки

Раздел подкачки может быть создан различными GNU/Linux утилитами разметки. Разделы подкачки обычно обозначаются как тип 82 . Хотя есть возможность использовать разные типы как подкачку, рекомендуется использовать тип 82 , в большинстве случаев systemd, будет автоматически определять его и монтировать (см. ниже)

Для установки раздела как область Linux подкачки, можно использовать mkswap . Например:

# mkswap /dev/sdxy 

Важно: Все данные на указанном разделе будут утеряны.

Для подключения устройства как подкачку:

# swapon /dev/sdxy 

Чтобы подключить этот раздел подкачки при загрузке, добавьте запись в fstab:

UUID= none swap defaults 0 0

где может быть получен из команды:

lsblk -no UUID /dev/sdxy 

Совет: Предпочтительно использовать UUID и LABEL, чем имена устройств полученные от ядра (/dev/sd*), т.к. порядок устройств может измениться в будущем. Смотри fstab.

  • Эта fstab запись необязательна если раздел подкачки находится на устройстве, использующий GPT разметку, см. следующий подраздел.
  • Если используется SSD с поддержкой TRIM, учтите использование defaults,discard в fstab строке подключения подкачки. Если вручную активировать подкачку с помощью swapon, используйте параметр -d / —discard , который делает тоже самое. Подробности смотри в swapon(8) .

Важно: Включение discard в RAID установке с использованием mdadm, приведёт к блокировке системы при загрузке и во время выполнения, если использовать swapon.

Активация используя systemd

Активация разделов подкачки в systemd базируется на двух различных механизмах. Оба исполняются в /usr/lib/systemd/system-generators . Генераторы запускаются при старте системы и создают нативные systemd юниты для монтирования. Первый systemd-fstab-generator , читает fstab, чтобы генерировать юниты, включая юнит для подкачки. Второй systemd-gpt-auto-generator , осматривает корневой диск, чтобы генерировать юниты. Это операция проходит только на GPT дисках и может идентифицировать разделы подкачки по их тип коду 82 .

Отключение подкачки

Чтобы деактивировать определенное пространство подкачки:

# swapoff /dev/sdxy 

Также можно использовать -a ключ, чтобы деактивировать все пространства подкачки.

С тех пор, как systemd управляет подкачкой, она вновь будет активирована при старте системы, для долговременного отключения автоматической активации найденных пространств подкачки, выполните systemctl —type swap , чтобы найти связанные со .swap юниты и замаскируйте (systemctl mask юнит) их.

Файл подкачки

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

Важно: Btrfs не поддерживает файлы подкачки. Несоблюдение этого предупреждения, может стать результатом разрушения файловой системы. Пока что, файл подкачки может быть использован в Btrfs, если смонтирован через loop-устройство, тогда будет сильно уменьшена производительность подкачки.

Вручную

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

Использовать под суперпользователем fallocate , чтобы создать файл подкачки размером на свой выбор (M = Mebibytes, G = Gibibytes). Например создание 512 MiB файла подкачки:

# fallocate -l 512M /swapfile

Примечание: fallocate может вызвать проблемы с некоторыми файловыми системами, такими как: F2FS или XFS.[1]. Как вариант, используйте dd, наиболее надёжный, но медленный.

# dd if=/dev/zero of=/swapfile bs=1M count=512

Установите права доступа (всеми читаемый файл подкачки это огромная локальная уязвимость)

# chmod 600 /swapfile

После создания файла нужного размера, форматируйте его в подкачку:

# mkswap /swapfile

Активируйте файл подкачки:

# swapon /swapfile

В завершении, отредактируйте fstab, добавив запись для файла подкачки:

/etc/fstab
/swapfile none swap defaults 0 0

Примечание: Не забудьте добавить discard, если у вас SSD с поддержкой TRIM

# swapon --discard /swapfile
/etc/fstab
/swapfile none swap defaults,discard 0 0
Удаление файла подкачки

Чтобы удалить файл подкачки, сначала нужно отключить подкачку, а затем файл может быть удален:

# swapoff -a # rm -f /swapfile

В завершении, удалите соответствующую запись из /etc/fstab .

Автоматически

systemd-swap

Установить systemd-swap AUR пакет. Установить swapfc_enabled=1 в Swap File Chunked разделе файла /etc/systemd/swap.conf . Start/enable systemd-swap сервис. Посетить страницу авторов на GitHub для получения подробностей и установить рекомендуемую конфигурацию.

Примечание: Если журнал продолжает показывать следующее предупреждение systemd-swap[..]: WARN: swapFC: ENOSPC и файл подкачки не создаётся, вы должны установить параметр swapfc_force_preallocated=1 в /etc/systemd/swap.conf .

Подкачка с USB устройства

Благодаря модульности, предлагаемой Linux, мы можем иметь множество разделов подкачки на различных устройствах. Если у вас полностью заполнен жесткий диск, то можно использовать USB устройство как временный раздел подкачки. Однако, этот метод имеет серьёзные недостатки:

  • USB устройство медленнее чем жесткий диск
  • Flash память имеет ограниченное количество циклов записи. Использование его как раздела подкачки, может быстро убить его.

Чтобы добавить USB устройство как подкачку, сначала необходимо разметить USB флешку для подкачки как описано в секции #Раздел подкачки.

Далее откройте /etc/fstab и добавьте

pri=0

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

Данная инструкция будет работать и для других устройств хранения, таких как SD карты и т.д.

Шифрование подкачки

Производительность

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

Значения подкачки можно настроить, чтобы помочь производительности:

Swappiness

Swappiness sysctl параметр представляющий частоту использования пространства подкачки. Swappiness может иметь значение от 0 до 100, значение по умолчанию = 60. Низкое значение заставляет ядро избегать подкачки, высокое значение позволяет ядру использовать подкачку наперёд. Использование низкого значения на достаточном количестве памяти, улучшает отзывчивость на многих системах.

Чтобы проверить текущее значение swappiness:

$ cat /sys/fs/cgroup/memory/memory.swappiness
$ cat /proc/sys/vm/swappiness

Примечание: Т.к. /proc менее организован и сохраняется только для обратной совместимости, вместо него предпочтительнее использовать /sys .

Чтобы временно установить значение swappiness:

# sysctl vm.swappiness=10

Чтобы постоянно установить значение swappiness, отредактируйте (создайте) конфигурационный файл sysctl

/etc/sysctl.d/99-sysctl.conf
vm.swappiness=10

Чтобы проверить и больше узнать, почему оно так работает, посмотрите эту статью.

VFS cache pressure

Другой sysctl параметр, который действует на производительность подкачки это vm.vfs_cache_pressure , он контролирует склонность ядра к применению памяти, которая используется для кэширования VFS caches, напротив кэширования страниц и подкачки. Увеличение этого значения увеличивает коэффициент с которым VFS caches применяется[2] [устаревшая ссылка 2020-08-06 ⓘ] . Для подробной информации смотри документацию ядра Linux.

Приоритет

Если у вас больше одного файла или раздела подкачки, вы должны учитывать присвоение приоритетного значения (от 0 до 32767) для каждой области подкачки. Система будет использовать области подкачки с высоким приоритетом, перед использованием областей с низким приоритетом. Например, если у вас быстрый диск ( /dev/sda ) и медленный ( /dev/sdb ), назначьте высокий приоритет для подкачки расположенной на быстром устройстве. Приоритет может быть назначен в fstab как pri параметр:

/dev/sda1 none swap defaults,pri=100 0 0 /dev/sdb2 none swap defaults,pri=10 0 0

Или как параметр в swapon —priority

# swapon --priority 100 /dev/sda1

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

Использование zswap или zram

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

Чередование

Нет необходимости использовать RAID для повышения производительности подкачки. Ядро самостоятельно может чередовать подкачку на нескольких устройствах, если вы присвоите им одинаковый приоритет в /etc/fstab . Для подробной информации смотри The Software-RAID HOWTO.

Retrieved from «https://wiki.archlinux.org/index.php?title=Swap_(Русский)&oldid=787252»

Почему линукс использует swap-файл, часть 2

Первая часть маленького «срывания покрова» о работе подсистемы виртуальной памяти, связи механизмов mmap, разделяемых библиотек и кэшей вызвало такое бурное обсуждение, что я не смог удержаться от того, чтобы не продолжить исследование на практике

Поэтому, сегодня мы сделаем… Крошечную лабораторную работу. В виде крошечной же программы на C, которую мы напишем, скомпилируем и проверим в деле — со свапом и без свапа.

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

А вызов кода из этой «библиотеки» мы просто эмулируем чтением из такого mmap-нутого файла.

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

И, чтобы не писать лишнего кода, мы определим две константы, которые определят размер «сегмента кода» и общий размер оперативной памяти:

  • MEM_GBYTES — размер оперативной памяти для теста
  • LIB_GBYTES — размер «кода»
  • DATA_GBYTES = MEM_GBYTES — 2
  • DATA_GBYTES + LIB_GBYTES = MEM_GBYTES + 1
  • MEM_GBYTES = 16
  • DATA_GBYTES = 14 — значит «данных» будет 14GB, то есть «памяти достаточно»
  • Swap size = 16GB

Текст программы

#include #include #include #include #include #include #define GB 1073741824l #define MEM_SIZE 16 #define LIB_GBYTES 3 #define DATA_GBYTES (MEM_SIZE - 2) long random_read(char * code_ptr, char * data_ptr, size_t size) < long rbt = 0; for (unsigned long i=0 ; ireturn rbt; > int main() < size_t libsize = LIB_GBYTES * GB; size_t datasize = DATA_GBYTES * GB; int fd; char * dataptr; char * libptr; srandom(256); if ((fd = open("library.bin", O_RDONLY)) < 0) < printf("Required library.bin of size %ld\n", libsize); return 1; >if ((libptr = mmap(NULL, libsize, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED) < printf("Failed build libptr due %d\n", errno); return 1; >if ((dataptr = mmap(NULL, datasize, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0)) == MAP_FAILED) < printf("Failed build dataptr due %d\n", errno); return 1; >printf("Preparing test . \n"); memset(dataptr, 0, datasize); printf("Doing test . \n"); unsigned long chunk_size = GB; unsigned long chunk_count = (DATA_GBYTES - 3) * GB / chunk_size; for (unsigned long chunk=0 ; chunk < chunk_count; chunk++) < printf("Iteration %d of %d\n", 1 + chunk, chunk_count); random_read(libptr, dataptr + (chunk * chunk_size), libsize); >return 0; > 

Тест без использования swap

Запрещаем swap указав vm.swappines=0 и запускаем тест

$ time ./swapdemo Preparing test . Killed real 0m6,279s user 0m0,459s sys 0m5,791s

Что произошло? Значение swappiness=0 отключило свап — анонимные страницы в него больше не вытесняются, то есть данные всегда в памяти. Проблема в том, что оставшихся 2GB не хватило для работающих в фоне Chrome и VSCode, и OOM-killer убил тестовую программу. А заодно нехватка памяти похоронила вкладку Chrome, в которой я писал эту статью. И мне это не понравилось — пусть даже автоматическое сохранение сработало. Я не люблю когда мои данные «хоронят».

Включенный swap

Выставляем vm_swappines = 60 (по умолчанию)
Запускаем тест:

$ time ./swapdemo Preparing test . Doing test . Iteration 1 of 11 Iteration 2 of 11 Iteration 3 of 11 Iteration 4 of 11 Iteration 5 of 11 Iteration 6 of 11 Iteration 7 of 11 Iteration 8 of 11 Iteration 9 of 11 Iteration 10 of 11 Iteration 11 of 11 real 1m55,291s user 0m2,692s sys 0m20,626s 
Tasks: 298 total, 2 running, 296 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,6 us, 3,1 sy, 0,0 ni, 85,7 id, 10,1 wa, 0,5 hi, 0,0 si, 0,0 st MiB Mem : 15670,0 total, 156,0 free, 577,5 used, 14936,5 buff/cache MiB Swap: 16384,0 total, 12292,5 free, 4091,5 used. 3079,1 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10393 viking 20 0 17,0g 14,2g 14,2g D 17,3 93,0 0:18.78 swapdemo 136 root 20 0 0 0 0 S 9,6 0,0 4:35.68 kswapd0 

Плохой-плохой линукс. Он использует swap почти на 4 гигабайт хотя у него 14 гигабайт кэша и 3 гигабайта доступно! У линукса неправильные настройки! Плохой outlingo, плохие старые админы, они ничего не понимают, они сказали включить swap и теперь у меня из-за них система свапится и плохо работает. Надо отключить swap как советуют намного более молодые и перспективные интернет-эксперты, ведь они точно знают что делать!

Ну … Пусть будет так. Давайте максимально отключим свап по советам экспертов?

Тест почти без swap

Выставляем vm_swappines = 1

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

Я верю Крису Дауну, поскольку считаю что он отличный инженер и знает что говорит, когда объясняет что swap-файл позволяет системе лучше работать. Поэтому, ожидая, что, «что-то» пойдет «не так» и возможно система будет ужасно неэффективно работать, я заранее подстраховался и запустил тестовую программу, лимитировав её таймером, чтобы увидеть хотя бы ее аварийное завершение.

Сначала рассмотрим вывод top:

Tasks: 302 total, 1 running, 301 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,2 us, 4,7 sy, 0,0 ni, 84,6 id, 10,0 wa, 0,4 hi, 0,0 si, 0,0 st MiB Mem : 15670,0 total, 162,8 free, 1077,0 used, 14430,2 buff/cache MiB Swap: 20480,0 total, 18164,6 free, 2315,4 used. 690,5 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6127 viking 20 0 17,0g 13,5g 13,5g D 20,2 87,9 0:10.24 swapdemo 136 root 20 0 0 0 0 S 17,2 0,0 2:15.50 kswapd0 

Ура?! Свап используется всего лишь на 2.5 гигабайт, что почти 2 в два раза меньше чем в тесте со включенным swap (и swappiness=60). Свапа используется меньше. Свободной памяти тоже меньше. И наверное, мы можем смело отдать победу молодым экспертам. Но вот что странно — наша программа так и не смогла завершить даже 1 (ОДНОЙ!) итерации за 2 (ДВЕ!) минуты:

$ < sleep 120 ; killall swapdemo ; >& [1] 6121 $ time ./swapdemo Preparing test … Doing test … Iteration 1 of 11 [1]+ Done < sleep 120; killall swapdemo; >Terminated real 1m58,791s user 0m0,871s sys 0m23,998s

Повторим — программа не смогла завершить 1 итерацию за 2 минуты хотя в предыдущем тесте она сделала 11 итераций за 2 минуты — то есть с почти отключенным свапом программа работает более чем в 10(!) раз медленнее.

Но есть один плюс — ни одной вкладки Chrome не пострадало. И это хорошо.

Тест с полным отключением swap

Но может быть, просто «задавить» свап через swappiness недостаточно, и его надо полностью отключать? Естественно, что надо проверить и эту теорию. Мы сюда тесты пришли провести, или что?

Это идеальный случай:

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

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

Tasks: 217 total, 1 running, 216 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,0 us, 2,2 sy, 0,0 ni, 85,2 id, 12,6 wa, 0,0 hi, 0,0 si, 0,0 st MiB Mem : 15670,0 total, 175,2 free, 331,6 used, 15163,2 buff/cache MiB Swap: 0,0 total, 0,0 free, 0,0 used. 711,2 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 136 root 20 0 0 0 0 S 12,5 0,0 3:22.56 kswapd0 7430 viking 20 0 17,0g 14,5g 14,5g D 6,2 94,8 0:14.94 swapdemo 

Почему это происходит

Объяснение очень простое — “сегмент кода” который мы подключаем через mmap (libptr) лежит в кэше. Поэтому когда мы запрещаем (или почти запрещаем) swap тем или иным способом, не важно каким — физическим ли отключением swap, или через vm.swappines=0|1 — это всегда заканчивается одним и тем же сценарием — вымыванием mmap’нутого файла из кэша и последующей его загрузкой с диска. А библиотеки загружаются именно через mmap, и чтобы убедиться в этом, достаточно просто сделать ls -l /proc//map_files:

$ ls -l /proc/8253/map_files/ | head -n 10 total 0 lr-------- 1 viking viking 64 фев 7 12:58 556799983000-55679998e000 -> /usr/libexec/gnome-session-binary lr-------- 1 viking viking 64 фев 7 12:58 55679998e000-5567999af000 -> /usr/libexec/gnome-session-binary lr-------- 1 viking viking 64 фев 7 12:58 5567999af000-5567999bf000 -> /usr/libexec/gnome-session-binary lr-------- 1 viking viking 64 фев 7 12:58 5567999c0000-5567999c4000 -> /usr/libexec/gnome-session-binary lr-------- 1 viking viking 64 фев 7 12:58 5567999c4000-5567999c5000 -> /usr/libexec/gnome-session-binary lr-------- 1 viking viking 64 фев 7 12:58 7fb22a033000-7fb22a062000 -> /usr/share/glib-2.0/schemas/gschemas.compiled lr-------- 1 viking viking 64 фев 7 12:58 7fb22b064000-7fb238594000 -> /usr/lib/locale/locale-archive lr-------- 1 viking viking 64 фев 7 12:58 7fb238594000-7fb2385a7000 -> /usr/lib64/gvfs/libgvfscommon.so lr-------- 1 viking viking 64 фев 7 12:58 7fb2385a7000-7fb2385c3000 -> /usr/lib64/gvfs/libgvfscommon.so 

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

Заключение

Активное использование методики распространения программ «всё свое везу с собой» (flatpak, snap, docker image) приводит к тому, что количество кода, который подключается через mmap, существенно увеличивается.

Это может привести к тому, что использование «экстремальных оптимизаций», связанных с настройкой/отключением swap, может привести к совершенно неожиданным эффектам, потому, что swap-файл — это механизм оптимизации подсистемы виртуальной памяти в условиях memory pressure, а available memory это совсем не «неиспользуемая память», а сумма размеров кэша и свободной памяти.

Отключая swap-файл, вы не «убираете неправильный вариант», а «не оставляете вариантов»

Следует очень осторожно интерпретировать данные о потреблении памтяи процессом — VSS и RSS. Они отображают «текущее состояние» а не «оптимальное состояние».

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

P.S.: В обсуждениях регулярно задаются вопросы «а вот если включить сжатие памяти через zram. ». Мне стало интересно, и я провел соответствующие тесты: если включить zram и swap, как это сделано по умолчанию в Fedora, то время работы ускоряется примерно до 1 минуты.

Но причина этого то, что страницы с нулями очень хорошо сжимаются, поэтому на самом деле данные уезжают не в swap, а хранятся в сжатом виде в оперативной памяти. Если заполнить сегмент данных случайными плохосжимаемыми данными, картина станет не такой эффектной и время работы теста опять же увеличится до 2 минут, что сравнимо (и даже чуть хуже), чем у «честного» swap-файла.

  • Настройка Linux
  • Серверное администрирование
  • Разработка под Linux

Red-hat

Ведущий поставщик Linux-решений. Компания занимается разработкой, поставкой и поддержкой Linux-решений с 1993 г. и таким образом является старейшей крупной компанией, работающей в этой области. Red Hat является единственной крупной компанией, которая работает исключительно с открытым ПО, вся деятельность компании с момента ее создания связана исключительно с ним.

Партнерская программа

Новая партнерская программа:

  • Дает преимущества партнерам, имеющим несколько специализаций.
  • Ориентирована на ключевые запросы рынка, позволяет создать партнеру собственное knowhow.
  • Обеспечивает доступ к базе знаний по различным продуктам и развитие комплексной экспертизы.

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

Требования программы

READY
ADVANCED
PREMIER
1x Sales Accreditation
2x Sales Accreditations
4x Sales Accreditations
2x Sales Engineer Accreditations
4x Sales Engineer Accreditations
2x Delivery Accreditations
4x Delivery Accreditations
1x SEAP Training
1x SEAP Training
1x Customer Reference
2x Customer References
Partnership Fee
1x Business Plan
Partnership Fee

Sales — специалист по продажам.

Sales Engineer — технический пресейл.

Delivery — инженер, отвечающий за внедрение решений.

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

READY
ADVANCED
PREMIER
LIMITED ACCESS
FULL ACCESS
FULL ACCESS
LIMITED ACCESS
FULL ACCESS
FULL ACCESS
2 ENGAGEMENTS
4 ENGAGEMENTS
IF AVAILABLE

* NFR для Ready предоставляются только по запросу.

** Premier партнер имеющий аккредитация по 3rd продуктам получает 12% за регистрацию сделки.

*** Обязательно проведение 1 маркетингового мероприятия в год.

Продукты JBoss Middleware

JBoss ENTERPRISE SOA PLATFORM

Строим умное интегрированное предприятие

В сегодняшней непрерывно меняющейся деловой среде успех компании зависит от ее умения быстро и гибко реагировать на постоянно возникающие новые требования. В этих условиях ИТ-организации должны уметь развиваться и повышать прибыльность в условиях сокращения бюджета и нехватки ресурсов. Построение умного интегрированного предприятия является ключом к повышению конкурентоспособности. Чтобы снизить затраты на ведение бизнеса, предприятия пытаются устранить задержки, свести к минимуму разногласия, использовать интеллектуальную систему принятия деловых решений и повысить доступность и удобство использования корпоративных данных. Сервис-ориентированные архитектуры (service-oriented architectures, SOA) позволяют предприятиям ускорить бизнес-процессы, улучшая качество обслуживания и увеличивая степень удовлетворенности клиентов. SOA делает сервисы более гибкими, подходящими для многократного использования и требующими меньше времени на перестройку и расширение. Это помогает предприятию быстрее достигать поставленных целей и повышает его динамичность.

Платформа JBoss Enterprise на базе SOA от Red Hat — это гибкая, основанная на стандартах платформа, построенная на сервисной шине предприятия (Enterprise Service Bus, ESB) следующего поколения. Она объединяет приложения, SOA-сервисы и производственные события, позволяя автоматизировать бизнес-процессы. Такая автоматизация при использовании SOA-платформы JBoss Enterprise достигается за счет интеграции и обеспечения эффективного взаимодействия различных компонентов приложений и сервисов, работающих в среде JBoss Enterprise Middleware, других платформ Java EE, .NET и прочих приложений, которые предоставляют данные как стандартные веб-сервисы.

Преимущества
  • Устранение из бизнес-процессов моментов, требующих ручного управления.
  • Ускорение бизнес-процессов и уменьшение числа ошибок.
  • Скорейшее достижение окупаемости.
  • Повышение прибыльности за счет быстрого развертывания решения на платформе SOA.
  • Повышение эффективности бизнеса.
  • Повышение качества обслуживания клиентов.
Возможности
  • Интеграция сервисов, обработка производственных событий и эффективная автоматизация бизнес-процессов.
  • Объединение ИТ-ресурсов, данных, сервисов и приложений в цепочку добавленной стоимости Использование компонентов с открытым кодом по отдельности, вместе или в сочетании со сторонними компонентами для лучшего соответствия изменяющимся потребностям.
  • Применение существующих, современных и новейших методик интеграции для значительного улучшения скорости выполнения и повышения качества бизнес-процессов.
  • Отсутствие привязки к поставщику и снижение суммарной стоимости владения.
SOA-платформа JBOSS ENTERPRISE: объединяя лучшее из открытого и копроративного программного обеспечения

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

SOA-платформа JBoss Enterprise одновременно открывает доступ к инновационным технологиям и позволяет защитить имеющиеся инвестиции. Гибкость и инновационный потенциал ПО с открытым кодом сочетаются в ней с надежностью и безопасностью программных продуктов уровня предприятия. В единую подписку включены сервисная шина предприятия JBoss ESB, модули языка выполнения бизнес-процессов (BPEL) и обработки рабочих потоков (workflow), модуль бизнес-правил, платформа приложений JBoss Enterprise и SOA-платформа JBoss Enterprise. Объединение сервис-ориентированной архитектуры с архитектурой на основе архитектуры управляемой событиями (event-driven architecture, EDA) при обеспечении эффективного взаимодействия процессов помогает автоматизировать бизнес-процессы и повысить производительность работы предприятия.

Компоненты SOA-платформы JBOSS ENTERPRISE
  • JBoss ESB: Сервисная шина предприятия служит основой для интеграции, реализуя прием и маршрутизацию событий и сообщений, преобразование данных, а также предоставляя реестр сервисов SOA на базе стандарта UDDI версии 3.
  • Организация взаимодействия: Язык описания бизнес-процессов (BPEL) позволяет реализовать эффективное управление сервисами. jBPM предоставляет возможности управления рабочими процессами.
  • Модуль правил (Drools Expert): обеспечивает расширенные возможности маршрутизации на основе содержимого, а также выполнение бизнес-правил и сервисы управления правилами.
  • Платформа приложений JBoss Enterprise: предоставляет инфраструктурную поддержку для сервисной шины предприятия, реализуя обмен сообщениями JSM, стек веб-сервисов и кластеризацию.
  • Среда разработки JBoss Developer Studio 4: включает все необходимое для разработки, тестирования и развертывания многофункциональных корпоративных приложений, служб SOA, бизнес-процессов и правил.
JBOSS OPERATIONS NETWORK: управление промежуточным по JBOSS ENTERPRISE MIDDLEWARE

JBoss Operations Network представляет собой единую интегрированную платформу, которая обеспечивает централизованное управление системами и упрощает разработку, тестирование, развертывание и мониторинг промежуточного ПО JBoss Enterprise Middleware. С помощью консоли JBoss Operations Network можно подробно анализировать состояние приложений и сервисов SOA, определять «узкие места» системы, настраивать пороговые значения и обработку оповещенийбы своевременно устранять возникающие проблемы до того, как они повлияют на работу пользователей системы.

JBOSS ENTERPRISE BRMS

Открытый исходный код и готовность для предприятий

Программы с открытым исходным кодом всегда занимали значительную долю рынка, предлагая модель открытого совместного развития с участием широкого спектра разработчиков и организаций. Сообщество JBoss Drools служит примером применения именно такой модели при разработке ПО для управления бизнес-правилами. Характерное для сообщества сочетание простоты доступа и удобства использования, а также отсутствие лицензионных сборов, помогали командам разработчиков быстро запускать в работу свои программные продукты. Модель разработки с открытым исходным кодом также позволила проекту Drools развиваться намного активнее, так как новые функции добавлялись быстрее, чем это было бы возможно в закрытой проприетарной среде. Можно утверждать энергия и динамизм сообщества Drools являются непревзойденными в отрасли. Однако, фокусируясь только на краткосрочных выгодах от использования продуктов с открытым исходным кодом и игнорируя потенциальные долгосрочные риски и расходы из-за развертывания в производстве неподдерживаемых проектов, вряд ли можно рассчитывать на серьезное внимание корпоративных клиентов. Drools включает в себя ряд различных проектов, в том числе Drools Expert, Drools Fusion и Guvnor. Использование компонентов из проектов сообщества возлагает бремя коммерческого внедрения, интеграции, тестирования и сертификации на разработчика и, в некоторых случаях, на конечного пользователя. Поэтому, какой бы мощной ни была технология Drools, ИТ-организации все равно могут потерять значительные суммы из-за непредвиденных простоев и затрат на дополнительные часы работы разработчиков (которые потребуются для самостоятельной поддержки и обслуживания приложений для управления бизнес-правилами). Для производственных приложений такого сорта простои и убытки недопустимы. Так как же наилучшим способом объединить инновации и динамизм, предлагаемые сообществом Drools, с тестированием, сертификацией и обслуживанием, необходимыми для стабильного и надежного использования программ с открытым кодом в области промежуточного ПО? Для многих организаций ответом стала платформа JBoss Enterprise BRMS — подписка, предлагающая ряд преимуществ, в том числе исправления, обновления, поддержку на основе SLA, политику многолетнего обслуживания и программу Red Hat Open Source Assurance. С JBoss BRMS вы можете уверенно развертывать производственные приложения с гарантией их стабильности, поддержки и обслуживания в течение длительного времени. Это позволяет снизить риски как на стадии разработки при выходе на рынок, так и на стадии эксплуатации после внедрения системы в производство.

От открытого проекта — к корпоративному продукту

В основе Drools и JBoss BRMS лежат одинаковые технологии. Однако после того, как сообщество Drools выпускает новую версию, работа над ней прекращается и сообщество сосредотачивается на следующей версии. Это хорошо в плане долгосрочного развития системы, которая должна отвечать постоянно меняющимся требованиям рынка, так как гарантирует предоставление важных новых функций без оглядки поддержку продукта. Но это также значит новые возможности и функции могут и не попасть в следующую версию открытого проекта, и обратная совместимость не гарантируется. Также нет никакой уверенности новые возможности и функции из версии сообщества когда-либо попадут в корпоративную платформу. Может случиться версия сообщества станет тупиковой ветвью развития с выпуском следующей версии.

JBoss BRMS включает в себя ядро Drools, но также предоставляет долговременную поддержку, исправления и обновления, а также гарантию обратной совместимости на протяжении всего жизненного цикла каждого основного выпуска платформы. К тому же основанные на Eclipse инструменты разработчика (JBoss Developer Studio) предоставляют единую интегрированную среду разработки для всех платформ JBoss, давая сотрудникам отделов ИТ единый, простой в использовании интерфейс для управления разработкой, тестированием, развертыванием и мониторингом решений на основе правил.

Резюме

Решение JBoss Enterprise Middleware предоставляет пользователю преимущества открытых проектов без потенциальных рисков и затрат, связанных с развертыванием неподдерживаемого ПО в производственной среде. Корпоративная подписка поддержки Red Hat гарантирует развернутые системы со временем не потеряют своей ценности.

И ИТ-организации, и независимые поставщики ПО одинаково выигрывают от применения корпоративной версии Drools — JBoss Enterprise BRMS — при развертывании системы бизнес-правил в производстве приложений. JBoss BRMS сочетает в себе мощь открытого ПО с надежностью подписки Red Hat придает уверенности как техническому персоналу, так и менеджменту компании.

Продукты Red Hat Enterprise Linux (RHEL)

Red Hat ® Enterprise Linux ® — высокопроизводительная операционная система, играющая исключительную роль в ИТ-среде на протяжении уже почти 10 лет. Как наиболее надежная ИТ-платформа, Red Hat Enterprise Linux используется для развертывания критически важных приложений на мировых биржах, в финансовых учреждениях, ведущих телекоммуникационных компаниях, анимационных студиях. Кроме того, он обеспечивает работу веб-сайтов одних из самых популярных розничных брендов.

Red Hat Enterprise Linux:

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

Разработанный для плавного перехода к новой модели дата-центров, Red Hat Enterprise Linux включает в себя поддержку основных аппаратных архитектур, гипервизоров и провайдеров облачных услуг делает развертывание как в физических, так и в различных виртуальных средах предсказуемым и безопасным. Улучшенные средства управления и новые возможности в этом релизе позволяют администраторам адаптировать среду приложений для тогобы эффективно отслеживать и управлять вычислительными ресурсами и безопасностью.

Дополнения для RHEL

Дополнения (Add-Ons) к Red Hat Enterprise Linux позволяют вам снабдить свою среду приложений расширенными возможностями, максимально соответствующими текущим потребностям вашей вычислительной среды.

Доступность
  • Дополнение High Availability: Обеспечивает инфраструктуру для повышения доступности приложений.
  • Дополнение Resilient Storage: Предоставляет поддержку кэш-когерентных кластерных файловых систем и включает в себя дополнение High Availability.
  • Дополнение Load Balancer: Поддерживает балансировку нагрузки для TCP- и UDP- взаимодействий.
Масштабируемость
  • Дополнение Scalable File System: Предоставляет поддержку файловых систем размером до 100 терабайт.
  • Дополнение High Performance Network: Обеспечивает поддержку технологии удаленного прямого доступа к памяти (Remote direct memory access, RDMA) по 10гигабитному Ethernet, также известную как RoCE (RDMA over Converged Ethernet).
Управление
  • Дополнение Smart Management: Предоставляет возможности развертывания и управления с помощью Red Hat Network.
Управление жизненным циклом
  • Дополнение Extended Update Support: Продлевает срок поддержки обновлений до 18 месяцев и обеспечивает перекрывающую поддержку выпусков дает корпоративным клиентам больше гибкости.
Преимущества RHEL

Используя Red Hat Enterprise Linux, вы получаете:

  • Нужные вам приложения Тысячи сертифицированных приложений от независимых разработчиков программного обеспечения. www.redhat.com/partners/isv
  • Возможность выбора аппаратной платформы Сотни сертифицированных аппаратных систем и периферийных устройств от ведущих производителей оригинального оборудования (OEM) и независимых поставщиков оборудования (IHVs), охватывающие множество процессорных архитектур. Поддержка новейших аппаратных архитектур и стандартов. www.redhat.com/partners/hardwarepartners
  • Ведущую операционную систему Великолепная производительность, безопасность, масштабируемость и доступность, подтвержденные независимыми отраслевыми тестами.
  • Стабильную платформу, рассчитанную на длительное использование Каждый основной выпуск предоставляет стабильные прикладные интерфейсы и семилетнюю поддержку с возможностью продления жизненного цикла до 10 лет.
  • Совместимость Семейство продуктов, обеспечивающих идеальную совместимость систем, развернутых на совершенно различном оборудовании: от ноутбука до центра обработки данных и мэйнфрейма, а также совместимость с существующими развертываниями на основе UNIX и Microsoft Windows.
  • Комплексное предоставление услуг Поддержка вплоть до уровня 24/7 со временем реакции в 1 час от Red Hat и некоторых ISV- и OEM-партнеров. www.redhat.com/support
  • Службу консультации Red Hat Консультации специалистов Red Hat позволят добиться максимальной экономии и общей рентабельности вложений, а также помогут вам спланировать и успешно провести в жизнь ваши инициативы в ИТ. Служба Red Hat Consulting имеет солидный послужной список, помогая клиентам получить максимальную выгоду от инвестиций в Red Hat Enterprise Linux в разнообразных и уникальных средах. www.redhat.com/consulting
  • Обучение Red Hat Компания Red Hat предлагает множество вариантов и методов обучения, сертификаций, программ сбережения средств и индивидуальных решений для получения максимальной отдачи от ваших вложений в Red Hat Enterprise Linux. www.redhat.com/training

Управление RED HAT ENTERPRISE LINUX с помощью RED HAT NETWORK SATELLITE

Чтобы получить максимальную отдачу от подписки на Red Hat Enterprise Linux, клиенты используют решение Red Hat Network Satellite для подготовки, развертывания, настройки и обновления своих систем. Red Hat Network Satellite представляет собой простую в использовании платформу, обеспечивающую возможности управления всем жизненным циклом операционных систем для малых, средних и крупных инфраструктур. Платформа предоставляет мощные средства системного администрирования, такие как управление обновлениями и конфигурациями, подготовка и мониторинг всех типов развертываний. С ее помощью можно управлять любыми системами Red Hat Enterprise Linux, как физическими, так и виртуальными, через веб-интерфейс. Red Hat Network Satellite обеспечивает эффективное управление Red Hat Enterprise Linux, позволяя управлять тысячей систем так же просто, как и одной. Для управления сторонними системами добавлена расширенная поддержка технологии web-based enterprise management (WBEM).

Продукты Red Hat Enterprise Virtualization (RHEV)

Red Hat Enterprise Virtualization (RHEV) — это комплексное решение для управления виртуализацией серверов и рабочих станций, а также первая платформа виртуализации уровня предприятия, построенная на открытом исходном коде. Это решение базируется на мощном гипервизоре KVM (kernel-based virtual machine) и открытой платформе управления виртуальной инфраструктурой oVirt. Оба эти проекта были начаты компанией Red Hat и позже предоставлены сообществу разработчиков открытого программного обеспечения. По сравнению с другими решениями виртуализации, RHEV является реальной стратегической альтернативой для тех организаций, которым важна меньшая суммарная стоимость владения, быстрая окупаемость вложений, ускоренное достижение безубыточности производства и отсутствие привязки к поставщику.

Red Hat Enterprise Virtualization — включает в себя Менеджер системы управления RHEV, RHEV-гипервизор и поддерживает виртуализацию серверных операционных систем. А также он обеспечивает поддержку настольных ОС, работающих в виртуальных машинах, и предоставляет функции управления гостевыми рабочими станциями.

  • Полноценное комплексное корпоративное решение по виртуализации.
  • Комбинация продвинутого гипервизора KVM и системы управления корпоративного класса.
  • Демонстрирует рекордную производительность и масштабируемость наряду с непревзойденным коэффициентом консолидации.
  • Обширный набор инструментов для управления.
  • Решение на основе открытого программного обеспечения, в разработку которого активно вовлечено сообщество разработчиков позволяет избежать привязки к поставщику.

Идеально подходит для крупномасштабной виртуализации и развертывания внутреннего облака

Red Hat Enterprise Virtualization предлагает организациям идеальную платформу для крупномасштабной виртуализации и развертывания внутреннего/частного облака. Мощный гипервизор KVM показал рекордные результаты в тестах виртуализации, а также достиг непревзойденного уровня коэффициента консолидации. Полнофункциональная корпоративная система управления позволяет пользователям централизованно и эффективно управлять их средой виртуализации — виртуальными центрами обработки данных, кластерами, узлами, гостевыми виртуальными серверами, сетью и хранилищами. Среди возможностей — высокая доступность, живая миграция, балансировка нагрузки на основе политик, управление снимками, шаблоны, технология «тонких дисков». Обеспечивая поддержку гостевых операционных систем Red Hat Enterprise Linux (32 бит и 64 бит) и Microsoft Windows (32 бит и 64 бит) вместе с паравиртуализированными драйверами сетевых и блочных устройств, Red Hat Enterprise Virtualization была создана для поддержки всей вашей ИТ-инфраструктуры.

Значительное увеличение использования производственных мощностей и адаптивности при уменьшении затрат

Путем перемещения рабочих нагрузок с физических серверов в виртуальные машины консолидация в центрах обработки данных значительно увеличивает степень использования производственных мощностей и повышает гибкость системы, одновременно уменьшая эксплуатационные расходы за счет экономии энергии и пространства. Суммарная экономия на серверном оборудовании — наиболее явная выгода, которая может привести к сокращению расходов на 45-75%. Операционные расходы также снижаются за счет уменьшения потребностей в пространстве и энергии при одновременном повышении эффективности управления серверами. На современном серверном оборудовании можно достичь лучших результатов за счет того несколько рабочих сред, запущенных на виртуальных машинах, могут более эффективно использовать мощности физического сервера. Развернуть новую систему на виртуальной машине можно намного быстрее, чем на физическом сервере. Построить высокодоступное решение и обеспечить быстрое восстановление с помощью виртуальных машин также быстрее и дешевле, чем при использовании физических серверов очень важно для обеспечения непрерывности бизнеса. При помощи планирования ресурсов и балансировки нагрузок на основе политик можно намного эффективнее оптимизировать всю виртуальную среду.

Продукты Red Hat Storage Server

Red Hat Storage Server — это передовое комплексное масштабируемое программное решение NAS для современных локальных, виртуальных и облачных сред. Оно обеспечивает глобальный доступ к данным и позволяет избавиться от разрозненных хранилищ. Red Hat Storage Server также полностью поддерживает коммерческие серверы на базе платформы x86, являющейся отраслевым стандартом.

Этот программный пакет, созданный на базе популярнейшей операционной системы Red Hat Enterprise Linux, позволяет клиентам развертывать гибкие, экономичные и высокодоступные системы хранения, не жертвуя при этом производительностью и возможностями масштабирования. Сервер Red Hat Storage Server легко развертывается на локальных аппаратных ресурсах, в общедоступных и гибридных облачных средах. Он способен справляться с серьезными нагрузками корпоративного уровня на подсистему хранилища, включая высокопроизводительные вычисления, вторичное хранение данных и доступ к мультимедийному контенту.

Решение Red Hat Storage Server используется для хранения неструктурированных данных различных типов как в файловом, так и в объектном форматах, включая:

  • файлы и папки (документы, фотографии, видео и изображения);
  • большие массивы информации (файлы журналов, данные RFID и другая генерируемая компьютерами информация).

Red Hat Storage Server for On-Premise — это простое масштабируемое решение для локальных систем на основе открытого исходного кода, которое может стать альтернативой дорогостоящей системе хранения от традиционных брендов.

  • Масштабируемость и гибкость с бесперебойным доступом. Решение Red Hat Storage Server отличается неограниченной масштабируемостью. Объем хранилища можно увеличивать и уменьшать, в то время как данные остаются постоянно доступными.
  • Простота развертывания. ISO-образ устанавливается на сервер или поддерживаемый гипервизор, например Red Hat Enterprise Virtuzlization или VMware vSphere/ESXi предельно ускоряет развертывание.
  • Высокая производительность за меньшие деньги. Red Hat Storage Server использует гибкий алгоритм хэширования для поиска данных в пуле хранилища (вычисляется хэш-сумма имени и пути файла) позволяет избавиться от стандартных «узких мест» в системе ввода-вывода и уменьшить вероятность сбоев.

Red Hat Storage Server for Public Cloud — это высокодоступное и производительное решение NAS для платформы веб-служб Amazon Web Services (AWS).

  • Единое глобальное пространство имен. Пользователи AWS могут интегрировать экземпляры Amazon Elastic Block Storage (EBS) и Amazon Elastic Compute Cloud (EC2) в среде AWS для создания высокодоступного виртуализированного пула хранения.
  • Высочайшее качество работы с Amazon EC2. Решение Red Hat Storage Server for Public Cloud для публичного облака устраняет ограничения, связанные с емкостью отдельных устройств, и сглаживает различия в производительности элементов пула, поэтому пользователи Amazon EC2 получают решение, отличающееся исключительной доступностью и производительностью.
  • Высокая доступность. Решение Red Hat Storage Server for Public Cloud для публичного облака реализует синхронную многостороннюю репликацию, а также асинхронную георепликацию. Данные синхронно зеркалируются в разных зонах доступности, а асинхронно — в разных регионах в пределах среды AWS.
  • Отсутствие необходимости в переписывании приложений. Для переноса существующих приложений POSIX в облако в них не нужно вносить никаких изменений.

SwapFaq

Swap space is the area on a hard disk. It is a part of your machine’s Virtual Memory, which is a combination of accessible physical memory (RAM) and the swap space. Swap holds memory pages that are temporarily inactive. Swap space is used when your operating system decides that it needs physical memory for active processes and the amount of available (unused) physical memory is insufficient. When this happens, inactive pages from the physical memory are then moved into the swap space, freeing up that physical memory for other uses. Note that the access time for swap is slower, depending on the speed of the hard drive. Do not consider it to be a complete replacement for the physical memory. Swap space can be a dedicated swap partition (recommended), a swap file, or a combination of swap partitions and swap file(s).

Why do I need swap?

Memory consuming programs Sometimes, a large program (like LibreOffice, Neverwinter Nights, or a video editor) make the entire system need extra memory. A significant number of the pages used by these large programs during its startup may only be used for initialization and then never used again. The system can swap out those pages and free the memory for other programs or even for the disk cache. In these cases, swap will be used to help the system handle any extra load.

Hibernation (suspend-to-disk) The hibernation feature (suspend-to-disk) writes out the contents of RAM to the swap partition before turning off the machine. Therefore, your swap partition should be at least as big as your RAM size. Although the latest versions of Ubuntu don’t support hibernation OOTB you may configure your system to allow Hibernation. In both alternatives (PM-UTILS or SYSTEMD) you may use a partition or a file.

Unforeseeable Circumstances Unforeseeable events can and will happen (a program going crazy, some action needing much more space than you thought, or any other unpredictable combination of events). In these cases, swap can give you an extra delay to figure out what happened, or to finish what you are working on.

Optimizing memory usage Since mechanical hard drives are considerably slower than RAM (SSD — Solid State Drive — storage is not as slow as physical drives, but still slower than RAM), when you need a file (be it a data file like a video, executables like Firefox, or libraries), the Linux kernel reads the file into RAM and keeps it there, so that the next time you need it, it is already in RAM and data access is much faster. The portions of RAM that accelerate disk read are called «cached memory.» You will notice that they make a huge difference in terms of responsiveness. The Linux kernel automatically moves RAM reserved by programs—but not really used—into swap, so that it can serve the better purpose of extending cached memory.

Optimizing Swap performance Because swap space uses a disk device, this can cause performance issues in any system that uses swap space significantly because the system itself may also be using the same disk device at the same time that it is required for swap operations. One way to reduce this problem is to have swap space on a different physical drive so that the competition for that resource is either reduced or eliminated.

How much swap do I need?

For less than 1GB of physical memory (RAM), it’s highly recommended that the swap space should, as a base minimum, be equal to the amount of RAM. Also, it’s recommended that the swap space is maximum twice the amount of RAM depending upon the amount of hard disk space available for the system because of diminishing returns.

For more modern systems (>1GB), your swap space should be at a minimum be equal to your physical memory (RAM) size «if you use hibernation», otherwise you need a minimum of round(sqrt(RAM)) and a maximum of twice the amount of RAM. The only downside to having more swap space than you will actually use, is the disk space you will be reserving for it.

The «diminishing returns» means that if you need more swap space than twice your RAM size, you’d better add more RAM as Hard Disk Drive (HDD) access is about 10³ slower then RAM access, so something that would take 1 second, suddenly takes more then 15 minutes! And still more than a minute on a fast Solid State Drive (SSD).

Example Scenarios

(last 3 columns denote swap space)

RAM No hibernation With Hibernation Maximum 256MB 256MB 512MB 512MB 512MB 512MB 1024MB 1024MB 1024MB 1024MB 2048MB 2048MB RAM No hibernation With Hibernation Maximum 1GB 1GB 2GB 2GB 2GB 1GB 3GB 4GB 3GB 2GB 5GB 6GB 4GB 2GB 6GB 8GB 5GB 2GB 7GB 10GB 6GB 2GB 8GB 12GB 8GB 3GB 11GB 16GB 12GB 3GB 15GB 24GB 16GB 4GB 20GB 32GB 24GB 5GB 29GB 48GB 32GB 6GB 38GB 64GB 64GB 8GB 72GB 128GB 128GB 11GB 139GB 256GB 256GB 16GB 272GB 512GB 512GB 23GB 535GB 1TB 1TB 32GB 1056GB 2TB 2TB 46GB 2094GB 4TB 4TB 64GB 4160GB 8TB 8TB 91GB 8283GB 16TB

How do I add more swap?

Swap is generally associated with a swap partition, perhaps because the user is prompted to create a swap partition at the time of installation. In fact, any file can be used as a swapping device, be it a partition or a conventional file. Swap can be added by increasing the size of the swap partition or by adding a swap file. Keep in mind that when creating a swap file that it may not necessarily be using contiguous disk blocks (as a swap partition will), and this could have a negative impact on performance as disk access times may be longer, and the more your system uses swap, the worse it will be. The Linux kernel also accesses swap disk block IO directly bypassing all caching, metadata and filesystem code, so a swap file should have no ill effect on the stability of your base filesystem. Since kernel 2.6.29 the swap system has automatically supported TRIM capable devices like SSDs.

The advantages of a swap file are many, but it is problematic for using the default swsusp hibernation method for powerless sleep. The best solution for maintaining hibernate capability after adding RAM is to increase the size of the swap partition.

How do I add or modify a swap partition?

Process to Increase Size of Swap Partition and use it for Hibernation

  • Creating the swap partition
  • Activating the swap partition
  • Making the new swap partition work for hibernate (optional)
Creating the swap partition
  1. Boot to Ubuntu install CD and choose the option to run Ubuntu now
  2. Go to system -> GParted Partition Editor
  3. Delete the swap partition and, if there is nothing else in it, the extended partition that holds it. (If by some miracle you’re able to resize your swap partition from here, I imagine your life will be a lot easier than mine.)
  4. Decrease the size of your primary partition by the amount you want your new swap to be (I made mine 2x RAM + 500MB just to be safe). The easiest way to do this is to fill in the amount of space you want swap to be in the «free space following» field
  5. In the free space that has now been created, choose new, type linux-swap and you can name the partition «swap» if you like
  6. Hit the *Apply* button (should be a check mark) to write the changes to disk
  7. When done, reboot back into Ubuntu
Activating the swap partition
  1. Pull up a terminal and run gksu gparted & and enter your root password. The & lets this process run while still giving you access to the command line.
  2. Right-click on your swap partition and choose *Information*. You should see the **Path** and **UUID** listed there. Keep this open for further reference.
  3. Run gksu gedit /etc/fstab & and look for the line that has *swap* in it. It should be the third column, separated by spaces or tabs. You can either use the path or the UUID to tell Linux where to find your swap partition. I recommend UUID because it’ll stay constant even if you move the partition around or the disk somehow becomes sdb instead of sda or something like that. Make the appropriate edits and save the file. Your line should look something like this if you used UUID (with your UUID instead, of course):
    • UUID=41e86209-3802-424b-9a9d-d7683142dab7 none swap sw 0 0
    • or this if you used path: /dev/sda2 none swap sw 0 0
  4. Save the file.
  5. Enable the new swap partition with this command.

sudo swapon --all
$ sudo swapon --all --verbose swapon on /dev/sda2 swapon: /dev/sda2: found swap signature: version 1, page-size 4, same byte order swapon: /dev/sda2: pagesize=4096, swapsize=2147483648, devsize=2147483648
$ cat /proc/swaps Filename Type Size Used Priority /dev/sda2 partition 2097148 0 -1
Making the swap partition work for hibernate (optional)
  1. Pull up a Terminal again and run cat /proc/swaps and hopefully you see the path to your swap partition listed there. If not chances are something went wrong in the steps above. Here’s my output:
Filename Type Size Used Priority /dev/sda2 partition 2676732 73380 -1
  1. gksu gedit /etc/default/grub & to pull up the boot loader configuration
  2. Look for the line GRUB_CMDLINE_LINUX="" and make sure it looks like this (using your UUID of course) GRUB_CMDLINE_LINUX="resume=UUID=41e86209-3802-424b-9a9d-d7683142dab7" and save the file
  3. sudo update-grub and wait for it to finish
  4. gksu gedit /etc/initramfs-tools/conf.d/resume & and make sure its contents are resume=UUID=41e86209-3802-424b-9a9d-d7683142dab7 (with your UUID of course in place of mine). Save the file!
  5. sudo update-initramfs -u
  6. Reboot!

Now you should be able to hibernate and resume!

How do I add a swap file?

Note: btrfs does not support swap files at the moment. See man swapon. and btrfs Faq

Create the Swap File:

We will create a 1 GiB file (/mnt/1GiB.swap) to use as swap:

sudo dd if=/dev/zero of=/mnt/1GiB.swap bs=1024 count=1048576

We need to set the swap file permissions to 600 to prevent other users from being able to read potentially sensitive information from the swap file.

sudo chmod 600 /mnt/1GiB.swap

Format the file as swap:

sudo mkswap /mnt/1GiB.swap

Enable use of Swap File

sudo swapon /mnt/1GiB.swap

The additional swap is now available and verified with: cat /proc/swaps

Enable Swap File at Bootup

Add the swap file details to /etc/fstab so it will be available at bootup:

echo '/mnt/1GiB.swap swap swap defaults 0 0' | sudo tee -a /etc/fstab

Example of making a swap file

This is an example of making and using a swap file on a computer with no swap partition.

$ sudo fallocate -l 1g /mnt/1GiB.swap $ sudo chmod 600 /mnt/1GiB.swap $ sudo mkswap /mnt/1GiB.swap Setting up swapspace version 1, size = 1048576 kB $ sudo swapon /mnt/1GiB.swap $ cat /proc/swaps Filename Type Size Used Priority /home/swapfile file 1048576 1048576 -1 $ echo '/mnt/4GiB.swap swap swap defaults 0 0' | sudo tee -a /etc/fstab $ reboot $ free -h total used free shared buff/cache available Mem: 15G 9.3G 454M 4.0G 5.8G 1.9G Swap: 1.0G 1.0G 0B

Disable and Remove a Swap File

Disable the swap file from the running system and the delete it:

sudo swapoff /mnt/1Gib.swap sudo rm /mnt/1Gib.swap

Remove the swap file details from fstab:

gksudo gedit /etc/fstab

Removing the swap file line

/mnt/1GiB.swap swap swap defaults 0 0

What is swappiness and how do I change it?

  • swappiness can have a value of between 0 and 100
  • swappiness=0 tells the kernel to avoid swapping processes out of physical memory for as long as possible
  • swappiness=100 tells the kernel to aggressively swap processes out of physical memory and move them to swap cache

The default setting in Ubuntu is swappiness=60. Reducing the default value of swappiness will probably improve overall performance for a typical Ubuntu desktop installation. A value of swappiness=10 is recommended, but feel free to experiment. Note: Ubuntu server installations have different performance requirements to desktop systems, and the default value of 60 is likely more suitable.

To check the swappiness value

cat /proc/sys/vm/swappiness

To change the swappiness value A temporary change (lost on reboot) with a swappiness value of 10 can be made with

sudo sysctl vm.swappiness=10

To make a change permanent, edit the configuration file with your favorite editor:

gksudo gedit /etc/sysctl.conf

Search for vm.swappiness and change its value as desired. If vm.swappiness does not exist, add it to the end of the file like so:

vm.swappiness=10

Save the file and reboot.

What is the priority of swap containers?

The Linux kernel assigns priorities to all swap containers. To see the priorities that the Linux Kernel assigns to all the swap containers use this command.

cat /proc/swaps

Priorities can be changed by using the swapon command or defined in /etc/fstab. Consult the manual page of swapon for more info

man swapon

Should I reinstall with more swap?

Definitely not. With the 2.6 kernel, «a swap file is just as fast as a swap partition.» (Wikipedia:Paging, LKML).

Why is my swap not being used?

My swap is not being used! When I issue the free command, it shows something like this:

tom@tom:~$ free total used free shared buffers cached Mem: 515980 448664 67316 0 17872 246348 -/+ buffers/cache: 184444 331536 Swap: 674688 0 674688

Note: This regards mainly swap on hard disk partitions, but it could help anyway. In these examples /dev/hda8 is considered as swap.

Swap may not be needed

Start many memory consuming applications (e.g. Gimp, web browsers, LibreOffice etc) and then issue the free command again. Is swap being used now?

Ubuntu Desktop uses Swap to Hibernate (PC off, no power needed, program states saved). If Hibernation is important to you, have more swap space than ram + swap overflow.

Is there a swap partition at all?

Use this command to see all partitions

sudo parted --list

You should be able to see something like this in the output

5 236GB 256GB 20.0GB linux-swap(v1)
  • boot from your Ubuntu install CD, create a swap partition out of the free space on your hard disk and then interrupt your installation.
  • use Cfdisk.

Enabling a swap partition

    Use the following command

cat /etc/fstab
/dev/sdb5 none swap sw 0 0
sudo swapoff -a sudo /sbin/mkswap /dev/sdb5 sudo swapon -a

Empty Swap

Even if you have lots of RAM and even if you have a low swappiness value, it is possible that your computer swaps. This can hurt the multitasking performance of your desktop system.

    Place the script e.g. /usr/local/sbin:

gksudo gedit /usr/local/sbin/swap2ram.sh
#!/bin/sh mem=$(LC_ALL=C free | awk '/Mem:/ ') swap=$(LC_ALL=C free | awk '/Swap:/ ') if [ $mem -lt $swap ]; then echo "ERROR: not enough RAM to write swap back, nothing done" >&2 exit 1 fi swapoff -a && swapon -a
sudo chmod +x /usr/local/sbin/swap2ram.sh
sudo /usr/local/sbin/swap2ram.sh

SwapFaq (последним исправлял пользователь chick 2022-07-27 19:13:47)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *