Ted Ts’o przesłał wszystkie zmiany funkcji EXT4 dla okna łączenia Linuksa 6.5. EXT4 w tej rundzie zawiera różne porządki, poprawki błędów i inne ulepszenia, ale jest jedna optymalizacja wydajności, na którą warto zwrócić uwagę.
EXT4 z Linuksem 6.5 zapewnia znacznie lepszą wydajność w zakresie nadpisywania równoległego bezpośredniego wejścia/wyjścia (DIO). Brian Foster z Red Hat, który pracował nad tą optymalizacją, aby umożliwić równoczesne nadpisywanie niewyrównanych DIO, widzi w rezultacie znacznie lepszą wydajność. Dzięki FIO ta poprawka podnosi jego przypadek testowy z 8724 KiB/s do 1565 MiB/s.
Foster wyjaśniony w łatka:
“Otrzymaliśmy raporty o znacznym spadku wydajności bezpośrednich zapisów podbloków (niewyrównanych) z powodu dodanych ograniczeń wyłączności w ext4. Cel wyłączności wymaganiem dla niewyrównanych bezpośrednich zapisów jest uniknięcie uszkodzenia danych spowodowanego przez nieserializowane częściowe zerowanie bloku w warstwie iomap dio podczas nakładających się zapisów.
XFS ma podobne wymagania z tych samych podstawowych powodów, ale nie cierpi na ekstremalną regresję wydajności, jaką ma ext4 Powodem tego jest to, że XFS wykorzystuje tryb IOMAP_DIO_OVERWRITE_ONLY, który pozwala na optymistyczne przesyłanie współbieżnych niewyrównanych wejść/wyjść i odrzuca zapisy wymagające częściowego zerowania bloku, tak aby można je było przesyłać w bezpiecznym, wyłącznym kontekście.Ponieważ ext4 już wykonuje większość tych kontroli przed przesłaniem, może obsługiwać coś podobnego bez konieczności polegania na fladze iomap i powiązanym mechanizmie ponawiania.
Zaktualizuj ścieżkę przesyłania danych do zapisu, aby umożliwić równoczesne przesyłanie niewyrównanych bezpośrednich zapisów, które są wyłącznie nadpisywane i nie wymagają zerowania bloków.”
Miłe zwycięstwo dzięki firmie Red Hat. Pełną listę aktualizacji EXT4 dla Linuksa 6.5 można znaleźć pod adresem to żądanie ściągnięcia.