MTA SZTAKI Department of Distributed Systems
A KOPI Plágiumkeresı dinamikus skálázási kísérletei Micsik András
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Bevezetés
DSD = Department of Distributed Systems vagyis: Elosztott Rendszerek Osztály
szotar.sztaki.hu kopi.sztaki.hu lod.sztaki.hu radio.sztaki.hu szavazas.sztaki.hu
kopi.sztaki.hu 2
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Terjedıben a plagizálás
3
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
A kopi.sztaki.hu portál 2004-ben indult egynyelvő plágium keresési szolgáltatással (magyar és angol nyelveken) 2009: 10.000 regisztrált felhasználó 2011-ben a világon elsıként bemutattuk a fordítási plágiumkeresıt
A KOPI Plágiumkeresı
Ez képes detektálni, ha valaki például az angol Wikipedia-ból lefordított bekezdéseket használ fel Az új algoritmus számítási igénye nagyságrendekkel nagyobb, mint az egynyelvő plágiumkeresésé
2013: 25.000 regisztrált felhasználó
4
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
A KOPI Portál
5
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Használat
1. 2. 3. 6
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Eredmények
7
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
A plágiumkeresés folyamata
A plágiumkeresés folyamata
A felhasználó feltölti a dokumentumot A KOPI Motor új feladatot kér a Portáltól A KOPI Motor feldolgozza a dokumentumot Eközben teljes szöveges kéréseket ad ki a Keresımotornak A KOPI Motor összeállítja az eredményt és visszaküldi a Portálnak A felhasználó értesítést kap, hogy az eredmény elkészült. Az eredmény egy listát tartalmaz az esetlegesen másolt részekrıl és a plágium valószínőségérıl
1. A felhasználó feltölti a dokumentumot
KOPI Portál Feldolg. sor 2. Új dokumentum kérése
4. Eredménykészítés
KOPI Motor 3. Teljes szöveges keresések
Kereső őmotor Dokumentum index
8
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
A cél: stabil szolgáltatásminıség fenntartása
A kísérletrıl
Egy dokumentum ellenırzése igen változó, nagyban függ a mérettıl, tipikusan 10-50 perc Amikor túl sok dokumentum érkezik be, ez akár több napra is nıhet
A kísérlet során
Modellezzük a tipikus felhasználói tevékenységet Különféle skálázási módszereket mérünk heterogén felhı-szövetségekben
9
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Skálázás
10
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
A skálázás módjai
Vertical scaling „Scaling up”
Horizontal scaling „Scaling out”
11
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Skálázási lehetıségeink
KOPI Portál Feldolg. sor
KOPI motor
KOPI motor
NLP Eszközök
NLP Eszközök
1-75 MySQL
Aggregátor
MySQL
Aggregátor
Keresımotor
Keresımotor
Keresımotor
Keresımotor
Dokumentum index partíció
Dokumentum index partíció
Dokumentum index partíció
Dokumentum index partíció
1-7
12
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Kísérleti architektúra
13
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
BonFIRE: elosztott felhı tesztkörnyezet
14
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
A KOPFire kísérlet
Mérések
Skálázó algoritmus Skálázási mőveletek
BonFIRE API parancsok
15
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
VM típusok (lite, small, large, stb. + egyedi) Adatblokkok
OS vagy DATA, perzisztens, shared, stb. Több blokk is kapcsolható egy VM-hez
Hálózat
BonFIRE lehetıségek
VM-ek elérhetık: SSH gateway, VPN Speciális lehetıségek: AutoBahn, Virtual Wall, háttérforgalom generálás, stb.
Monitorozás Elasticity as a Service Értesítések (RabbitMQ) 16
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
A BonFIRE felhasználói portál
17
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Monitorozás
Egységes monitorozási lehetıség Zabbix-szal
Fizikai gépek Virtuális gépek ECO metrics Saját mérések
18
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
BonFIRE API
REST API Experiment descriptor: JSON vagy OCCI
my-vm lite <storage href="/locations/fr-inria/storages/165" />
Restfully (Ruby) experiment.computes.submit( :name => "VM#{experiment['id']}", :instancetype => "small", :disk => [{ :storage => inria.storages.find{|s| s['name'] == SERVER_IMAGE_NAME}, :type => "OS" }], :location => inria )
CLI (parancssor)
bfcompute create ‘vm0' '/locations/de-hlrs/storages/2088' 23617 19
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Yours Restfully...
VM létrehozás vm = experiment.computes.submit(...)
Szoftver futtatás vm.waitForState(‘RUNNING’) vm.ssh do ….
Megfigyelés values = experiment.zabbix.metric('system.cpu.util[,system,a vg1]', :type => :numeric, :hosts => vm).values
Leállítás vm.update(:status => ‘STOPPED’) vm.delete 20
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
VM típusok (3 felhıben):
KOPFire rendszerelemek
(Experiment controller) KOPI Frontend KOPI Engine Fulltext Aggregator Fulltext Engine
Adatpartíciók:
Kis index: 5 x 2.5 GB blocks Nagy index: 11 x 7.2 GB blocks 3 felhıben közvetlenül 4. felhıbıl NFS-en keresztül
21
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
0.03 0.00
0.01
0.02
Density
0.04
0.05
0.06
Mit mérjünk?
0
200
400
600
800
cps
Kell egy metrika a feldolgozási sebesség mérésére: cps (characters per second)
Fontos még: Sorban várakozó fájlok és karakterek száma Feldolgozó egységek száma … 22
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
t1 t2
t4 t3
feldolgozott karakterek / utolsó n perc = pillanatnyi feldolgozási sebesség
pcps (processing cps)
A dokumentum a sorban A dokumentum feldolgozása
cps
Sokféle cps metrika
dokumentum mérete / (t3 – t2)
qcps (queue cps)
dokumentum mérete / (t4 – t1) = a felhasználó által érzékelt sebesség
23
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Méretezés
Mi a rendszerkomponensek optimális aránya? KOPI Engine VM – process-ek – Fulltext Cluster – thread-ek 24
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Teljesítménynövekedés
25
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
NFS a felhık között?
26
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Skálázási lehetıségek
Különbözı skálázási algoritmusokat próbáltunk ki
A sorban várakozó dokumentumok száma alapján Kapzsi Takarékos Óvatos
Feldolgozási sebesség alapján
Tempomat: Adott sebességet közelítı
Stb. 27
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Skálázási módszerek step
6
6
greedy
5
queue size kopi engines
4 0
0
1
1
2
3
number
3 2
number
4
5
queue size kopi engines
0
5
10
15
20
25
0
5
10
15
20
25
30
time
time
speed 6
6
thrifty
queue size kopi engines 5 4 3
number
3
2
2
1
1
0
0
number
4
5
queue size kopi engines
0
5
10
15
20
25 0
time
10
20
30
40
50
60
70
time
28
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Hibatőrés
A skálázás során idınként amúgy is rá kell nézni az infrastruktúrára... ...ilyenkor szoftver és hardver hibákat is ki lehet küszöbölni... ...mivel a komponensek már virtuális gépekben futnak
29
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Szimuláció
Pár órás tesztek nem elegendıek Hogyan lehetne több havi futáson vizsgálni a skálázódást? -> Szimuláció! Az alapadatok ismertek, pl.
VM-ek indításához, leállításához szükséges idı Adott VM válaszidejének átlaga, eloszlása
30
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Szimulációk értékelése
Mit kell nézni egy hónapos futás esetén?
Legrosszabb feldolgozási esetek Átlagos feldolgozási idı A feldolgozási idı szórása A becsült költségek 31
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
2012 januári forgalom szimulációja
180 160 140 120 worst speed 100
avg speed
80
speed sd cost (hours)
60 40 20 0 speed 100
speed 130
speed 80
fix 1
fix 2
greedy
thrifty
stepper
Költségszámítás megkezdett órák alapján
32
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
2012 júniusi forgalom szimulációja
250
200
worst speed
150
avg speed speed sd 100
cost
50
0 speed 100
speed 130
speed 80
fix 1
fix 2
greedy
thrifty
stepper
Költségszámítás megkezdett órák alapján 33
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Két módszer összehasonlítása greedy
180 160 140 120 100 80 60 40
worst speed avg speed cost
20 0 1
2
3
4
5
6
7
8
month
stepper 200 180 160 140 120 100 80 60 40 20 0
worst speed avg speed cost
1
2
3
4
5
6
7
8
month
34
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Végsı összehasonlítás
200 180 160 140 worst speed
120 100
avg speed
80
cost
60 40 20
ift y th r
dy gr ee
r pe
13 d ee
sp
st ep
0
0 10 d ee
sp
ed
80
2 sp e
fix
fix
1
0
A megjelenített értékek 8 hónap átlagai 35
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
Összefoglalás
Terhelési problémák tesztelésére jó lehetıség egy cloud testbed A skálázás nem csak gyorsít, de más elınyökkel is jár, pl. hibatőrés A BonFIRE testbed
Elérhetı lesz legalább 2014 ıszéig Nyílt hozzáférés 1 napon belül
36
dsd .szta ki.hu
MTA SZTAKI Department of Distributed Systems
www.bonfire-project.eu kopi.sztaki.hu
Köszönöm a figyelmet!
[email protected]
37