Чтобы закрыть оставшиеся вопросы, я провёл серию тестов на скорость и отзывчивость по симуляции сёрфинга с фоновой нагрузкой.
Железо:
- ноутбук 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 разницы не заметно.