Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln hjälper dig att förstå metodtips för filsystemcache för Azure NetApp Files.
NFS-läsningsförhandsbegäranden blockerar förutsägbart från en fil före I/O-begäranden från programmet. Den är utformad för att förbättra klientens sekventiella läsdataflöde. Fram till nyligen har alla moderna Linux-distributioner angett värdet read-ahead till motsvarande 15 gånger de monterade filsystemen rsize
.
I följande tabell visas standardvärden för läsning framåt för varje angivet rsize
monteringsalternativ.
Monterat filsystem rsize |
Blockerar läsning framåt |
---|---|
64 KiB | 960 KiB |
256 KiB | 3 840 KiB |
1 024 KiB | 15 360 KiB |
RHEL 8.3 och Ubuntu 18.04 introducerade ändringar som kan påverka klientens sekventiella läsprestanda negativt. Till skillnad från tidigare versioner anger dessa distributioner read-ahead till standardvärdet 128 KiB oavsett vilket rsize
monteringsalternativ som används. När du uppgraderade från versioner med det större läs-framåt-värdet till versioner med standardvärdet 128 KiB minskade sekventiella läsprestanda. Läs-framåt-värden kan dock justeras uppåt både dynamiskt och beständigt. Till exempel fann testning med SAS GRID läsvärdet 15 360 KiB optimalt jämfört med 3 840 KiB, 960 KiB och 128 KiB. Inte tillräckligt med tester har körts utöver 15 360 KiB för att fastställa positiv eller negativ inverkan.
I följande tabell visas standardvärden för läsning framåt för varje tillgänglig distribution.
Fördelning | Frisläpp | Blockerar läsning framåt |
---|---|---|
RHEL (Red Hat Enterprise Linux) | 8.3 | 128 KiB |
RHEL (Red Hat Enterprise Linux) | 7.X, 8.0, 8.1, 8.2 | 15 X rsize |
SLES (Sodium Laureth Sulfate) | 12.X – minst 15SP2 | 15 X rsize |
Ubuntu | 18,04 – minst 20,04 | 128 KiB |
Ubuntu | 16.04 | 15 X rsize |
Debian | Upp till minst 10 | 15 x rsize |
Så här arbetar du med skrivskyddat filsystem per NFS
NFS-läsning definieras vid monteringspunkten för ett NFS-filsystem. Standardinställningen kan visas och ställas in både dynamiskt och beständigt. För enkelhetens skull tillhandahålls följande bash-skript skrivet av Red Hat för att visa eller dynamiskt ställa in läs-framåt för mängden NFS-filsystem.
Läs-framåt kan definieras antingen dynamiskt per NFS-montering med hjälp av följande skript eller beständigt med hjälp av udev
regler som visas i det här avsnittet. Om du vill visa eller ange läsbehörighet för ett monterat NFS-filsystem kan du spara följande skript som en bash-fil, ändra filens behörigheter så att den blir körbar (chmod 544 readahead.sh
) och köra som det visas.
Så här visar eller anger du läs-framåt-värden
Kör följande kommando för att visa det aktuella read-ahead-värdet (det returnerade värdet finns i KiB):
./readahead.sh show <mount-point>
Kör följande kommando för att ange ett nytt värde för läsning framåt:
./readahead.sh set <mount-point> [read-ahead-kb]
Exempel
#!/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
Så här konfigurerar du beständigt läsning för NFS-monteringar
För att beständigt ställa in läs-framåt för NFS-monteringar udev
kan regler skrivas på följande sätt:
Skapa och testa
/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"
Tillämpa regeln
udev
:sudo udevadm control --reload