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

Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)

[es] :: MySQL :: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)

Strane: 1 2

[ Pregleda: 6999 | Odgovora: 34 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)26.09.2009. u 11:52 - pre 179 meseci
nisam bio sarkastican ... stvarno nisam znao za ktune (nisam ga jos probao) .. e sad .. za ceo trip sa schedulerom i kernelom ... ja sam zadnji put probao na rhel3 ili 4 ... uradis echo noop > /sys/block/sda/queue/scheduler i nista se ne desi ... sad sam uzeo da probam to na centos 5.3 i sljaka ...

Code:

[root@mysql1 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq 
[root@mysql1 ~]# echo cfq > /sys/block/sda/queue/scheduler
[root@mysql1 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq] 
[root@mysql1 ~]# echo deadline > /sys/block/sda/queue/scheduler
[root@mysql1 ~]# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq 


dakle taj trip da rhel ne dozvoljava da se menja scheduler online vise ne vazi iliti ja sam sirio dezinformacije ...

sto se tice WriteCache-a .. na svim ide diskovima je ugasen (i na rhel 5.3, sad sam proverio) po defaultu ... a na scsi diskovima je upaljen ... e sad - nemam nijedan centos sa sata diskovima da vidim sta mu je default ali verujem da sata gleda kao i ata, tj da gasi write cache ... u svakom slucaju - treba proveriti uvek da li je write cache upaljen ili nije ... mi smo u mnogo slucajeva do sada imali problem da linux (ne samo rhel) zagasi write cache .. isto tako, kako je dosao ext4 gomila problema sa write barrier ... dakle, za "performanse over security" upalis write cache i zagasis write barrier - samo je bitno da znas sta to sa sobom nosi...

nadjoh sad neku sata masinu ...

Code:

[root@mysql2 ~]# hdparm -i /dev/sda

/dev/sda:

 Model=WDC WD5002ABYS-02B1B0                   , FwRev=02.03B03, SerialNo=     WD-WCASY6797279
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 
 AdvancedPM=no WriteCache=disabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 ATA/ATAPI-7

 * signifies the current active mode


na zalost - nisam je ja instalirao, ovako je dosla (centos 5.3 x64) od hosting provajdera ...

na ostalim masinama od tog provajdera sam ja odradio -W1 cim sam se prvi put ulogovao na njih (ova je dosla pre neki dan jos je nisam setovao) tako da nemam pojma sta je bilo default setovanje

sve u svemu - ja licno ne verujem u default setovanja .. ni distro-a ni provajdera, posebno ne provajdera ... sad sam poceo da saradjujem sa novim provajderom (neki nemci), njihova ideja optimizovanoh centos-a je vrlo zanimljiva :D
 
Odgovor na temu

Schmidt
RHCE

Član broj: 80784
Poruke: 647
*.blic.net.



+10 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)26.09.2009. u 12:06 - pre 179 meseci
Nisam pomislio da si ti sarkastican vec sam sumnjao u svoju izjavu, pa sam samo naveo na cemu se zasniva.
Izvini ako je tako djelovalo.

Ona dva diska za koja sam naveo hdparm su SATA diskovi na ovoj masini sa koje pisem, nisam naknadno podesavao diskove, osim ktune-a koji sam instalirao pa stavio elevator deadline.
To je sad cudno, pitam se na osnovu cega installer odlucuje da ugasi cache, jer izgleda da to nije default.
U svakom slucaju, stavljam u podsjetnik da nakon instalacije provjerim i cache. :)

Sad sam provjerio na dva svoja servera koji imaju IDE diskove, na oba je:

AdvancedPM=yes: disabled (255) WriteCache=enabled

Jedan server je CentOS 4, drugi je CentOS 5.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)26.09.2009. u 12:32 - pre 179 meseci
zanimljivo - i mene sad zainteresovalo kako odlucuje sta je
"default" ... pitah kolege sa posla i odgovor je "if disk is not good
enough it will turn the cache off" .... mislim da se "good enough"
odnosi na to da li disk ume ili ne da radi flush cache na komandu, ali
nisam siguran ... sve u svemu - da - to je stvar koja treba da sedi na
checklisti
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)28.09.2009. u 12:47 - pre 179 meseci
Hvala obojici za aktivnu diskusiju...

Poredio sam default instalacije Debian-a 5.0 i Centos-a 5.x i sto se tice ovih parametara identicne su:

Citat:
debian:/# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]


kao i za disk

Citat:

debian:/# hdparm -i /dev/sda

/dev/sda:

Model=ST3160812AS , FwRev= 3.AJJ , SerialNo= 5LSAEA3R
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=?8?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=no WriteCache=disabled
Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7

