Portál AbcLinuxu, 6. června 2024 02:11


Dotaz: Subjektivně pomalé PHP + MySQL

12.2.2018 08:50 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Subjektivně pomalé PHP + MySQL
Přečteno: 547×
Odpovědět | Admin
Zdravím tučňáky

Mám dotaz ohledně rychlosti PHP. Jsem jen programátor amatér, a kamarádovi jsem napsal .. aplikaci (?) na skladovou evidenci .. Nyní jsem řešil archivaci dat ( odsunout data aktuálního období ( doklady + položky ) do archivních tabulek. Dokladů je +- 350, položek skoro 2000.

Skript zahrnuje načtení všech dokladů zvoleného období (roku) do paměti, a po určitých kontrolách dat zobrazí potvrzení pro pokračování v archivaci.

Těch 350 dokladů ale archivuje 75 sekund při nulovém zatížení serveru ( mysql 5% http 1% jinak nikde nic ). skript pro samotnou archivaci jede "na jeden zátah", žádné ajaxoviny nebo tak. Jelikož má aplikace vestavěný vlastní logování, v logu vidím, že jeden doklad řeší přibližně 0,3s, to zahrnuje: * uložení dat dokladu (načteného v paměti), získání nového ID * načtení položek dokladu ( prům. tak 5-6 položek ), přepsání ID tím novým (v paměti - v poli ), jejich uložení do archivní tabulky, a smazání v aktuální tabulce. * smazání dokladu v aktuální tabulce

položky jsou ukládány a mazány najednou, t.j. jedním sql-kem.

Skript funguje, t.j. data jsou převedena do archivu správně, ale je to pomalé.

Mám několik nápadů, jak vysledovat, kde se to zadírá, (logovat časy funkcí nebo tak ) ale zase server se fláká, zatížení žádné.

Nemáte nějaké nápady, jak zjistit, kde to vázne ?

V PHPMyAdminu nemám u sebe žádné omezení co se počtu queries per hour týče

Předem díky..

Milan

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 12.2.2018 08:59 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
ale zase server se fláká, zatížení žádné
A sledoval jsi i, jestli mysql nevisí na I/O? (v "D" stavu)

Pokud se každý ten dotaz samostatně commituje, tak by to na pomalém rotačním disku mohlo trvat…
Já to s tou denacifikací Slovenska myslel vážně.
12.2.2018 10:04 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Ahoj,

díky za naťuknutí, ale nevím, jestli se commituje .. sázím dotazy rovnou přes mysqli->query(). Rotační disk tam je, ale jsou 3 ( raid 5 ) relativně nové, 2TB.

Jak zjistím, že je v D stavu ?
Řešení 2× (Bedňa, Milan Uhrák (tazatel))
Jendа avatar 12.2.2018 11:28 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Rotační disk tam je, ale jsou 3 ( raid 5 )
Což znamená, že se změna musí zapsat na všechny, takže to bude trvat dýl…
díky za naťuknutí, ale nevím, jestli se commituje .. sázím dotazy rovnou přes mysqli->query()
Tak to se commituje. Nevím jestli jsou dotazy na sobě závislé, ale zkusil bych START TRANSACTION, pak vypsat všechny ty inserty a pak COMMIT.
12.2.2018 12:51 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Jeníku,

zdá se žes to trefil ... trochu jsem musel postudovat, jak to s těmi transakcemi je ( vlastně díky za toto ) a obnova databáze ze zálohy z 45s na 10s ...

archivace (a vše vypadá v pohodě ) 0.6s .... uff

Moc díky za nasměrování,

M
12.2.2018 10:56 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Tak mě napadlo, že to bude status v top-u...

A fakt .. :-) takže v D stavu se v době vykonávání archivace objevuje jdb2/dm-0-8 ... i když jen mžikově ... chvíli jo, pak zase ne ..

Nápad ? Já jsem tady v koncích.
12.2.2018 11:10 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Vyzkoušel bych to na jiném stroji.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
12.2.2018 10:59 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Tak ne, je v D skoro pořád, oprava po lepším "sledování"
12.2.2018 11:10 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
oddíl s databázi je připojen
/dev/mapper/data_lvm-data on /data type ext4 (rw,relatime,user_xattr,acl,barrier=1,data=ordered)
12.2.2018 09:12 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Určitě to vázne v mizerně napsaném skriptu.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
14.2.2018 14:59 .
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus to nějak extrahovat do minimální podoby, kterou můžeš sdílet. Spousta lidí tady ti pak dokáže konkrétně říct, co by šlo udělat lépe.
14.2.2018 17:40 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Subjektivně pomalé PHP + MySQL
Zdá se, že to je již vyřešeno, stačilo to zabalit do transakce.
-- OldFrog

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.