150 likes | 278 Views
Rozloženie záťaže pri top-k fazetovom vyhľadávanÃ. Vedúci práce RNDr. Peter Gurský, PhD. RieÅ¡iteľ práce Bc. Juraj Bobák. Use Case. request. S i1. click. D i1. response. S i1. read. D i2. S i3. D i3. S ij. D ij. Charakteristika problému.
E N D
Rozloženie záťaže pri top-k fazetovom vyhľadávaní Vedúci práce RNDr. Peter Gurský, PhD. Riešiteľ práce Bc. Juraj Bobák
Use Case request Si1 click Di1 response Si1 read Di2 Si3 Di3 Sij Dij
Charakteristika problému „vstupom“ problému je vytvoriť systém narozloženie záťaže pri top-k fazetovomvyhľadávaní pri takomto vyhľadávaní sa vykonávajú rozdielne zložité dopyty, ktoré je potrebné rozdeľovať medzi rôzne výkonné servery pri zohľadnení ich vyťaženosti atribútom rozloženia záťaže je taktiež počet používateľov vytvárajúcich dopyty pri vyhľadávaní
Ciele • Požiadavky na Load Balancer • Fail-Over – reagovať na nedostupnosť serveru • Scalability – rozšírenie clusteru o server zvýši výkon clusteru • Analýza náročnosti dopytov • Rozdeľovanie záťaže na základe vyťaženia serverov a zložitosti dopytov
Vyťaženie serveru Na základe výkonu, vyťaženosti CPU a operačnej pamäte spočítať vyťaženosť serveru Rozposielať správy o vyťaženosti po sieti obežníkmi (broadcast)
Aplikácia na zistenie vyťaženia serveru • Dve časti: Messenger a Listener • Messenger.js • odosiela dáta obežníkmi po sieti o vytaženosti CPU, pamäte a siete • každý typ dát odosiela v inom čase a asynchrónne • Listener.js • počúva na sieti obežníky a prijímané dáta o každom stroji ukladá • na požiadanie vráti aktuálny stav serverov
Náročnosť dopytov zistiť náročnosť dopytov Upravovať náročnosť dopytov „live“ podľa empiricky získaného očakávaného času a reálnych prevádzkových časov (tiež vhodné na varovanie o problémoch)
Náročnosť dopytov • Uložiť konfiguráciu náročnosti dopytov do konfiguračného súboru, ktorý bude obsahovať náročnosť na: • pamäť serveru • procesor stroja • sieť (tá by mala byť rovnaká - top-k) • záleží tiež na použitom úložisku • je rozdiel v náročnosti na operačnú pamäť pri databáze • MySQL a Indexe
Zisťovanie náročnosti dopytov • dopyty pre projekt „kapsa“ • zatiaľ len jeden typ dopytu– fullscan domény • potreba dát na testovanie • aktuálne dáta • náhodne vygenerované dáta
Testovanie dopytu – čas odpovede testovali sme dopyt na 17-ich doménach 6 rovnakých databáz, z ktorých každá mala postupne o polovicu menšiu doménu (o polovicu menej záznamov) 100 dopytov pre každú doménu v každej databáze
Algoritmy pre LoadBalancer LoadBalancer - dva varianty algoritmu 1. algoritmus zohľadňuje len vyťaženie CPU a dostatok voľnej operačnej pamäte na výpočet dopytu 2. algoritmus pracuje s premenlivými váhami na základe vyťaženia CPU a voľnej operačnej pamäte pre n dopytov s najvyššou spotrebou operačnej pamäte
Testovanie LoadBalancerov mod_proxy v základnom nastavení - mod_proxy mod_proxy s nastavenými váhami serverov – mod_proxy_ver2 mod_jk v základnom nastavení – mod_jk_ver1 mod_jk s nastavenými váhami serverov – mod_jk_ver2 kapsa LoadBalancer – algoritmus I – kapsa_lb_ver2 kapsa LoadBalancer – algoritmus II – kapsa_lb_ver3