* signifies the current active mode


Dakle WriteCache disabled i cfq kod obojice... Diskovi su krsteni kao skupi, dobri, "fast i fjurius"... Seagate Barracuda

U Sysbencmark testovima opet sam dobio 19sec kod Debiana VS 200sec kod CentOS-a...

ext3 file sistem kod obe instalacije... ext4 kontam sacekati dok se ispegla sve...

malo mi nezgodno testirati sve ovo posto imam samo jedan server kod sebe ali "iskopace njega Bili ja ti kazem... " :)



 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)28.09.2009. u 15:03 - pre 178 meseci
ako mozes, prebaci na deadline obojicu i upali obojici write cache na diskovime (hdparm -W1) pa onda probaj (ako mozes) .. rhel ima neku "budzevinu" od cfq-a koji nije isti kao "cfq na ostalim distroima"
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)29.09.2009. u 09:47 - pre 178 meseci
Opet ja... :)

Uradio sam svježu instalaciju CentOS-a. (5.3 x86_64)

Mysql je osvježen na repo-ima i sada je 5.0.77.

Out of the box testovi se poklapaju sa Debian-om. (nakon cackanja po my.cnf om dobijem 19-20 sec.)

- dodam noatime u fstab i test se završi za 17-19 sekundi
- prebacivanje na deadline ubrzava testove za 1-2 sekunde (instalisao sam ktune)
- uključivanje WriteCache-a daje ogromno poboljšanje... test se završi za prosječnih 9 sekundi...

Nisam mogao vjerovati pa sam ponavljao više puta na čistim bazama... i svaki put dobio cca 9 sekundi... Svi testovi su rađeni barem 3 puta...

Svim učesnicima ove teme (Bogdan, Schmit) ide po kila kave, kutija secera kocke, litar domace rakije i cokolade za djecu.. :)












 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)29.09.2009. u 12:25 - pre 178 meseci
Citat:
tarla: Opet ja... :)

Uradio sam svježu instalaciju CentOS-a. (5.3 x86_64)


zar nije neki dan izasao 5.4? .. samo pitam, ja sam i dalje svuda na 5.3, ne verujem im vise nista bar 3 meseca od kad izbace distro - posebno sad ovaj novi kernel, mada, prica je da ovaj novi kernel ima mnoooooogo bolji cfq nego prethodni kernelio

Citat:

Mysql je osvježen na repo-ima i sada je 5.0.77.


znam da smo ovo vec diskutovali, ali zasto, bre, sine, bre, brute ....

ne znam dal si pronasao do sada ali tamo kod mene na bljog ima http://www.mysql.rs/info/ strana gde pise sta je "sad" frisko i strana kaze 5.0.86 - ako bas oces na 5.0 .. od 77 do 86 ima jaoooooooooj fixova

dodatno, 5.1 je mnogo bolji od 5.0. slazem se da gomila novih stvari u 5.1 ne rade kako treba / nisu production kvaliteta (partitioning, federated ...) ali klasika myisam + innodb - 5.1 je mnooooooooooogo bolji / brzi / sigurniji / stabilniji

dalje, batali taj distro mysql .. izbaci sve te mysql rpm-ove sa --nodeps i instaliraj rhel 5.3 rpm-ove sa mysql sajta - razlika je ogromna (i dobijes nove verzije, nisi zakucan sa tim prastarim verzijama iz repo-a) ... uskoro (naravno samo u 5.1) nas innodb leti napolje i 5.1 ce biti shipovan samo sa oraklovim innodb plaginom (popravljeno brdo bagova koji postoje u nasem innodb-u) tako da dobar deo stvari koji je sada u 5.4 radice vec u 5.1 + mysql je presao na novi release model tako da ce 5.1 mnogo cesce da izlazi (~6m) sa mnogo vecim poboljsanjima nego je to bio red ranije

Citat:

- dodam noatime u fstab i test se završi za 17-19 sekundi

innodb-file-per-table? ili myisam?
koji file system? ext3?
ako ti nije uber super turbo extra bitno da svaku komitovanu transakciju zapamtis u slucaju kada nestane struje ... dakle ako mozes da prezivis da ostanes bez poslednje ili poslednje 2 transakcije u trenutku kada masina leti u vazduh ima jos sitnica koje mozes da izvedes i da dobijes mnogo na brzini ... XFS + nobarrier+noatime + innodb tuning

Citat:

- uključivanje WriteCache-a daje ogromno poboljšanje... test se završi za prosječnih 9 sekundi...


