Я получаю неожиданно низкие транзакции в секунду на опции "Local SSD" GCE (по сравнению с SSD Персистентный Диск) использование простых тестов "pgbench":
# With Local SSD
# /dev/mapper/vg0-data on /data type xfs (rw,noexec,noatime,attr2,inode64,noquota)
pg-dev-002:~$ pgbench -c 8 -j 2 -T 60 -U postgres
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 8
number of threads: 2
duration: 60 s
number of transactions actually processed: 10765
tps = 179.287875 (including connections establishing)
tps = 179.322407 (excluding connections establishing)
# With SSD Persistent Disk
# /dev/mapper/vg1-data on /data1 type xfs (rw,noexec,noatime,attr2,inode64,noquota)
pg-dev-002:/data$ pgbench -c 8 -j 2 -T 60 -U postgres
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 8
number of threads: 2
duration: 60 s
number of transactions actually processed: 62457
tps = 1040.806664 (including connections establishing)
tps = 1041.012782 (excluding connections establishing)
сравнительные тесты "fio" показывают рекламируемый IOPS и пропускную способность для Локального SSD. Однако выполнение "pg_test_fsync" на Локальном SSD монтируется, приводит меня полагать, что fsync задержка является преступником. Локальные числа SSD после применяют сценарий IRQ Google здесь:
# Local SSD
open_datasync 319.738 ops/sec 3128 usecs/op
fdatasync 321.963 ops/sec 3106 usecs/op
# Persistent SSD
open_datasync 1570.305 ops/sec 637 usecs/op
fdatasync 1561.469 ops/sec 640 usecs/op
Я не видел, что что-либо расценивает ограничения fsync и Локального SSD, но я не уверен, где еще проверить или протестировать.
Сравнение одного локального SSD / HDD и т. Д. с RAID-контроллером типа SAN, это все равно что сравнивать VW Beetle с автомобилем Audi RS10 Le-mans, да, они оба вышли с одного завода, и оба используют четырехтактные двигатели / SSD / HDD, но их настройки и т. д. совершенно разные.
Я могу привести несколько примеров полученного опыта,но простые ответы связаны с огромным объемом кэша ОЗУ с резервным питанием от батареи, который хранилище на основе SAN имеет по сравнению с не на локальном SSD / HDD. Даже твердотельные накопители не могут вполне конкурировать с оперативной памятью DDR3 с батарейным питанием, когда они подтверждают, что данные были «сохранены» на диске. Более того, один локальный диск может (реально) обрабатывать только одну операцию за один раз, записывая блок на «диск», по сравнению с системами SAN с батарейным питанием, которые могут обрабатывать несколько запросов одновременно с «записью на диск» (поскольку они фиксируют данные к ОЗУ DDR3 с резервным питанием от батареи)
Наконец, вопрос может заключаться в , какой локальный SSD-диск используется, поскольку я видел огромные различия в производительности записи между разными размерами того же семейства твердотельных накопителей (чем больше, тем быстрее), не говоря уже о различных скоростях различных SSD-дисков.
Да, твердотельные накопители быстрее жестких дисков, но еще не так быстры, как ОЗУ DDR3 с батарейным питанием;)