LINUX.ORG.RU

Zram vs Zswap. Часть 2: тесты

 , ,


2

2

Чтобы закрыть оставшиеся вопросы, я провёл серию тестов на скорость и отзывчивость по симуляции сёрфинга с фоновой нагрузкой.

Железо:

  • ноутбук HP pavilion dv5
  • Оперативная память 2Гб
  • Цпу: двухядерный pentium duo (core2), ограниченный до 65 градусов через cpufreqd
  • Видеокарта nvidia 9200M 256M видеопамяти, драйвер nouveau
  • Дистрибутив дебиан10, ядро 4.19
  • накопитель ssd

После загрузки запускаю:
Virtualbox (256М оперативки, ХР, пустой рабочий стол), firefox, пара консолек. В стартовой позиции занято 1,1Гб памяти.

Затем запускаю скрипт с тестовым сценарием:

  • На первом этапе открывается 5 вкладок через небольшие промежутки времени (5-7с) чтобы быстро добраться до начала свопинга.
  • Затем запускается Unigine Tropics (на минималках разумеется) в качестве индикатора отзывчивости системы и для фоновой нагрузки. Даётся задержка 40с для подгрузки оставшихся вкладок и собственно Tropics.
  • Начинает открываться второй пакет вкладок, 19 штук с промежутками 16с. Тестовый пакет - различные новостные ленты, не повторяжщиеся.
  • В момент появления первой из них я запускаю 'benchmark' в Tropics. Нагрузка упирается в цпу, браузер начинает захлёбываться и не успевает отрисовывать вкладки. Необходимость одновременно с этим свопиться определённо замедляет его и при этом дополнительно просаживает фпс в Tropics. Так как все прочие условия и настройки одинаковы, разница в тестах зависит от разных настроек свопинга.
  • Tropics заканчивает свой бенчмарк первыми и выдаёт результат, но продолжает рисовать остров, не сбрасывает нагрузки и я его не трогаю.
  • Окончание отрисовки пакета вкладок считаю по появлению ямы в графике нагрузки цпу (это происходит через ~5-10с после того, как firefox объявляет все вкладки загруженными). Время теста замеряется секундомером на смартфоне от запуска скрипта до повяления ямы на графике.

И последний тест, на пролистывание всех отрисованных вкладок.
Окно firefox на весь экран, Tropics остаётся в фоне, для каждой вкладки я жду подгрузки картинки, даю команду «end» (с плавной прокруткой), жду подгрузки, потом «home», подгрузка, ctrl-W для закрытия. Время теста также по секундомеру.

Серия тестов:
1) простой свопинг
2) zswap 25% z3fold/lzo
3) zswap 25% zbud/lzo
4) zram/lzo, backing_dev на ssd, mem_limit=450M

Результаты:

Unigine Tropics
Без дополнительной нагрузки:
результат 205, фпс мин/средн/макс 5,2/8,1/20,5
1) результат 162 фпс 3,1 / 6,4 / 19,4
2) результат 170 фпс 4,0 / 6,7 / 16,0
3) результат 168 фпс 3,4 / 6,7 / 16,5
4) результат 168 фпс 3,8 / 6,7 / 12,7
Здесь лучшую отзывчивость показал zswap/z3fold, а все 3 ускорителя явно лучше чем прямой свопинг.

Открытие вкладок
1) 7:33
2) 7:10
3) 7:26
4) 7:07
Zram победил, zswap/z3fold дышит в спину, zswap/zbud почти ничего не даёт.

Закрытие вкладок
1) 2:43
2) 2:49
3) 2:54
4) 2:42
Этот тест наиболее субъективный и менее точный. Со своей стороны могу заметить, что вариант zram показался мне самым отзывчивым и быстрым при поднятии из свопа.

Дополнение

Суммарный sleep в тестовом скрипте: 6:04 (Что более-менее оправдано в серии тестов 1-4. Держит загрузку цпу (все ядра суммарно) в районе 75...150% большую часть времени, за исключением пика до 200...300% на последних вкладках)