ladno ti je ugasio write cache centos 5.3 po default-u ... hah . to bi bilo lepo znati "kad radi" ... al ocigledno - ko nije obracao paznju na taj detalj, neka doda to na checklistu posto i dalje centos/rhel gase write cache "na nekim diskovima"


 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)29.09.2009. u 13:10 - pre 178 meseci
Izasao je RH 5.4 ali ne i CentOS iako su svi repos-i osvježeni. Jedino još da spakuju sve u ISO i to je to.

Znam za nadogradnje ali bio sam u žurbi da što prije testiram. Obećavam prebacivanje na nešto novije i ponovne testove da vidim kako ide...

ext3 je u pitanju i innodb testovi... takodje stavio sam innodb-file-per-table
MyISAM nije pravio probleme ni prije... čudno...


Moja odgovor na pitanje kada gasi WriteCache je "Stalno!!!"

:)




 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)29.09.2009. u 13:27 - pre 178 meseci
ja za produkciju volim xfs mountovan sa nobarrier i noatime ... brzi je od ext3 .. takodje

innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit=0

 
Odgovor na temu

Schmidt
RHCE

Član broj: 80784
Poruke: 647
*.blic.net.



+10 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)30.09.2009. u 08:43 - pre 178 meseci
Citat:
tarla: Opet ja... :)
Svim učesnicima ove teme (Bogdan, Schmit) ide po kila kave, kutija secera kocke, litar domace rakije i cokolade za djecu.. :)


Odlican timing, bas mi fali secera kocke :) znas gdje sam, za kafu se uvijek nadje vremena :)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)30.09.2009. u 12:13 - pre 178 meseci
alkohol ne trosim vec jedno 15 godina, secer mi zabranili (posto sam svinja debela), a dece jos uvek nemam ... al kavu (gorku, ko zivot) i rahatluk necu da odbijem :D

super je tema :) .. mnogo zanimljivija od onih "kako da upalim svetlo u kupatilu" ili "sta ce se desiti ako udarim prekidac cekicem" tema koje uglavnom vladaju forumom ...

samo jedan dodatak .. relativno bitan ...

- Upaljen write cache
- Ugasene write barijere (nobarrier na xfs-u, barrier=0 na ext4)
- innodb_flush_log_at_trx_commit=0

sve zajedno ovo jako ubrzava bilo kakve promene, posebno na innodb-u, ali durability iz ACID mozes da zaboravis .. posto ako radi baza i ti izvuces komp iz struje (a nemas battery backed up cache) vrlo lako moze da se desi da ti poslednjih nekoliko transakcija ne postoji na disku kada upalis masinu!!! Naravno ako ugasis write cache, upalis write barrier i stavis flush... na 1, onda nemas taj problem posto je transakcija sigurno spucana na disk odma posle commit-a, jedini problem je sto to ume da i do 20x uspori promene, zavisno od masine.
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)12.10.2009. u 23:52 - pre 178 meseci
Ko o čemu baba o uštipcima...

Naime dopao mi šaka još jedan server (HP ML 110 G5) u fabričkom izdanju (samo ubačena još jedna GB LAN karta.. )

Nakon instalacije vidim da je SATA disk prepoznao kao PATA i sve je radilo kilavo iako je nakon instalacije WriteCache bio ukljucen (sam installer je ukljucio WriteCache)... Ktune nije radio tj uredno se instališe ali nema nikakvog efekta

Tek kada sam u BIOS-u "Native Mode Operation" stavio "Serial ATA" umjesto "Auto" kako je bilo, disk je prepoznat kao SATA i naravno WriteCache je otišao u status Disabled :), Ktune je proradio, cache sam uključio ručno i sad je sve ok..


Ukratko, po defaultu instalacija nije ni za k**** i treba detaljno pregledati sve prije nego server pošaljete u produkciju...










 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)13.10.2009. u 13:04 - pre 178 meseci
pa .. "default" ... sta ces ...

za disk, uvek kada stavis auto, cak i na desktop plockama on prebaci SATA disk u "compatible" mode i pristupa mu kao PATA disku ... cak i windoze (koje obicno imaju hw drajver za kontroler koji ga onda sibne u sata mod - sto na zalost drajveri na linux kernelu umeju ali nece da urade) ... tako da uvek stavis disk u SATA mod posto vec neko vreme kerneli znaju sta je sata i oce da se butnu sa istog :)

zanimljivo je to sto kernel kada provali da je disk sata ugasi write cache - i koliko sam ja provalio to radi samo rhel/centos .. ima to smisla, ako nemas battery backed up cache sve sto ostane u tom keshu je pisi propalo ako se zabode masina ... dodatno 99% glupih sata diskova kada im fizicki kazes "isprazni kesh na disk" oni te iskuliraju 1/1 i ne zapisu nista ... to im je super fora za testove posto ti diskovi pokazu da imaju po 20-30% bolje performanse na nekim write testovima ... naravno - trik, konji ne prazne kesh na disk ... tako da ti ga rhel kernel ugasi pa ti ako oces da rizikujes ili ako verujes svom disku - a ti ga upali sam :)

