A hálózati fájlrendszer (NFS) 3.0-s teljesítményével kapcsolatos szempontok az Azure Blob Storage-ban
A Blob Storage mostantól támogatja a Hálózati fájlrendszer (NFS) 3.0 protokollt. Ez a cikk olyan javaslatokat tartalmaz, amelyek segítenek optimalizálni a tárolási kérelmek teljesítményét. Ha többet szeretne megtudni az NFS 3.0 Azure Blob Storage támogatásáról, tekintse meg az Azure Blob Storage hálózati fájlrendszerének (NFS) 3.0 protokolltámogatását ismertető cikket.
Ügyfelek hozzáadása az átviteli sebesség növeléséhez
Az Azure Blob Storage lineárisan skálázódik, amíg el nem éri a tárfiók kimenő és bemenő forgalmára vonatkozó maximális korlátot. Ezért az alkalmazások nagyobb átviteli sebességet érhetnek el több ügyfél használatával. A tárfiókok kimenő és bejövő forgalmának korlátait a standard tárfiókok méretezhetőségi és teljesítménycéljai című témakörben tekintheti meg.
Az alábbi diagram azt mutatja be, hogyan nő a sávszélesség, amikor több ügyfelet ad hozzá. Ebben a diagramban az ügyfél egy virtuális gép (VM) és egy standard általános célú v2-tárfiókkal rendelkezik.
Az alábbi diagram ugyanezt a hatást mutatja egy prémium szintű blokkblobtároló-fiókra alkalmazva.
Prémium szintű blokkblobtároló-fiókok használata kis léptékű alkalmazásokhoz
Nem minden alkalmazás skálázható fel több ügyfél hozzáadásával. Ezekhez az alkalmazásokhoz az Azure prémium szintű blokkblobtároló-fiókja konzisztens alacsony késést és nagy tranzakciós arányt biztosít. A prémium szintű blokkblobtároló-fiók a maximális sávszélességet is elérheti kevesebb szál és ügyfél használatával. Egyetlen ügyfél esetén például egy prémium szintű blokkblobtároló-fiók 2,3-szeres sávszélességet érhet el a standard teljesítményű általános célú v2-tárfiókokkal használt beállításhoz képest.
Az alábbi diagram minden sávja a prémium és a standard teljesítményű tárfiókok közötti elért sávszélesség-különbséget mutatja. Az ügyfelek számának növekedésével ez a különbség csökken.
Az előre olvasási méret javítása a nagy fájlolvasási sebesség növeléséhez
A read_ahead_kb kernelparaméter az adott olvasási kérelem teljesítése után beolvasandó további adatok mennyiségét jelöli. Ezt a paramétert 16 MiB-re növelheti a nagy fájlolvasási sebesség javítása érdekében.
export AZMNT=/your/container/mountpoint
echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb
Az adatok gyakori felülírásának elkerülése
Egy felülírási művelet végrehajtása hosszabb időt vesz igénybe, mint egy új írási művelet. Ennek az az oka, hogy egy NFS-felülírási művelet, különösen egy részleges helyi fájlszerkesztés, több mögöttes blobművelet kombinációja: olvasási, módosítási és írási művelet. Ezért az NFS-kompatibilis Blob Storage-fiókokhoz nem megfelelő az az alkalmazás, amely gyakori helyszíni módosításokat igényel.
Azure HPC Cache üzembe helyezése késésre érzékeny alkalmazásokhoz
Egyes alkalmazások esetében a magas átviteli sebesség mellett kis késésre is szükség lehet. Az Azure HPC Cache üzembe helyezésével jelentősen javíthatja a késést. További információ a Blob Storage késéséről.
A TCP-kapcsolatok számának növelése
A csatlakoztatási nconnect
lehetőséggel magasabb összesített olvasási és írási teljesítményt kaphat egyetlen virtuális gépről, de csak akkor, ha a Linux-kernel támogatja az Azure nconnectet.
nconnect
egy ügyféloldali Linux-csatlakoztatási lehetőség, amely lehetővé teszi több TCP-kapcsolat használatát az ügyfél és a Blob szolgáltatásvégpont között. A csatlakoztatási nconnect
paranccsal megadhatja a létrehozni kívánt TCP-kapcsolatok számát (például: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain
).
Fontos
Bár a legújabb Linux-disztribúciók teljes mértékben támogatják az nconnectet, ezt a lehetőséget csak akkor érdemes használni, ha a kernel rendelkezik Azure nconnect-támogatással.
nconnect
Az Azure nconnect-támogatás nélküli csatlakoztatási lehetőség használata csökkenti az átviteli sebességet, több időtúllépést okoz, és olyan parancsokat okoz, mint a READDIR
és READIRPLUS
a helytelen működés.
Az Azure nconnect támogatása az Azure-beli virtuális gépekhez használható legutóbbi Ubuntu kernals-ekkel érhető el. Annak kiderítéséhez, hogy az Azure nconnect támogatása elérhető-e a kernelhez, futtassa az alábbi parancsot.
[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"
Ha az Azure nconnect támogatása elérhető a kernelhez, akkor Yes
a rendszer a konzolra nyomtatja.
'No
Ellenkező esetben a konzolra lesz nyomtatva.
Ha az Azure nconnect támogatása elérhető, engedélyezze az alábbi parancs futtatásával.
echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect
Egyéb ajánlott eljárásokra vonatkozó javaslatok
Használjon megfelelő hálózati sávszélességű virtuális gépeket.
Használjon több csatlakoztatási pontot, ha a számítási feladatok engedélyezik.
Használjon minél több szálat.
Használjon nagy méretű blokkokat.
Hozzon létre tárolási kéréseket egy olyan ügyféltől, amely ugyanabban a régióban található, mint a tárfiók. Ez javíthatja a hálózati késést.
Következő lépések
Ha többet szeretne megtudni az NFS 3.0 Azure Blob Storage támogatásáról, tekintse meg az Azure Blob Storage hálózati fájlrendszerének (NFS) 3.0 protokolltámogatását ismertető cikket.
Első lépésként tekintse meg a Blob Storage csatlakoztatása a Hálózati fájlrendszer (NFS) 3.0 protokoll használatával című témakört.