Недавно компания VMware провела тестирование баз данных PostgreSQL в качестве рабочей нагрузки в виртуальных машинах vSphere 7.0 U2 с использованием памяти Intel Optane DC persistent memory (PMem). Напомним, что именно на этот тип памяти компания VMware ориентируется при разработке технологии Project Capitola.
Память Intel Optane DC persistent memory (DCPMM она же PMEM) не такая быстрая как DRAM и имеет бОльшие задержки, но они все равно измеряются наносекундами. При этом данная память позволяет иметь ее большой объем на сервере, что существенно повышает плотность ВМ на одном хосте.
В качестве тестового стенда использовалась следующая конфигурация хоста ESXi и виртуальных машин:
Память PMEM была презентована виртуальным машинам как очень быстрое устройство хранения (NVDIMM). Конфигурация PostgreSQL была следующей:
VMware использовала 3 различных конфигурации для тестирования:
2 устройства NVME SSD (это базовый уровень) - оба раздела, WAL и база данных, были на двух разных быстрых SSD
WAL на базе PMEM - раздел WAL поместили на 200-гигабайтное устройство PMem NVDIMM
WAL и база данных на PMem - все разделы были размещены на устройствах PMem NVDIMM
В виртуальной машине запускали стресс-тест базы данных со значительной нагрузкой на диск, средней нагрузкой на систему и интегрированными транзакциями. Пропускная способность (throughput) измерялась в количестве транзакций в секунду (TPS).
Вот что из этого вышло:
По итогу теста для полной нагрузки на PMEM по сравнению с SSD пропускная способность выросла на 44.6%, а задержка (latency) упала на 30.8% (при перенесении только WAL на PMEM эти показатели составили 13.4% и 11.8%, соответственно).
Те же самые параметры для read-only транзакций:
Тут уже разница более, чем в 3 раза. Также VMware попробовала машину с 1 ГБ оперативной памяти вместо 200 ГБ - там улучшение было еще больше, а среднем PMEM дает улучшение производительности по сравнению с SSD в районе 4.5x.
Полное описание процедуры тестирования находится тут.