Az Azure NetApp Files linuxos NFS-olvasási ajánlott eljárásai
Ez a cikk az Azure NetApp Files fájlrendszer-gyorsítótárának ajánlott eljárásait ismerteti.
Az NFS előre olvasható, előre jelezve kéri a blokkokat egy fájlból az alkalmazás I/O-kérései előtt. Úgy tervezték, hogy javítsa az ügyfél szekvenciális olvasási átviteli sebességét. A közelmúltig az összes modern Linux-disztribúció az olvasási értéket a csatlakoztatott fájlrendszerek rsize
15-szörösének megfelelő értéknek állította be.
Az alábbi táblázat az egyes rsize
csatlakoztatási beállítások alapértelmezett előreolvasási értékeit mutatja.
Csatlakoztatott fájlrendszer rsize |
Előre olvasható blokkok |
---|---|
64 KiB | 960 KiB |
256 KiB | 3840 KiB |
1024 KiB | 15 360 KiB |
Az RHEL 8.3 és az Ubuntu 18.04 olyan módosításokat vezetett be, amelyek negatívan befolyásolhatják az ügyfél szekvenciális olvasási teljesítményét. A korábbi kiadásoktól eltérően ezek a disztribúciók a használatban lévő csatlakoztatási lehetőségtől függetlenül rsize
alapértelmezés szerint 128 KiB értékre vannak beállítva. A nagyobb előreolvasási értékkel rendelkező kiadásokról az alapértelmezett 128 KiB-vel rendelkező kiadásokra való frissítés a szekvenciális olvasási teljesítmény csökkenését tapasztalta. Az előre olvasható értékek azonban dinamikusan és tartósan felfelé hangolhatók. A SAS GRID-szel végzett tesztelés például a 15 360 KiB olvasási értéket találta optimálisnak a 3840 KiB, 960 KiB és 128 KiB értékhez képest. A pozitív vagy negatív hatás megállapításához nem végeztek elegendő tesztet 15 360 KiB-t meghaladóan.
Az alábbi táblázat az egyes jelenleg elérhető disztribúciók alapértelmezett írásvédett értékeit mutatja be.
Disztribúció | Felszabadítás | Előre olvasható blokkok |
---|---|---|
RHEL | 8.3 | 128 KiB |
RHEL | 7.X, 8.0, 8.1, 8.2 | 15 X rsize |
SLES | 12.X – legalább 15SP2 | 15 X rsize |
Ubuntu | 18.04 – legalább 20.04 | 128 KiB |
Ubuntu | 16.04 | 15 X rsize |
Debian | Legfeljebb 10 | 15 x rsize |
NFS-fájlrendszerenkénti írásvédettség
Az NFS előreolvasása az NFS-fájlrendszer csatlakoztatási pontján van definiálva. Az alapértelmezett beállítás dinamikusan és állandó módon is megtekinthető és beállítható. Az egyszerűség kedvéért a Red Hat által írt alábbi bash-szkriptet adták meg a nagy mennyiségű NFS fájlrendszer olvasásának megtekintéséhez vagy dinamikus beállításához.
Az olvasási folyamat NFS-csatlakoztatásonként dinamikusan definiálható az alábbi szkript használatával, vagy állandó szabályok használatával udev
, az ebben a szakaszban látható módon. A csatlakoztatott NFS-fájlrendszerek írásvédett megjelenítéséhez vagy beállításához a következő szkriptet bash-fájlként mentheti, módosíthatja a fájl engedélyeit, hogy végrehajthatóvá tegye (chmod 544 readahead.sh
és az ábrán látható módon fusson).
Olvasási értékek megjelenítése vagy beállítása
Az aktuális előreolvasási érték megjelenítéséhez (a visszaadott érték a KiB-ben található), futtassa a következő parancsot:
./readahead.sh show <mount-point>
Ha új értéket szeretne beállítani az olvasáshoz, futtassa a következő parancsot:
./readahead.sh set <mount-point> [read-ahead-kb]
Example
#!/bin/bash
# set | show readahead for a specific mount point
# Useful for things like NFS and if you do not know / care about the backing device
#
# To the extent possible under law, Red Hat, Inc. has dedicated all copyright
# to this software to the public domain worldwide, pursuant to the
# CC0 Public Domain Dedication. This software is distributed without any warranty.
# For more information, see the [CC0 1.0 Public Domain Dedication](http://creativecommons.org/publicdomain/zero/1.0/).
E_BADARGS=22
function myusage() {
echo "Usage: `basename $0` set|show <mount-point> [read-ahead-kb]"
}
if [ $# -gt 3 -o $# -lt 2 ]; then
myusage
exit $E_BADARGS
fi
MNT=${2%/}
BDEV=$(grep $MNT /proc/self/mountinfo | awk '{ print $3 }')
if [ $# -eq 3 -a $1 == "set" ]; then
echo $3 > /sys/class/bdi/$BDEV/read_ahead_kb
elif [ $# -eq 2 -a $1 == "show" ]; then
echo "$MNT $BDEV /sys/class/bdi/$BDEV/read_ahead_kb = "$(cat /sys/class/bdi/$BDEV/read_ahead_kb)
else
myusage
exit $E_BADARGS
fi
Írásvédettség állandó beállítása NFS-csatlakoztatásokhoz
Az NFS-csatlakoztatások udev
folyamatos olvasásának beállításához a szabályok az alábbiak szerint írhatók:
Létrehozás és tesztelés
/etc/udev/rules.d/99-nfs.rules
:SUBSYSTEM=="bdi", ACTION=="add", PROGRAM="<absolute_path>/awk -v bdi=$kernel 'BEGIN{ret=1} {if ($4 == bdi) {ret=0}} END{exit ret}' /proc/fs/nfsfs/volumes", ATTR{read_ahead_kb}="15380"
Alkalmazza a szabályt
udev
:sudo udevadm control --reload
Következő lépések
- Ajánlott eljárások a Linux közvetlen I/O-hoz az Azure NetApp Fileshoz
- Ajánlott eljárások linuxos fájlrendszer-gyorsítótárazáshoz az Azure NetApp Fileshoz
- A Linux NFS csatlakoztatási beállításainak ajánlott eljárásai az Azure NetApp Fileshoz
- Ajánlott linuxos egyidejűségi eljárások
- Azure-beli virtuálisgép-termékváltozatok – ajánlott eljárások
- Performance benchmarks for Linux