Felhőbeli kihívások: Kommunikáció

Befejeződött

Üzenetek az elosztott memóriamegosztási (DSM) rendszerekben is vannak átadva belsőleg a gépek között, habár a felhasználók számára teljesen láthatatlanul. Így a koordináció lényege mindig az üzenetek átadása. Kijelenthető, hogy az elosztott rendszerek kommunikációjának egyetlen módja az üzenetek átadása. Coulouris és munkatársai éppen ezt használják az elosztott rendszerek definíciójaként.1 A felhő és a hasonló elosztott rendszerek működése nagy mértékben függ attól, hogy a mögöttes hálózat elég gyorsan juttatja-e el az üzeneteket a célentitásokhoz, ennek három fő oka pedig a teljesítmény, a költség és a szolgáltatásminőség. A gyors üzenetkézbesítés minimálisra csökkenti a végrehajtási időt, csökkenti a költségeket (mert a felhőalkalmazások gyorsabban befejeződnek), és – különösen az audió- és videóalkalmazások esetében – javítja a szolgáltatás minőségét. Ez a feltétel a felhőprogramok fejlesztésének alapvető problémájává teszi a kommunikációt. Az sem túlzás, hogy a kommunikáció a felhő lényege, és ez alkotja a szűk keresztmetszetei egyikét.

Az elosztott rendszerek két módon kezelhetik a felhőbeli kommunikáció szűk keresztmetszeteit.

Közös elhelyezés

A munka számítógépek közötti elosztása/párhuzamosítása a sokat kommunikáló entitások közös elhelyezésére törekszik. Ez a stratégia csökkentheti a felhő hálózatának terhelését, ezáltal javítja a teljesítményt. Ennek a célnak a megvalósítása azonban nem olyan egyszerű, amilyennek tűnik. A szokásos élvágási stratégia célja például az, hogy úgy ossza szét a gráf csúcsait p egyenlő súlyú partícióban p processzorra, hogy a partíciók közötti élek összes súlya minimális legyen.

Ennek a stratégiának az alapos vizsgálata súlyos hátrányt tár fel, amely közvetlenül érinti a kommunikációt. A 10. ábrán korábban bemutatott minimális vágás, amely az élvágási metrika eredménye, nem veszi figyelembe azt a tényt, hogy egyes élek ugyanazt az információfolyamot ábrázolhatják. Az ábrán a $P_{1}$ partíció $v_{2}$ csúcsa például kétszer küldi el ugyanazt az üzenetet a $P_{2}$ felé (pontosabban a $P_{2}$ $v_{4}$ és $v_{5}$ csúcsának), pedig az üzenetet elég volna egyszer elküldeni, hiszen $v_{4}$ és $v_{5}$ ugyanazon a gépen lesz. A $v_{4}$ és a $v_{7}$ csúcsnak ugyanígy elég volna egy üzenetet küldenie a $P_{1}$ partícióba, de kétszer teszik meg.

A szabványos élvágási metrika tehát túl sok kommunikációval számol, ezért felesleges hálózati forgalmat eredményez. Emiatt a kapcsolat sávszélessége túlterheltté válhat, és a teljesítmény is romolhat. A kiegyensúlyozatlan terhelés akkor is előidézhet szűk keresztmetszetet, ha a kommunikáció teljes mennyisége (vagy az üzenetek száma) hatékonyabban van minimalizálva. Megtörténhet például, hogy bár a kommunikáció mennyisége minimális, egyes gépeknek nagyobb (több csúcsot tartalmazó) partíciók jutnak, mint másoknak. Egy ideális, bár nehezen megvalósítható megoldás a kommunikációs többletmunka olyan minimalizálása, amellyel egyben a gépek számítási terhelésének különbségei is elkerülhetők. Ennek az utóbbi stratégiának a célkitűzése úgy elosztani a munkát a gépek között, hogy a sokat kommunikáló entitások egymáshoz közel legyenek elhelyezve.

Effective mapping of graph partitions to cluster machines. A mapping of P1 to the other rack while P2 and P3 remain on the same rack causes more network traffic and potentially degraded performance.

14. ábra: A gráfpartíciók hatékony leképezése fürtgépekre. A P1 leképezése a másik állványra, míg a P2 és a P3 ugyanazon az állványon marad, nagyobb hálózati forgalmat és potenciálisan romló teljesítményt okoz.

Hatékony partícióleképezés

A legnagyobb hatékonyság érdekében a partíciók – akár gráf-, akár adatpartíciók – gépekre való leképezéséhez használt stratégiának teljesen tisztában kel lennie a mögöttes hálózat topológiájával. Ehhez általában meg kell határozni azoknak a hálózati kapcsolóknak a számát, amelyeken egy üzenet áthalad a célja eléréséig. A 14. ábrán látható konkrét példa a 10. ábrán (egy korábbi leckében) bemutatott gráfot ábrázolja, valamint egy leegyszerűsített fürtöt, amelyet hat, fa struktúrájú hálózatba kötött számítógép alkot. A fürt hálózata szekrénykapcsolót (RS) tartalmaz, amelyek mindegyikéhez három gép csatlakozik, valamint egy központi kapcsolót (CS), amely a két RS-t kapcsolja össze. Lényeges, hogy a két számítógép közötti sávszélesség függ azoknak a hálózati topológiában elfoglalt egymáshoz viszonyított helyzetétől. Az egy szekrényben lévő gépek kapcsolatának sávszélessége például nagyobb, mint a külön szekrényekben lévők közötti. Ezért érdemes minimalizálni a szekrények közötti hálózati forgalmat. Ha a $P_{1}$, $P_{2}$ és $P_{3}$ partíció ebben a sorrendben az $M_{1}$, $M_{2}$ és $M_{3}$, gépre van leképezve, akkor a $P_{1}$, $P_{2}$ és $P_{3}$ közötti kommunikáció kisebb hálózati késéssel jár, mintha külön szekrényekbe lennének leképezve. Pontosabban fogalmazva, amikor a $P_{1}$ a $P_{2}$ partícióval kommunikál, egy $P_{1}$ és $P_{2}$ közötti üzenet továbbítása csak egy ugrással jár. Ezzel szemben, ha a $P_{1}$ egy másik szekrényben elhelyezett $P_{2}$ partícióval kommunikálna, minden üzenet három ugrással járna. Kevesebb ugrás nyilvánvalóan kisebb hálózati késést okoz, és ez a teljesítmény általános javulásával jár. Sajnos ezt a célt a felhőkben nem olyan egyszerű elérni, amilyennek tűnik, ennek egyetlen fő oka pedig az, hogy – főleg a nyilvános felhőrendszerekben – a hálózati topológiák rejtettek. A hálózat topológiája ennek ellenére is megállapítható (bár nem hatékonyan) olyan teljesítménytesztekkel, mint a Netperf, megmérve a pontok közötti TCP-adatfolyamok sávszélességét az összes fürtcsomópont-pár között. Ez alapján megbecsülhető a csomópontok egymáshoz viszonyított elhelyezkedése, és ésszerű következtetések vonhatók le a fürt hardveres topológiájával kapcsolatban.


Hivatkozások

  1. G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair (May 2011). Elosztott rendszerek: Fogalmak és tervezési Addison-Wesley
  2. Netperf
  3. M. Hammoud, M. S. Rehman és M. F. Sakr (2012). Súlypont-csökkentési feladatütemezés a MapReduce hálózati forgalom felhőjének csökkentésére

Tesztelje tudását

1.

Milyen előnnyel jár az egymással sokat kommunikáló entitások egymáshoz közeli elhelyezése?