Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Potrebna količina rama kod mysql-a

[es] :: MySQL :: Potrebna količina rama kod mysql-a

[ Pregleda: 2558 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 1624
..141.127-dsl.net.metronet.hr.



+19 Profil

icon Potrebna količina rama kod mysql-a16.11.2008. u 08:36 - pre 187 meseci
koliko treba rama na serveru po klijentu?

recimo imamo bazu u TB, 200 klijenata koji istovremeno rade sa bazom.
server je isključivo samo za bazu.
jel dosta do 20 MB po klijentu + 20 MB po svakom GB za držanje baze?

 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.sme.bredbandsbolaget.se.

Sajt: mysql.rs


+2377 Profil

icon Re: Potrebna količina rama kod mysql-a16.11.2008. u 12:15 - pre 187 meseci
Citat:
MarkoBalkan: koliko treba rama na serveru po klijentu?

recimo imamo bazu u TB, 200 klijenata koji istovremeno rade sa bazom.
server je isključivo samo za bazu.
jel dosta do 20 MB po klijentu + 20 MB po svakom GB za držanje baze?


ne znam kakav je inace dogovor na samom forumu ali mislim da bi za ovo pitanje trebalo otvoriti novu temu :D

sto se memorije tice, pogledaj: http://forge.mysql.com/tools/tool.php?id=44 pa ce ti biti jasnije, za svako detaljnije pitanje, molim te otvori posebnu temu posto nema bas trossenje memorije veze sa kupovinom licenci :)


 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
...143.37-dsl.net.metronet.hr.



+19 Profil

icon Re: Potrebna količina rama kod mysql-a16.11.2008. u 13:21 - pre 187 meseci

426.0 MB for global stuff
20.2 MB per thread
2.4 GB total (with 100 active threads)
and additionally:
16.0 MB for each HEAP table
16.0 MB for each temporary table


znači treba mi 426 MB+20.2/po useru + 16 MB za svaku tablicu + 16 MB za privremenu tablicu


global 0,5 GB
500 usera -> ca.12 GB
10 000 tablica -> 160 GB rama

znači u ovom slučaju bi baza trebala ići na server sa 256 GB rama ili može i manje uz optimizaciju?


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.sme.bredbandsbolaget.se.

Sajt: mysql.rs


+2377 Profil

icon Re: Potrebna količina rama kod mysql-a16.11.2008. u 14:13 - pre 187 meseci
Citat:
znači u ovom slučaju bi baza trebala ići na server sa 256 GB rama ili može i manje uz optimizaciju?


skript na koji sam ti dao url samo preracunava vrednosti, dakle "toliko ce mysql koristiti ako koristis ovaj cnf fajl" ... pogledaj cfg fajl pa vidi kako to racuna, prilicno je jednostavno...

sad, koliko ti ram-a treba, ... koliko god rama imas - nije dovoljno :D treba ti jos ...

obicno prica ide obrnuto .... ti stavis rama koliko mozes da priustis, pa onda konfigurises mysql da radi "najbolje sto moze sa toliko memorije" .. postoje neki "minimumi" .. ali ne verujem da je sada o tome rec ...

vezano za memoriju, "staticni deo", tj deo koji ne zavisi od broja konekcija su baferi i keshevi .. (innodb_buffer_pool, key_buffer... query_cache...) .. dinamicni deo, tj deo "po konekciji / po threadu" je opet druga prica ... da bi to sve napravio optimalno, moras da znas kako ti se ponasa aplikacija ...

koliko read/sec
koliko write/sec
read vs write ratio
kakvi su upiti, koju vrstu upita radis i koliko cesto ... kakve su transakcije, koliko su velike ...
koliko tabela je u kom storage engine-u, koliko su velike
koliko, kakvih, klijenata

dakle, ne postoji racunica za "ja imam bazu velicine XYZ, koliko mi treba ram-a da bi to radilo super" ... ja imam na "minitx ploci" koja je 64M ram-a, via procesor (pandam p3 celeron na 500mhz) bazu od ~4G i radi SUPER ... cpu usage ne ide preko 15%
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Potrebna količina rama kod mysql-a16.11.2008. u 14:21 - pre 187 meseci
10.000 tabela na jednom serveru i 500 istovremenih korisnika?
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.sme.bredbandsbolaget.se.

Sajt: mysql.rs


+2377 Profil

icon Re: Potrebna količina rama kod mysql-a16.11.2008. u 14:44 - pre 187 meseci
10K tabela nije problem (da na jednom serveru, jedino sto postoji kao limit je filesystem)
500 korisnika nije problem
500 konekcija isto tako nije problem

no, sama velicina nije problematicna, moguce je prilicno lako napisati query koji ce da zabode "mnogo jaku masinu", a moguce je opet terati 4G bazu na celeronu ... e sad, ako bih ja pustio ovaj celeron da odradi table scan na glavnu tabelu (koja je ~2G) verovatno bi se samozapalio posle 7 dana ali tesko da bi do kraja godine izbacio rezultat ... naravno, zasto bi bilo ko normalan radio table scan na 2G podataka ... i na jakoj masini, a kamoli na tom izgovoru za racunar...

dakle, da se vratimo na temu ... sam mysql ima prilicno malo limita, te je teoretski prilicno sve moguce ... problem je sto realnost i teorija nisu bas 1/1 :( ...

onaj skript je koristan zato sto ce pokazati koliko rama trosi mysql sa tim konfigom .. nece rece ni da li je taj konfig dobar, ni da li je zadovoljavajuci ni ....
Najbolji nacin za optimizovanje db servera je uz Enterprise Monitor. Problem je sto se doticni dobija uz support i ne znam da li postoji fora da se dobije "dzaba" .. pustis svoj app i monitorujes sistem nekoliko dana, vidis gde su problemi i resis ih ...

ja mogu ovako napamet da dam neka iskustva ... ali "imam 5T bazu, koliko mi treba ram-a", odgovor je uvek "koliko god mozes da turis", nema tu neke pameti ... generalno, mysql moze da iskoristi mnogo ram-a, od 1.1 - 3x vise RAM-a moze da iskoristi od ukupne kolicine podataka koje ima ... dakle ako imate bazu od 1G, tesko ce te iskoristiti vise od 3G ram-a ali za bazu od 500G, bez problema moze da se iskoristi 600G RAM-a i to korisno .. i to je tako za skoro svaki RDBMS, razlike su u kvalitetu iskoristenja, ali svaki RDBMS moze da potrosi mnogo rama ako mu date :)

 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
...143.37-dsl.net.metronet.hr.



+19 Profil

icon Re: Potrebna količina rama kod mysql-a16.11.2008. u 15:04 - pre 187 meseci
znači onda jedino rješenje za velike baze je cluster?
ja mislio da server sa 256 procesora i 512 GB rama, što nudi sun, zadovoljava dobar db server.
sad vidim da nije tako.

vidio sam vašu prezentaciju.


ne znam što je data nodes i ndb api?


a opet na solarisu postoji zsf koji ide za naše pojmove u beskonačno.(1 000 000 TB)
a koliko znam največe baze na svijetu su do 100 TB.

pa zar ne postoji optimizacija kod projektiranja baza?

ako samoj bazi treba toliko, a ako se baza naravi tako da ni jedna procedura nije duža od 1 strane A4 papira, onda ta procedura mora letjet na dobrim serveru.

a dali se pregledi drže u memoriji ili zapisuju na disk?

i kako funkcioniraju kod mysql-a?

znači kreiram pregled, i sad dodam nešto u bazu, dali pregled odma kreira ili se tek izvršava na pregledavanje, bilo da je select-om ili sa nekakvim managerom?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.sme.bredbandsbolaget.se.

Sajt: mysql.rs


+2377 Profil

icon Re: Potrebna količina rama kod mysql-a16.11.2008. u 23:21 - pre 187 meseci
nismo se razumeli :(

nema formule koja ce u odnosu na velicinu baze reci koliko ram-a treba da ima masina... mysql ce koristiti koliko ima (ako mu se tako kaze) ali to ne znaci da obicna 16G masina ne moze da tera veliku bazu... vezano za kolicinu procesorskih jezgara, MySQL se trenutno ne skalira kako treba na preko 8 jezgara. Google patch to resava za intel+linux platformu. Nas tim trenutno radi sa timom koji pravi kernel za solaris na tome da se pronadje "univerzalno" resenje za taj problem (da se MySQL skalira ok na "svim" procesorima i "svim" operativnim sistemima)..

vezano za tvoje pitanje ...
kolika ti je baza? koliko od tih tabela (koliko veliko u mb) je myisam, koliko InnoDB?
kakva ti je aplikacija, koliko inserta ocekujes u minuti (ili na sat), koliko update/delete ocekujes u minuti (ili na sat)
isto pitanje za select upite.
koliko konkurentnih konekcija ocekujes sa koilko aplikacija sa koliko app servera?

popuni taj sitan "upitnik" pa mozemo da napravimo optimalan konfig.... pretpostavicemo da je db model ok


klaster *nije* resenje za ogromne baze ... namena mu je malo drugacija ...

treba obratiti paznju na razliku izmedju velike baze i velikog "load"-a ... baza od 1G je "mala" baza, ali ta baza moze da ima 100K transakcija u sekundi, to je vec "ogroman load" ... problem load-a se resava optimizacijom, query cache-om, load balancing-om, memcached, load balancingom ... zavisno od tipa load-a



 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.Sun.COM.

Sajt: mysql.rs


+2377 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 01:05 - pre 187 meseci
sitan dodatak na prethodnu poruku, vazno je da dodas ako koristis neke "specificne" stvari poput
- full txt search-a
- full tabel scan
- ako imas tabelu koja nema delete/update vec samo insert i select
...
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.ipc.hr.



+19 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 05:51 - pre 187 meseci
Citat:
bogdan.kecman: nismo se razumeli :(


vezano za tvoje pitanje ...
kolika ti je baza? koliko od tih tabela (koliko veliko u mb) je myisam, koliko InnoDB?
kakva ti je aplikacija, koliko inserta ocekujes u minuti (ili na sat), koliko update/delete ocekujes u minuti (ili na sat)
isto pitanje za select upite.
koliko konkurentnih konekcija ocekujes sa koilko aplikacija sa koliko app servera?

popuni taj sitan "upitnik" pa mozemo da napravimo optimalan konfig.... pretpostavicemo da je db model ok


klaster *nije* resenje za ogromne baze ... namena mu je malo drugacija ...

treba obratiti paznju na razliku izmedju velike baze i velikog "load"-a ... baza od 1G je "mala" baza, ali ta baza moze da ima 100K transakcija u sekundi, to je vec "ogroman load" ... problem load-a se resava optimizacijom, query cache-om, load balancing-om, memcached, load balancingom ... zavisno od tipa load-a



baza do 1 TB, InnoDB.
do 200 istovremenih konekcija(selceta i update, od toga pola ih zove procedure, manje ili veće).s time da je svaki selcet i update na proceduri.
znači mysql uredno radi na serveru koji ima do 8 procesora ili jezgri?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.Sun.COM.

Sajt: mysql.rs


+2377 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 06:51 - pre 187 meseci
Citat:

do 200 istovremenih konekcija(selceta i update, od toga pola ih zove procedure, manje ili veće).s time da je svaki selcet i update na proceduri.


jel mozes da popunis onaj deo sa
- koliko inserta
- koliko update-a
- koliko delete-a
- koliko select-a
na sat (ili na minut, ili na sekund, svejedno)

Citat:

znači mysql uredno radi na serveru koji ima do 8 procesora ili jezgri?

da. radi on ok i na 192 jezgra, problem je sto 8 koristi kako treba a one ostale ne :( dakle, nece mysql prestati da radi ili poceti da brlja na preko 8 jezgara, prosto ce da "ne radi brze" kada krenete da mu dodajete jezgra posle osmog. To je do nekih ogranicenja u innodb-u i google patch to resava, problem je sto isti radi samo na intel linux masinama.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.ipc.hr.



+19 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 10:14 - pre 187 meseci
oko 100 klijenata poziva procedure (nešto računaju, sumu, i slično)
60 selecta i 40 update-a.
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
91.150.127.*

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 10:34 - pre 187 meseci
60 selecta i 40 update... po sekundi, minuti ili satu?


Btw, MySQL Performance Blog ima par relevantnih članaka.
Recimo When is it a time to upgrade memory,
Predicting performance improvements from memory increase i To find the bottleneck stop guessing and start measuring.

Ono za više od 8 jezgra mislim da je bio fazon da pokreneš više procesa na istom kompjuteru. Pa za recimo 256-core kompjuter bi koristio 32 MySQL procesa što je vrlo komplikovano za monitoring (i za šta bi sigurno pomogao Enterprise Monitor).

Takođe, problem obično nije CPU nego memorija ili I/O. Ako je ogromna tabela to znači da on mora puno da džara po hard disku i CPU će biti idle.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 11:02 - pre 187 meseci
dakle imas oko 100 konkurentnih konekcija
imas odnos 60:40 u korist select-a (jel to na istim podacima ili?)

ono sto mogu za sada da ti kazem je - nemoj da koristis veliki query_cache. Sa ovako velikim procentom "izmena" (40%) invaliditizacija query cache-a uzima previse vremena tako da bih ja tu stavio query cache na neku sitnu vrednost .. 1-3M... pa radio monitoring za hit ratio i polako povecavao dok ne dodjem do nekog "optimalnog" broja.

100 konkurentnih konekcija je sitno .. stavi 80-90% RAM-a za innodb_buffer_pool ... sto vise "total" ram-a imas, to bolje ..
korisno je da koristis battery backed up cache kontroler, izbegnes double buffering, razdvojis data i log fajlove na razlicite spindlove
podigni key cache ako pravis komplikovanije upite ...

ono sto je tu bitno je ... napisao si "100 klijenata radi neki racun" ... ako imas 100 klijenata koji prave neki "isti" racun, to treba da optimizujes... ono sto je jako korisno, je da se u startu pri dizajnu sistema odradi optimizacija ... na primer, sa obicnim memcached mozes da ubrzas rad sistema za nekoliko reda velicine, ali problem je sto je to nesto sto treba da ubacis u arhitekturu u startu, nije nesto sto je lako dodati naknadno.. ako "cesto" pravis neki racun, jedino inteligentno resenje je da ga kesiras, svako drugo resenje je "na tvoju stetu" .. e sad kako ces osmisliti kesiranje, to je druga prica, realno, memcached je odlicno resenje, radi super brzo, mnogo se lako namesta .. ima podrsku za sve popularne jezike i skripte ..,.
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 11:25 - pre 187 meseci
Ja se igram da dosta manjim bazama, tipa do 5GB po tabeli, 20GB po bazi max. Ono sto ti mogu dati kao topao savet je: ma koliko dobro optimizovao bazu i ma koliko RAM-a stavio unutra, uvek, ali uvek, uzmi sto vise diskova mozes. Sve to zavrsi na disku i disk ti je uvek usko grlo. Optimizacije i memorija pomazu, naravno, ali budi apsolutno siguran da ne mozes preterati sa diskovima. Znaci, za svaki TB racunaj po 8 diskova od 146GB 15krpm, plus dodatno za RAID (najbolje RAID 10, znaci jos toliko diskova). Na vece diskove idi, ako moras, ali dobro razmisli i o nekom FC storage-u.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Potrebna količina rama kod mysql-a17.11.2008. u 12:50 - pre 187 meseci
Pročitao sam nege: „Remember, best query is one you don't execute“ ;)
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

[es] :: MySQL :: Potrebna količina rama kod mysql-a

[ Pregleda: 2558 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.