abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:55 | Nová verze

    Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Nová verze

    Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | IT novinky

    Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.

    Ladislav Hagara | Komentářů: 1
    včera 11:00 | Pozvánky

    Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.

    Petr Krčmář | Komentářů: 4
    včera 10:55 | Nová verze

    Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.

    |🇵🇸 | Komentářů: 1
    včera 10:44 | IT novinky

    IKEA a XBOX představují kolekci YXSTABY (pdf). Ta přináší designová a praktická řešení, díky nimž se prostor pro hraní během sekundy promění v útulný a harmonický domov.

    Ladislav Hagara | Komentářů: 2
    včera 02:00 | Nová verze

    Jonathan Thomas oznámil vydání verze 4.0 nelineární střižny OpenShot. Nově podporuje nahrávání obrazu a zvuku, vylepšuje uživatelské rozhraní, mj. color grading, přidává další efekty a mnoho dalšího (seznam změn).

    |🇵🇸 | Komentářů: 0
    31.8. 17:22 | Komunita

    Proběhlo hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu si odhlasovali zodpovědné využívání generativní umělé inteligence.

    Ladislav Hagara | Komentářů: 2
    31.8. 16:11 | Komunita

    Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří vývoj Flatpaku částkou 508 640 eur.

    Ladislav Hagara | Komentářů: 0
    31.8. 15:55 | Zajímavý software

    Byla vydána první veřejná verze v7.0-mk2 projektu Multikernel (mklinux), který umožňuje spouštět více nezávislých linuxových jader současně na jednom stroji bez hypervizoru.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (29%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2533 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: MySQL - vysoké i/o zatížení s InnoDB?

    23.9.2009 08:58 Leinad
    MySQL - vysoké i/o zatížení s InnoDB?
    Přečteno: 1113×

    Mám na netu jednu PHP webovou aplikaci, která má dlouhodobě problémy s rychlostí pravděpodobně kvůli ne ideálně udělané databázi a SQL dotazů na ni. Často jede rychle, často se ale taky stává, že se na půl minuty zasekne.

    Z logů slow_query. Velké množství dotazů, které překročil čas 5 vteřin vykonování (často i přes 30s) byl mezi jinými jednoduchý update. Konkrétně dotazy typu
    UPDATE statistika SET doba_online = doba_online + '7' WHERE jmeno = 'Leinad'
    Tabulka "statistika" má kromě pár dalších sloupců sloupce "jmeno", který je VARCHAR a index a "doba_online", který je TIME. Tato tabulka slouží pro logování, jaký čas daný uživatel strávil na webu, takže dotaz se provádí každým kliknutím uživatele. TAbulka je InnoDB a má cca 300 řádků.

    Zkusil jsem přehodit tabulku na engine MyISAM a už se tyto dotazy v logách slow_query neobjevují. Mám podezření, že InnoDB má vyšší režii na disk. Jedu na virtuálním serveru a když jsem se chvíli koukal na "top", tak jsem viděl často vyskočit hodnotu %wa až na 100%.

     

    Je možné, že InnoDB má až tak moc velkou režii proti MyISAM? Četl jsem, že má vyšší (kvůli transakcím), ale nedovedl jsem si nikdy představit, že by to takhle mohlo zlikvidovat výkon... Nemáte nějaký tip, co s tím?
    (Rada dát všechny tabulky na MyISAM znemožní použití transakcí u dotazů, kde se to hodí. Rada dát část tabulek do MyISAM a zbytek nechat na InnoDB by asi pomohla zvýšit rychlost, ovšem zbývající dotazy typu UPDATE a INSERT budou stále dělat problémy, jen jich bude méně...)

    MySQL verze "5.0.32-Debian_7etch3-log".

     

    Pozn.: Očekávám kritiku návrhu tabulky, kdy není ideální použití pro index tabulky typu VARCHAR. Vím to, ale nemyslím si, že má cenu se pouštět do opravy, když to můj problém stejně nevyřeší.

    Odpovědi

    23.9.2009 10:15 x22
    Rozbalit Rozbalit vše Re: MySQL - vysoké i/o zatížení s InnoDB?
    Vela % I/O-wait (WA v tope) je pri databazi a web aplikacii celkom normalne.

    Co by tam robilo I/O 5s v takomto dotaze na 300 riadkovej tabulke? Ten dotaz IO nerobi asi vobec, lebo cela tabulka bude v cache, ked sa tak casto pouziva. CPU tiez nema co robit 5s, takze to bude asi nejake zamykanie.

    Ked sa podobny dotaz robi casto, tak tych updatov v jednej tabulke moze byt dost naraz. Ak su pripadne v dlhsich transakciach, tak to moze vadit.

    23.9.2009 11:58 Leinad
    Rozbalit Rozbalit vše Re: MySQL - vysoké i/o zatížení s InnoDB?

    Nevyužívá se cache databáze při dotazech typu SELECT, nikoliv UPDATE?
     

    Zamykání by tam být u tohoto dotazu nemělo. Ta "statistika" je hlavně UPDATEována přihlášeným člověkem, málokdy jiným uživatelem. Tj. nemělo by tam být žádné čekání na zámek. V logu slow_query se psalo navíc u těch dotazů "Lock_time: 0", jen parametr  "Query_time:" je vysoký...

    23.9.2009 18:04 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: MySQL - vysoké i/o zatížení s InnoDB?
    Samotný dotaz je dost neškodný, spíš by to chtělo vědět, v jakém kontextu se vykonává. Podle popisu problému se čeká na disk. InnoDB narozdíl od MyISAM synchronizuje commity transakcí na disk, aby po pádu serveru byla DB konzistentní. Doporučuju se podívat na několik věcí:
    1. Pokud se vykonává několik SQL zápisů (insert, update, delete) najednou, obalit je do begin...commit, aby se to zapsalo jen jednou a ne po každém příkazu
    2. Pokud máte hodně paralelních zápisů najednou tak si holt musíte počkat, až se všechny vyřídí, nebo koupit diskový pole, lepší řadič, nebo použít jinou technologii (myisam nebo memory table pokud Vám nejde o integritu po pádu)
    3. Případně lze použít nežurnálovací filesystem pro oddíl s databází (nebo přímo prázdné místo na disku), jelikož integritu dat řeší InnoDB sama o sobě
    4. Pokud jste ve VM, platí výše zmíněná rada tuplem: pokuste se pro oddíl s databází virtuálního stroje přidělit oddíl na disku hostitele, a ne soubor přes loopback (nedejbože na žurnálovacím FS)
    5. Některé SQL aplikace jsou navyklé kvůli MyISAM použít LOCK TABLES, pokud se tam něco takového vyskytuje, tak by stálo za to to přepsat do transakcí
    Co se týče indexů, tak to je asi v tuto chvíli méně tíživý problém. VARCHAR by vadit nemusel, ale zrovna tak můžete indexovat např. jen podle prvních 20 znaků toho pole... pro nějakou lepší radu by to chtělo vidět schema a typické dotazy (SELECTy).

    In Ada the typical infinite loop would normally be terminated by detonation.
    23.9.2009 18:05 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: MySQL - vysoké i/o zatížení s InnoDB?
    PS. ještě bych dodal k těm žurnálovacím FS, že ext3 je v tomto případě nejhorší možná volba (např. proti XFS), protože fsync() na soubor s databází sesynchronizuje zápisy do všech souborů v systému, ne pouze do jednoho :(
    In Ada the typical infinite loop would normally be terminated by detonation.
    23.9.2009 22:03 Leinad
    Rozbalit Rozbalit vše Re: MySQL - vysoké i/o zatížení s InnoDB?

    Tak problém zdá se vyřešen. Zvýšení innodb_buffer_pool_size. Byl nastaven standardně na 8MB. Databázi jsem měl (hlavně asi díky fórám a logováním) velkou 30MB, takže velké tabulky s fórem zdá se vyhazovaly tabulky jako "statistika", do které se každým klikem uživatele zapisovalo. A přepnutí na MyISAM fungovalo zdá se proto, že má možná vlastní jiný parametr cache (ehm, jen domněnka).

     

    Díky tedy za rady a omlouvám se, že jsem si dostatečně neprohledal web předem. Resp. googlil jsem před podáním dotazu tady na fóru a našel jsem, že cache ovlivňuje rychlost DB, ale našel jsem jen články o cache využívanou při dotazech typu SELECT, narazil jsem na rady ohledně indexů, atd., ale to že tam je ještě další cache pro celé tabulky jsem zjistil bohužel až teď. No, tak snad tato diskuse pomůže v budoucnu někomu dalšímu, kdo se s tímto problémem setká.

    Jinak, ten článek, co mi pomohl, byl na adrese <a href="http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/">http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/</a>

     

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.