Если проходить тест открытия вкладок не допуская свопинга, т.е. пролистывая и закрывая вкладки, тогда:
Без всех утяжелителей: 6:21
С фоновым Unigine Tropics: 6:37 (tropics 181 фпс 4,3/7,2/19,1)

Вывод: Если вычесть это время (что 6:04, что 6:37), получается довольно заметая разница в 19 секунд из 56...89 (как считать).

И... Вернёмся к истокам, своп на HDD (80Гб, 720rpm, 8М), подключенном через usb 2.0!

5) Методика тестирования прежняя, zswap/z3fold 25%, lzo.
tropics 181 фпс 4,3/7,2/19,1
открытие: 7:21
закрытие: 2:53
При этом диск практически простаивает пока в свопе не окажется ~1,3-1,4Гб. Потом начинает активно использоваться.

6) Отключаю zswap, методика прежняя. Приблизительно те же самые показатели до 6-й минуты, когда Tropics заканчивает бенчмарк. И тут я трогаю мышку и навожу её на окно Tropics... Мышка просыпается, Kwin просыпается, konsole просыпается, firefox продолжает пережёвывать вкладки, система уходит в своп-трашинг. Я смотрю на это мунуту и решаю прервать тест. 15 МИНУТ НА ПРЕРЫВАНИЕ ТЕСТА И РЕБУТ!

Меняю методику тестирования. При прохождении тестов на ssd я мог без ограничений переключать окна и разворачивать список вкладок, без тормозов и задержек. Теперь я делают то же самое в поцессе теста на HDD. Без особо активных попыток вызвать своп-трэшинг.
tropics 175 фпс 3,3/6,9/20,6
открытие: 13:32
закрытие: 8:08

7) Повторяю тест HDD+zswap/z3fold, но специально провоцирую своп-трэшинг, тыкаю в окна, переключаю вкладки в пределах последних 4.
tropics 170 фпс 3,2/6.7/14,6
открытие: 8:40
закрытие: 2:45

Вывод: Ускорители свопа однозначно совершили революцию. Только мы её не видим, потому что на ssd разницы не заметно.

★★★★★

Проверено: hobbit ()

Вернёмся к истокам, своп на HDD (80Гб, 720rpm, 8М), подключенном через usb 2.0!

За такое судить надо, как за издевательство над животными.

Ускорители свопа однозначно совершили революцию.

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

Radjah ★★★★★ ()
Последнее исправление: Radjah (всего исправлений: 1)
Ответ на: комментарий от ox55ff

Этого старья уже ни у кого нет.

MemTotal: 2020544 kB
model name : Pentium(R) Dual-Core CPU E5500 @ 2.80GHz

Иногда встречается. Под виндой шевелится крайне неохотно, с пингвином на свежих ядрах жить можно.

Дома ещё E5450 с 4 гигами памяти, дешевым SSD и встройкой в G43 чипсете есть для издевательств.

devl547 ★★★★★ ()
Последнее исправление: devl547 (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

zstd сомнителен, он слишком тяжёлый и медленный

Это надо степень сжатия подгонять. На атоме он у меня затыкал за пояс gzip при тех же затратах времени.

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

gzip

Ну собственно ему на замену zstd и пришёл.
lzo быстрее, но жмёт хуже. И вот тут вопрос, что более сбалансированно по perf/compression.

devl547 ★★★★★ ()
Ответ на: комментарий от kirill_rrr

zstd сомнителен, он слишком тяжёлый и медленный

Подтверждаю. Степень сжатия выше, но работает существенно медленнее. Для zram хорош дефолтный lzo-rle.

hakavlad ★★★ ()
Ответ на: комментарий от Radjah

затыкал за пояс gzip при тех же затратах времени.

Надо не просто затыкать, надо делать это на порядок или больше.

kirill_rrr ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.