A LOCALIO protokoll bevezetése az NFS-ben a Linux 6.12 verzióban

kami911 képe

A LOCALIO protokoll támogatás lehetővé teszi, hogy az NFS kliens és a szerver megbízhatóan meghatározza, hogy ugyanazon a gépen találhatók-e. Amennyiben valóban azonos gépen működnek, a hálózati RPC (Remote Procedure Call) protokoll a beolvasási, írási és elkötelezési műveletek során megkerülésre kerül. Az XDR (External Data Representation) és az RPC megkerülésének köszönhetően jelentős teljesítményjavulás érhető el a LOCALIO protokoll használatával. A LOCALIO protokoll alkalmazásának egyik tipikus esete, amikor az NFS kliens és szerver ugyanazon a gépen fut, például konténerizált munkaterhelések esetén, amelyek az NFSD (NFS Daemon) példányával egyidejűleg működnek, biztosítva ezzel a tárolási funkciókat.

A teljesítmény növekedés:

fio for 20 secs with directio, qd of 8, 16 libaio threads:
 - With LOCALIO:
 4K read: IOPS=979k, BW=3825MiB/s (4011MB/s)(74.7GiB/20002msec)
 4K write: IOPS=165k, BW=646MiB/s (678MB/s)(12.6GiB/20002msec)
 128K read: IOPS=402k, BW=49.1GiB/s (52.7GB/s)(982GiB/20002msec)
 128K write: IOPS=11.5k, BW=1433MiB/s (1503MB/s)(28.0GiB/20004msec)

 - Without LOCALIO:
 4K read: IOPS=79.2k, BW=309MiB/s (324MB/s)(6188MiB/20003msec)
 4K write: IOPS=59.8k, BW=234MiB/s (245MB/s)(4671MiB/20002msec)
 128K read: IOPS=33.9k, BW=4234MiB/s (4440MB/s)(82.7GiB/20004msec)
 128K write: IOPS=11.5k, BW=1434MiB/s (1504MB/s)(28.0GiB/20011msec)

fio for 20 secs with directio, qd of 8, 1 libaio thread:
 - With LOCALIO:
 4K read: IOPS=230k, BW=898MiB/s (941MB/s)(17.5GiB/20001msec)
 4K write: IOPS=22.6k, BW=88.3MiB/s (92.6MB/s)(1766MiB/20001msec)
 128K read: IOPS=38.8k, BW=4855MiB/s (5091MB/s)(94.8GiB/20001msec)
 128K write: IOPS=11.4k, BW=1428MiB/s (1497MB/s)(27.9GiB/20001msec)

 - Without LOCALIO:
 4K read: IOPS=77.1k, BW=301MiB/s (316MB/s)(6022MiB/20001msec)
 4K write: IOPS=32.8k, BW=128MiB/s (135MB/s)(2566MiB/20001msec)
 128K read: IOPS=24.4k, BW=3050MiB/s (3198MB/s)(59.6GiB/20001msec)
 128K write: IOPS=11.4k, BW=1430MiB/s (1500MB/s)(27.9GiB/20001msec)

A LOCALIO használatának teljesítményelőnyeit a dokumentáció „extrém” jelzővel illeti, és több mint 10-szeres javulást mutatott ki 4K olvasási műveletek során, amikor sok libaio (Linux AIO) szál működik. De más esetekben is jelentős nyereségek tapasztalhatók. A LOCALIO protokoll kiterjesztés támogatását a Linux 6.12 verzióba integrálták az NFS kliens frissítései keretében, emellett új „noalignwrites” csatolási opció is bevezetésre került, amely a zár nélküli írásvesztés megelőzését szolgálja. Továbbá számos hibajavítást és egyéb kódoptimalizálást is végrehajtottak.