sve u svemu ... "default" je "univerzalan" .. dakle "svakome radi dovoljno dobro" .. ako hoces "najbolje" - moras sam da umesas prste :) posebno sto uvek imas trade off ... pitanje je samo "koliko transakcija mozes da podneses da izgubis" ... prilicno zeznuto pitanje ... ako je odgovor 0 - performanse idu doleeeeeeeeeeeeeeeeeeee ... ono sto je kod mysql-a dobro je sto tu uopste postavlja to pitanje .. dakle ti imas tu taj trade ... rizikujes zadnjih xyz transakcija za veci performance tokom rada dok je sve ok ... neki drugi ti ne dozvoljavaju da izgubis tih nekoliko transakcija ... npr oracle ... oni su u fazonu, durable znaci durable, ako sam ga zapiso tu je nema sanse da ga izgubis al zato te to kosta sa druge strane ... i ne mozes da "biras" ... i realno to tako treba za neki enterprise, posto tamo jedna transakcija moze da ima vecu vrednost od bruto proizvoda srbije (dobro znam da nije neki al ..) ... dok zamisli da teras web sajt, najveca transakcija ti je 10-20$ .. a 99% transakcija su ti nekakvi logovi tako da u 99% slucajeva ako izgubis par transakcija - nikom nista ... u onih 1% slucajeva izgubices 10-20$ .. .sto nije nikakav tradeoff za 30-70% ubrzanja koje dobijes sa druge strane ... (pritom nije da ti se dangne masina / resetuje i slicno jednom nedeljno, danas uz upseve, generatore etc ja imam masinu u uk koja nije resetovana vec 7 godina, tera neki prastari mysql koji je tad bio "nov" i - radi - ... napravi se bekap povremeno ali masina, mysql, apache + php nisu resetovani / upgradeovani vec 7 godina i sve radi, nista nije resetovano ... a masina ima po 500-1000 usera online non stop 24/7 ... opsluzuje interno neke servise za uk zdravsveno osiguranje .... svi cekamo da na masini crkne neki hw pa da je upgradujemo :D .. al radi bre ko blesava :D :D :D)
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)14.10.2009. u 00:09 - pre 178 meseci
Što se tiče važnosti podataka ne mogu reći da su od "vitalnog nacionalnog interesa"... U svakom slučaju pomogli da se jedan "dječak" pošalje na malo dužu robiju usljed budaleština koje je radio...

Bitno mi je u svemu da vidim kako se performanse mogu poboljšati 30 puta u odnosu na standardnu instalaciju. Naravno prava optimizacija se postiže profilisanjem i optimizacijom na osnovu same aplikacije koja se vrti na serveru i to tek nakon dužeg posmatranja i osluškivanja. Još bolje performanse mogu postići i baferovanjem upita i odrađivanjem naknadno u momentima kada je server slobodniji ali za sada nema potrebe

MT




 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)14.10.2009. u 07:56 - pre 178 meseci
nije bitno koliko su podaci bitni, vec koliko transakcija mozes da zaboravis ako se masina dangne :) ...

ako je ta cifra nula, onda ugasi write cache na disku, stavi ext4 ili xfs i upali write barrier, stavi innodb_flush_log_at_trx_commit=1

to je u startu 30% performanse dole - ali imas durable transakcije.

ono sto je dobar "trik" je da ne smaras celu masinu sa durable transakcijama vec da se oslonis na bekap + binlog. To naravno zahteva da imas binlog "na sigurnom" sto moze da se izvede tako sto ces na primer binlog da stavis na zaseban disk gde ces upaliti write barrier.

elem, sve to je opste mesto, da bi odradio optimizaciju moras prvo da znas "zasto je server spor" ... da li cekas na IO ili je nesto drugo problem, ako cekas na IO onda vidis sta mozes da razbacas po diskovima.... sa myisam-om na primer ima super fora da mu kazes da index baci na drugi disk, to za preko 50% popravi IO u nekim varijantama...etc etc .. no odosmo od teme .. sve se svodi na tradeoff ... ovde ili onde .. nema i pare i jare nikako u isto vreme
 
Odgovor na temu

[es] :: MySQL :: Spor UPDATE na InnoDB-u (Mysql 5.0.45-log)

Strane: 1 2

[ Pregleda: 6999 | Odgovora: 34 ] > FB > Twit

Postavi temu Odgovori

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