Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Amikor egy alkalmazás az Azure Storage Go-ügyfélkódtárával továbbít adatokat, számos tényező befolyásolhatja a sebességet, a memóriahasználatot, sőt a kérés sikerességét vagy sikertelenségét is. Az adatátviteli teljesítmény és a megbízhatóság maximalizálása érdekében fontos, hogy proaktív módon konfigurálja az ügyfélkódtár-átviteli lehetőségeket az alkalmazás által futtatott környezet alapján.
Ez a cikk az adatátviteli beállítások finomhangolásának számos szempontját ismerteti. Megfelelő hangolás esetén az ügyfélkódtár hatékonyan elosztja az adatokat több kérelem között, ami jobb működést, memóriahasználatot és hálózati stabilitást eredményezhet.
Feltöltések teljesítményhangolása
Az adatátviteli beállítások megfelelő finomhangolása kulcsfontosságú a feltöltések megbízható teljesítményéhez. A tárolóátvitelek több altranszferre vannak particionálva ezen tulajdonságok értékei alapján. A maximálisan támogatott átvitel mérete művelettől és szolgáltatásverziótól függően változik, ezért a korlátok meghatározásához mindenképpen ellenőrizze a dokumentációt. A Blob Storage átviteli méretkorlátjairól további információt a Blob Storage céljainak méretezése című témakörben talál.
A feltöltések átviteli beállításainak megadása
Ha a teljes blobméret kisebb vagy egyenlő 256 MB-nál, a rendszer egyetlen Put Blob-kéréssel tölti fel az adatokat. Ha a blob mérete nagyobb, mint 256 MB, vagy ha a blob mérete ismeretlen, a blob adattömbökbe lesz feltöltve a Put Block hívások sorozatával, amelyet a Blokklista elhelyezése követ.
A következő tulajdonságok konfigurálhatók és hangolhatók az alkalmazás igényei szerint:
-
BlockSize: Az átvitel maximális hossza bájtban, ha blokkblobot tölt fel adattömbökbe. Alapértelmezés szerint 4 MB. -
Concurrency: A párhuzamosan használható altranszferek maximális száma. Alapértelmezett érték: 5.
Ezek a konfigurációs beállítások a következő módszerekkel történő feltöltéskor érhetők el:
A feltöltési módszer nem támogatja ezeket a beállításokat, és egyetlen kérelemben tölti fel az adatokat.
Feljegyzés
Ha nincs megadva, az ügyfélkódtárak az alapértelmezett értékeket használják az egyes adatátviteli lehetőségekhez. Ezek az alapértelmezett értékek általában az adatközponti környezetekben teljesítenek, de valószínűleg nem alkalmasak otthoni fogyasztói környezetekhez. A rosszul hangolt adatátviteli lehetőségek túlzottan hosszú műveleteket és akár időtúllépéseket is eredményezhetnek. A legjobb, ha proaktívan teszteli ezeket az értékeket, és az alkalmazás és a környezet igényeinek megfelelően finomhangolja őket.
Blokkméret
Az BlockSize argumentum az átvitel maximális hossza bájtban, amikor blokkblobot tölt fel adattömbökbe.
Az adatok hatékony mozgásának fenntartása érdekében előfordulhat, hogy az ügyfélkódtárak nem mindig érik el az BlockSize összes átvitel értékét. A művelettől függően az átviteli méret maximális támogatott értéke eltérő lehet. A Blob Storage átviteli méretkorlátairól további információt a Blob Storage méretezési céljainak diagramjában talál.
Mintakód
Az alábbi példakód bemutatja, hogyan definiálhat értékeket egy UploadFileOptions-példányhoz, és hogyan adhatja át ezeket a konfigurációs beállításokat paraméterként az UploadFile-nak.
Az ebben a mintában megadott értékek nem javaslatok. Ezeknek az értékeknek a megfelelő finomhangolásához figyelembe kell vennie az alkalmazás adott igényeit.
func uploadBlobWithTransferOptions(client *azblob.Client, containerName string, blobName string) {
// Open the file for reading
file, err := os.OpenFile("path/to/sample/file", os.O_RDONLY, 0)
handleError(err)
defer file.Close()
// Upload the data to a block blob with transfer options
_, err = client.UploadFile(context.TODO(), containerName, blobName, file,
&azblob.UploadFileOptions{
BlockSize: int64(8 * 1024 * 1024), // 8 MiB
Concurrency: uint16(2),
})
handleError(err)
}
Ebben a példában a párhuzamos átviteli feldolgozók számát 2-es értékre állítjuk a Concurrency mező használatával. Ez a konfiguráció egyszerre legfeljebb két kapcsolatot nyit meg, így a feltöltés párhuzamosan történik. Ha a blob mérete nagyobb, mint 256 MB, a blob legfeljebb 8 MiB méretű adattömbökbe tölthető fel a Block_Size mező által megadott módon.
A feltöltések teljesítményével kapcsolatos szempontok
A feltöltés során a Storage-ügyfélkódtárak egy adott feltöltési adatfolyamot több részadatra osztanak fel az ügyfélépítés során meghatározott konfigurációs beállítások alapján. Minden alterhelés saját dedikált hívással rendelkezik a REST-művelethez. A Storage-ügyfélkódtár párhuzamosan kezeli ezeket a REST-műveleteket (az átviteli lehetőségektől függően) a teljes feltöltés befejezéséhez.
A következő szakaszokban megtudhatja, hogyan kezeli az ügyfélkódtár a pufferelést.
Feljegyzés
A blokkblobok maximális blokkszáma 50 000 blokk. A blokkblob maximális mérete tehát 50 000-szerese Block_Size.
Pufferelés feltöltések során
A Storage REST-réteg nem támogatja a REST feltöltési művelet felvételét ott, ahol abbahagyta; az egyes átvitelek befejeződnek vagy elvesznek. A streamfeltöltések rugalmasságának biztosítása érdekében a Storage-ügyfélkódtárak pufferelik az egyes REST-hívások adatait a feltöltés megkezdése előtt. A hálózati sebesség korlátozásai mellett ez a pufferelési viselkedés is okot ad arra, hogy kisebb értéket BlockSizevegyenek figyelembe, még akkor is, ha egymás után töltik fel. Az érték BlockSize csökkentése csökkenti az egyes kéréseken pufferelt adatok maximális mennyiségét, és a sikertelen kérések minden újrapróbálkozását. Ha egy bizonyos méretű adatátvitel során gyakori időtúllépéseket tapasztal, a BlockSize pufferelési idő csökkentésével jobb teljesítményt eredményezhet.
Letöltések teljesítményhangolása
Az adatátviteli lehetőségek megfelelő finomhangolása kulcsfontosságú a letöltések megbízható teljesítményéhez. A tárolóátvitelek több altranszferre vannak particionálva ezen tulajdonságok értékei alapján.
Letöltések átviteli beállításainak megadása
Az alkalmazás igényei szerint az alábbi tulajdonságok hangolhatók:
-
BlockSize: A blob letöltéséhez használt maximális adattömbméret. Alapértelmezés szerint 4 MB. -
Concurrency: A párhuzamosan használható altranszferek maximális száma. Alapértelmezett érték: 5.
Ezek a lehetőségek a következő módszerek használatával történő letöltéskor érhetők el:
A DownloadStream metódus nem támogatja ezeket a beállításokat, és egyetlen kérelemben tölti le az adatokat.
Mintakód
Az alábbi példakód bemutatja, hogyan definiálhat értékeket egy DownloadFileOptions-példányhoz, és hogyan adhatja át ezeket a konfigurációs beállításokat paraméterként a DownloadFile-nak.
Az ebben a mintában megadott értékek nem javaslatok. Ezeknek az értékeknek a megfelelő finomhangolásához figyelembe kell vennie az alkalmazás adott igényeit.
func downloadBlobTransferOptions(client *azblob.Client, containerName string, blobName string) {
// Create or open a local file where we can download the blob
file, err := os.Create("path/to/sample/file")
handleError(err)
// Download the blob to the local file
_, err = client.DownloadFile(context.TODO(), containerName, blobName, file,
&azblob.DownloadFileOptions{
BlockSize: int64(4 * 1024 * 1024), // 4 MiB
Concurrency: uint16(2),
})
handleError(err)
}
A letöltések teljesítményével kapcsolatos szempontok
A letöltés során a Storage-ügyfélkódtárak egy adott letöltési kérelmet több alletöltésre osztottak fel az ügyfélépítés során meghatározott konfigurációs beállítások alapján. Minden alletöltés saját dedikált hívással rendelkezik a REST-művelethez. Az átviteli lehetőségektől függően az ügyfélkódtárak párhuzamosan kezelik ezeket a REST-műveleteket a teljes letöltés befejezéséhez.
Kapcsolódó tartalom
- Ez a cikk a Blob Storage Go-hoz készült fejlesztői útmutatójának része. Az alkalmazás buildeléséhez tekintse meg a fejlesztői útmutatók teljes listáját.
- Az Azure Storage-műveletek teljesítményét befolyásoló tényezőkről további információt a Blob Storage késése című témakörben talál.
- A Blob Storage-t használó alkalmazások teljesítményének optimalizálásához szükséges tervezési szempontok listáját a Blob Storage teljesítmény- és méretezhetőségi ellenőrzőlistájában tekintheti meg.