Keresési szolgáltatás kapacitásának becslése és kezelése
Az Azure AI Searchben a kapacitás a számítási feladatra skálázható replikákon és partíciókon alapul. A replikák a keresőmotor másolatai. A partíciók tárolási egységek. Minden új keresési szolgáltatás mindegyikével kezdődik, de egymástól függetlenül adhat hozzá vagy távolíthat el replikákat és partíciókat az ingadozó számítási feladatok kezeléséhez. A kapacitás hozzáadása növeli a keresési szolgáltatás futtatásának költségeit.
A replikák és partíciók fizikai jellemzői, például a feldolgozási sebesség és a lemez I/O-jának fizikai jellemzői szolgáltatási szint szerint változnak. Egy standard keresési szolgáltatásban a replikák és partíciók gyorsabbak és nagyobbak, mint az alapszintű szolgáltatásoké.
A kapacitás módosítása nem azonnali. A partíciók üzembe helyezése vagy leszerelése akár egy órát is igénybe vehet, különösen a nagy mennyiségű adatot tartalmazó szolgáltatások esetében.
Keresési szolgáltatás skálázása során az alábbi eszközök és megközelítések közül választhat:
Feljegyzés
A magasabb kapacitáspartíciók azonos számlázási sebességgel érhetők el a 2024 áprilisa és májusa után létrehozott újabb szolgáltatásoknál. További információkért lásd a partícióméret-frissítések szolgáltatási korlátait .
Fogalmak: keresési egységek, replikák, partíciók
A kapacitás a partíciók és replikák kombinációiban lefoglalható keresési egységekben van kifejezve.
Koncepció | Definíció |
---|---|
Keresési egység | A teljes rendelkezésre álló kapacitás egyetlen növekménye (36 egység). A szolgáltatás futtatásához legalább egy egység szükséges. Az első replika- és partíciópár az első keresési egység. A replikák vagy partíciók minden további példánya azonban egy további keresési egységet használ fel. Például egy replikával és partícióval (egy keresési egység) kezdi, hozzáad egy második replikát, és most két keresési egységet használ. A keresési egység egyben az Azure AI-Search szolgáltatás számlázási egysége is. |
Kópia | A keresési szolgáltatás példányai, amelyeket elsősorban a lekérdezési műveletek terheléselosztására használnak. Minden replika egy index egy példányát tárolja. Ha három replikát foglal le, három példányban érhető el egy index a lekérdezési kérelmek kiszolgálásához. |
Partíció | Fizikai tárolás és I/O olvasási/írási műveletekhez (például index újraépítésekor vagy frissítésekor). Minden partícióhoz tartozik egy szelet a teljes indexből. Ha három partíciót foglal le, az index harmadokra van osztva. |
Tekintse át a partíciók és replikák tábláját a 36 egységkorlát alatt maradó lehetséges kombinációkért.
Mikor kell kapacitást hozzáadni?
Kezdetben a szolgáltatás egy minimális erőforrásszintet foglal le, amely egy partícióból és egy replikából áll. A választott szint határozza meg a partíció méretét és sebességét, és minden réteg különböző forgatókönyvekhez illeszkedő jellemzők köré van optimalizálva. Ha magasabb szintű szintet választ, előfordulhat , hogy kevesebb partícióra van szüksége, mint ha az S1-et használja. Az önkiszolgáló teszteléssel megválaszolandó kérdések egyike, hogy egy nagyobb és drágább partíció jobb teljesítményt nyújt-e, mint egy alacsonyabb szinten kiépített szolgáltatás két olcsóbb partíciója.
Egyetlen szolgáltatásnak elegendő erőforrással kell rendelkeznie az összes számítási feladat (indexelés és lekérdezés) kezeléséhez. Egyik számítási feladat sem fut a háttérben. Ütemezheti az indexelést olyan időszakokra, amikor a lekérdezési kérések természetesen ritkábban fordulnak elő, de a szolgáltatás máskülönben nem rangsorolja az egyik feladatot a másikhoz. Emellett bizonyos mértékű redundancia kisimítja a lekérdezési teljesítményt a szolgáltatások vagy csomópontok belső frissítésekor.
Néhány irányelv a kapacitás hozzáadásának meghatározásához:
- A szolgáltatásiszint-szerződés magas rendelkezésre állási feltételeinek teljesítése
- A HTTP 503-hibák gyakorisága növekszik
- Nagy lekérdezési kötetek várhatók
Általános szabály, hogy a keresési alkalmazásoknak általában több replikára van szükségük, mint a partíciókra, különösen akkor, ha a szolgáltatásműveletek elfogultak a lekérdezési számítási feladatok felé. Minden replika az index egy-egy példánya, amely lehetővé teszi a szolgáltatás számára a kérelmek több példány közötti terheléselosztását. Az indexek terheléselosztását és replikálását az Azure AI Search felügyeli, és bármikor módosíthatja a szolgáltatáshoz lefoglalt replikák számát. Egy Standard keresési szolgáltatásban legfeljebb 12 replikát, egy alapszintű keresési szolgáltatásban pedig 3 replikát foglalhat le. A replikafoglalás az Azure Portalról vagy a programozott lehetőségek egyikéből végezhető el.
A további partíciók hasznosak az intenzív indexelési számítási feladatokhoz. A további partíciók olvasási/írási műveleteket osztanak szét nagyobb számú számítási erőforrás között.
Végül a nagyobb indexek lekérdezése tovább tart. Így előfordulhat, hogy a partíciók növekményes növekedéséhez kisebb, de arányos replikákra van szükség. A lekérdezések és a lekérdezéskötet összetettsége azt határozza meg, hogy a lekérdezések végrehajtása milyen gyorsan fordul meg.
Feljegyzés
További replikák vagy partíciók hozzáadása növeli a szolgáltatás futtatásának költségeit, és enyhe eltéréseket okozhat az eredmények sorrendjében. Ellenőrizze a díjkalkulátort , hogy megértse a további csomópontok hozzáadásának számlázási következményeit. Az alábbi diagram segíthet kereszthivatkozást adni az adott konfigurációhoz szükséges keresési egységek számának. További információ arról, hogy a további replikák hogyan befolyásolják a lekérdezések feldolgozását, tekintse meg az eredmények sorrendjét.
Kapacitás módosítása
A keresési szolgáltatás kapacitásának növeléséhez vagy csökkentéséhez adjon hozzá vagy távolítson el partíciókat és replikákat.
Jelentkezzen be az Azure Portalra , és válassza ki a keresési szolgáltatást.
A Beállítások területen nyissa meg a Méretezés lapot a replikák és partíciók módosításához.
Az alábbi képernyőképen egy standard szolgáltatás látható, amely egyetlen replikával és partícióval van kiépítve. Az alsó képlet azt jelzi, hogy hány keresési egység van használatban (1). Ha az egységár 100 dollár (nem valós ár), a szolgáltatás futtatásának havi költsége átlagosan 100 dollár lenne.
A csúszkával növelheti vagy csökkentheti a partíciók számát. Válassza a Mentés lehetőséget.
Ez a példa egy második replikát és partíciót ad hozzá. Figyelje meg a keresési egységek számát; ez most négy, mert a számlázási képlet replikák és partíciók szorzata (2 x 2). A kapacitás megduplázása több mint duplája a szolgáltatás futtatásának költségeinek. Ha a keresési egység költsége 100 usd volt, az új havi számla most 400 dollár lesz.
Az egyes szintek egységenkénti aktuális költségeiért látogasson el a Díjszabás oldalra.
A mentés után ellenőrizheti az értesítéseket, hogy a művelet sikeres volt-e.
A kapacitás módosítása akár 15 perctől akár több óráig is eltarthat. A folyamat elindítása után nem szakíthatja meg a műveletet, és nincs valós idejű monitorozás a replika- és partíciókorrekciókhoz. Az alábbi üzenet azonban látható marad, amíg a módosítások folyamatban vannak.
Feljegyzés
A szolgáltatás kiépítése után nem frissíthető magasabb szintre. Létre kell hoznia egy keresési szolgáltatást az új szinten, és újra kell betöltenie az indexeket. A szolgáltatáskiépítéssel kapcsolatos segítségért tekintse meg az Azure AI-Search szolgáltatás létrehozása a portálon című témakört.
A méretezési kérelmek kezelése
Méretezési kérelem beérkezésekor a keresési szolgáltatás:
- Ellenőrzi, hogy a kérelem érvényes-e.
- Megkezdi az adatok és a rendszerinformációk biztonsági mentését.
- Ellenőrzi, hogy a szolgáltatás már kiépítési állapotban van-e (jelenleg replikákat vagy partíciókat ad hozzá vagy szüntet meg).
- Megkezdi a kiépítést.
A szolgáltatás skálázása a szolgáltatás méretétől és a kérés hatókörétől függően akár 15 percet vagy akár egy órát is igénybe vehet. A biztonsági mentés az adatok mennyiségétől, valamint a partíciók és replikák számától függően több percet is igénybe vehet.
A fenti lépések nem teljesen egymást követő lépések. A rendszer például akkor kezdi el a kiépítést, amikor biztonságosan megteheti, ami lehet, hogy a biztonsági mentés leáll.
Skálázási hibák
A "Szolgáltatásfrissítési műveletek jelenleg nem engedélyezettek, mert egy korábbi kérést dolgozunk fel" hibaüzenetet az okozza, hogy megismétli a le- vagy felskálázásra vonatkozó kérést, ha a szolgáltatás már feldolgoz egy korábbi kérést.
A hiba megoldásához ellenőrizze a szolgáltatás állapotát a kiépítési állapot ellenőrzéséhez:
- A szolgáltatás állapotának lekéréséhez használja a Felügyeleti REST API-t, az Azure PowerShellt vagy az Azure CLI-t .
- Hívja meg a Get Service -t (REST) vagy azzal egyenértékűt a PowerShellhez vagy a parancssori felülethez.
- Ellenőrizze a "provisioningState" válaszát : "kiépítés"
Ha az állapot "Kiépítés", várja meg, amíg a kérés befejeződik. Az állapotnak "Sikeres" vagy "Sikertelen" értéknek kell lennie egy másik kérés megkísérlése előtt. Nincs állapot a biztonsági mentéshez. A biztonsági mentés egy belső művelet, és nem valószínű, hogy tényező lenne a skálázási gyakorlatok megszakításában.
Ha úgy tűnik, hogy a keresési szolgáltatás kiépítési állapotban elakadt, keressen használhatatlan árva indexeket, nulla lekérdezési kötettel és indexfrissítés nélkül. A használhatatlan indexek blokkolhatják a szolgáltatási kapacitás változásait. Különösen olyan indexeket keressen, amelyek CMK-titkosítással vannak eltitkolva, és amelyek kulcsai már nem érvényesek. Törölje az indexet, vagy állítsa vissza a kulcsokat az index online állapotba helyezéséhez és a méretezési művelet letiltásához.
Partíció- és replikakombinációk
Az alábbi diagram a Standard szintre és a magasabb szintre vonatkozik. Megjeleníti a partíciók és replikák összes lehetséges kombinációját, a szolgáltatásonkénti 36 keresési egység maximális értékétől függően.
1 partíció | 2 partíció | 3 partíció | 4 partíció | 6 partíció | 12 partíció | |
---|---|---|---|---|---|---|
1 replika | 1 SU | 2 SU | 3 SU | 4 SU | 6 SU | 12 SU |
2 replika | 2 SU | 4 SU | 6 SU | 8 SU | 12 SU | 24 SU |
3 replika | 3 SU | 6 SU | 9 SU | 12 SU | 18 SU | 36 SU |
4 replika | 4 SU | 8 SU | 12 SU | 16 SU | 24 SU | n/a |
5 replika | 5 SU | 10 SU | 15 SU | 20 SU | 30 SU | n/a |
6 replika | 6 SU | 12 SU | 18 SU | 24 SU | 36 SU | n/a |
12 replika | 12 SU | 24 SU | 36 SU | N.A. | N.A. | N.A. |
Az alapszintű keresési szolgáltatásokban alacsonyabb a keresési egységek száma.
A 2024. április 3. előtt létrehozott keresési szolgáltatások esetében egy alapszintű keresési szolgáltatás pontosan egy partícióval és legfeljebb három replikával rendelkezhet három termékváltozat maximális korlátja érdekében. Az egyetlen állítható erőforrás a replikák.
A 2024. április 3. után támogatott régiókban létrehozott keresési szolgáltatásokban az alapszintű szolgáltatások legfeljebb három partícióval és három replikával rendelkezhetnek. A maximális SU-korlát kilenc, amely támogatja a partíciók és replikák teljes kiegészítését.
Bármely számlázható szinten elérhető keresési szolgáltatásokhoz a létrehozás dátumától függetlenül legalább két replikára van szükség a lekérdezések magas rendelkezésre állásához.
A tarifacsomagonkénti és pénznemenkénti számlázási díjakért tekintse meg az Azure AI Search díjszabási oldalát.
Kapacitás becslése számlázható réteg használatával
A tárolási igényeket a létrehozni kívánt indexek mérete határozza meg. Nincsenek olyan szilárd heurisztika vagy általánosságok, amelyek segítenek a becslésekben. Az index méretének meghatározásának egyetlen módja a buildelés. Mérete a tokenizáláson és a beágyazásokon alapul, és hogy engedélyezi-e a javaslattevőket, a szűrést és a rendezést, vagy kihasználhatja a vektoros tömörítés előnyeit.
Javasoljuk, hogy az alapszintű vagy annál magasabb számlázható szinteket becsülje meg. Az ingyenes szint több ügyfél által megosztott fizikai erőforrásokon fut, és az Ön által nem befolyásolható tényezőknek van kitéve. Csak a számlázható keresési szolgáltatás dedikált erőforrásai képesek nagyobb mintavételi és feldolgozási időt biztosítani az index mennyiségének, méretének és lekérdezési mennyiségének reálisabb becsléséhez a fejlesztés során.
Tekintse át az egyes szintek szolgáltatási korlátait annak megállapításához, hogy az alacsonyabb szintek támogatják-e a szükséges indexek számát. Fontolja meg, hogy szüksége van-e egy index több másolatára az aktív fejlesztéshez, teszteléshez és éles környezethez.
A keresési szolgáltatásokra objektumkorlátok (indexek, indexelők, képességkészletek stb.) és tárolási korlátok vonatkoznak. Amelyik korlátot előbb eléri a rendszer, az a tényleges korlát.
Szolgáltatás létrehozása számlázható szinten. A rétegek bizonyos számítási feladatokhoz vannak optimalizálva. A Tárolóoptimalizált szint például 10 indexkorláttal rendelkezik, mivel úgy van kialakítva, hogy alacsony számú nagyon nagy indexet támogatjon.
Ha nem biztos az előre jelzett terhelésben, kezdjen alacsonyan, alapszintű vagy S1 szinten.
Ha a tesztelés nagy léptékű indexelést és lekérdezési terhelést is tartalmaz, kezdjen magasra, S2-nél vagy akár S3-nál is.
Ha nagy mennyiségű adatot indexel, és a lekérdezési terhelés viszonylag alacsony, az L1 vagy L2 tárolóra optimalizált tárolással kell kezdenie, mint egy belső üzleti alkalmazás esetén.
Hozzon létre egy kezdeti indexet annak meghatározásához, hogy a forrásadatok hogyan fordítják le az indexet. Csak így becsülhet meg indexméretet. A meződefiníciók attribútumai hatással vannak a fizikai tárolási követelményekre:
Kulcsszókeresés esetén a mezők szűrhetőként és rendezhetőként való megjelölése növeli az index méretét.
A vektorkereséshez paramétereket állíthat be a vektorméret csökkentésére.
Monitorozza a tárterületet, a szolgáltatási korlátokat, a lekérdezési kötetet és a késést a portálon. A portál megjeleníti a másodpercenkénti lekérdezéseket, a szabályozott lekérdezéseket és a keresési késést. Ezek az értékek segítenek eldönteni, hogy a megfelelő szintet választotta-e.
Replikák hozzáadása magas rendelkezésre álláshoz vagy a lassú lekérdezési teljesítmény csökkentése érdekében.
Nincs irányelv arra vonatkozóan, hogy hány replikára van szükség a lekérdezési terhelések kezeléséhez. A lekérdezés teljesítménye a lekérdezés összetettségétől és a versengő számítási feladatoktól függ. Bár a replikák hozzáadása egyértelműen jobb teljesítményt eredményez, az eredmény nem szigorúan lineáris: a három replika hozzáadása nem garantálja a háromszoros átviteli sebességet. A QPS megoldáshoz való becsléséhez a teljesítményelemzése és a lekérdezések monitorozása című témakörben talál útmutatást.
Az invertált indexek esetében a méretet és az összetettségeket a tartalom határozza meg, nem feltétlenül a benne tárolt adatok mennyisége. A nagy redundanciával rendelkező nagy adatforrások kisebb indexet eredményezhetnek, mint egy nagy mértékben változó tartalmat tartalmazó kisebb adathalmaz. Ezért ritkán lehet az index méretét az eredeti adathalmaz mérete alapján következtetni.
A tárolási követelmények felfújhatók, ha olyan adatokat is tartalmaz, amelyeket soha nem keresnek. Ideális esetben a dokumentumok csak a keresési élményhez szükséges adatokat tartalmazzák.
Szolgáltatásiszint-szerződéssel kapcsolatos szempontok
Az ingyenes szint és az előzetes verziójú funkciókra nem vonatkoznak szolgáltatásiszint-szerződések (SLA-k). Az összes számlázható szint esetében az SLA-k akkor lépnek érvénybe, amikor elegendő redundanciát épít ki a szolgáltatáshoz.
Két vagy több replika felel meg a lekérdezési (olvasási) SLA-knak.
Három vagy több replika felel meg a lekérdezési és indexelési (olvasási-írási) SLA-knak.
A partíciók száma nem befolyásolja az SLA-kat.