March 15th, 2019

404

Продолжение истории с WB/WT для LSI

Если кто-то упустил драму про writeback/writetrhough у LSI, то пересказываю в кратце:

Есть утверждение от документации LSI, которое говорит, что разница в WB/WT состоит в том, когда отправляется подтверждение о записи: когда данные попали в кеш или когда данные были приняты нижележащими устройствами, из чего можно сделать вывод, что WT никак не может быть быстрее. (WB=writeback, WT=writethrough). См этот комментарий для подробностей: https://amarao-san.livejournal.com/3436627.html?thread=21645139#t21645139

И есть экспериментальные данные, которые показывают, что на быстрых SSD отключение WB и режима Cached (перевод в Direct) увеличивает производительность. В моём бенчмарке более чем в два раза.

Вот на этом графике можно понять, что на самом деле происходит при переключении между WB и WT. Sample1=WB (розовый), Sample2=WT (зелёный). Это график latency запросов, точнее, плотность вероятности, даунсэмплинг до 2000 запросов. Шкала X - log2.

WB/WT chart
Видно, что первый пик у "розового" там же, где основной пик у зелёного. А дальше тупняк от WB, у которого забился кеш. Я утверждаю, что WT обеспечивает лучшую производительность именно из-за отсутствия этих "тупняков".