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

Jedna tabela mi usporava rad cijelog servera

[es] :: MySQL :: Jedna tabela mi usporava rad cijelog servera

[ Pregleda: 2506 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vlado85
Stanisic Vladimir
Pale - BiH

Član broj: 113160
Poruke: 162
81.93.87.*

Sajt: www.rsplaneta.com


Profil

icon Jedna tabela mi usporava rad cijelog servera18.01.2012. u 13:33 - pre 149 meseci
Ne znam da li postavljam temu na pravo mjesto, jer sam se dvoumio između tri podforuma. Elem, ako administratori misle da je za neki drugi forum, neka je premjeste.

Ja sam se odlučio za ovaj jer mislim da je ponajbliže podešavanju servera i MySQL-u.

Problem je sljedeći:

imam jedan server i na njemu četiri sajta. Sva četri su u Joomli, dva su mala, sa svega par artikala i nekoliko e-mail adresa, i dva velika sa 20.000 + artikala.

Na jednom sajtu imam instaliran Artio JomSEF. Imam problem sa njegovom tabelom jos_sefurls. Ova tabela naraste i do 500 MB, a kada pređe nekih 80 MB, server počne da usporava i na kraju zakucava sa porukom "Can't connect to MySQL server". U ovu tabelu se bilježe svi urlovi koje formira JomSEF. Kada obrišem sadržaj tabele, sve povuče i radi odlično, međutim onda se desi problem, što mi korisnici sa pretraživača ne vide stare linkove. JomSEF ih redirektuje na FRONT PAGE (Odabrana opcija u administraciji 404). Nakon nekog perioda, kada JomSEF ponovo indeksira sve urlove, ovaj problem nestaje, ali je tabela jos_sefurls ponovo velika i debela i ponovo sve radi sporo.

Da li mi je potreban jači server, da li je potrebno izvršiti neka podešavanja, bilo šta? Ne mogu se odreći JomSEF-a, jer je more urlova koji se dobro kotiraju.

S obzirom da je prijatelj setovao server, on bi se pojavio na ovoj temi i dao više informacija. Mislim da je server na linuxu i ne koristi podlogu tipa cPanel....

Na jednom forumu su mi rekli da je nemoguće da tabela toliko naraste i kad imate 400.000 + artikala.
Ja sam Vladimir web designer, designer, photographer, reporter, social network manager iz Republike Srpske. Pogledajte dio mog portfolia: http://www.rsplaneta.com/
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

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


+655 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera18.01.2012. u 13:44 - pre 149 meseci
Tabela od 500MB nije smak sveta. Da li su indexi dobri? Da li si proverio spore upite - sta ima tamo? Da nije tabela lockovana? Je'l InnoDB ili MyISAM? Koliko memorije ima server uopste i koje diskove? Je'l fizicki server ili VPS?
Please do not feed the Trolls!

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

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera18.01.2012. u 14:25 - pre 149 meseci
ne znam sta radi taj program i na sta mu lici ta tabela ali 500M tabela nije nista specijalno (ja imam tabele po 50G a vidjao sam ih i od nekogliko T) ... aj lepo

0. show table status like `jos_sefurls`\G
1. show create table `jos_sefurls`\G
2. show global status\G
3. show global variables\G
4. sadrzaj my.cnf fajla
5. kolicina ram-a na serveru
6. da li ti je upaljen slow query log
7. ako jeste uzmi neki od slow log parsera (na primer ovaj je odlican) da ti isparsuje taj log pa uploaduj ovde, ako nije, upali slow query log .. pa sacekad dan da se malo izloguje toga pa onda ...
8. daj explain select za par najenezgodnijih upita

Naravno ako je to sve neki shared server onda ti nema pomoci, nista ne mozes da uradis da to opravis osim da im se eventualno zalis .. ako je neki VPS mozda i moze nesto da se uradi


 
Odgovor na temu

vlado85
Stanisic Vladimir
Pale - BiH

Član broj: 113160
Poruke: 162
81.93.87.*

Sajt: www.rsplaneta.com


Profil

icon Re: Jedna tabela mi usporava rad cijelog servera18.01.2012. u 14:34 - pre 149 meseci
OK, hvala Vam na odgovorima. Poslao sam i nadam se da ću dobiti odgovor na sva ova pitanja uskoro. Da znam šta je dalje raditi...

PS do skoro sam koristio JustHost, i oni su mi često suspendovali nalog zbog opterećenja, pa sam prešao na novi server...
Ja sam Vladimir web designer, designer, photographer, reporter, social network manager iz Republike Srpske. Pogledajte dio mog portfolia: http://www.rsplaneta.com/
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera18.01.2012. u 16:04 - pre 149 meseci
Batali JustHost. Cesto pucaju, tehnicka podrska reaguje posle par dana, vec se i ne secam kakvih sve problema nisam imao sa njima.
Moze i 10 redova da zauzme 500Mb tako da tvrdnja da moras imati 400.000+ redova nema veze.

Takve stvari kao sto je joomla sa tolikim tabelama nije za shared hosting i bilo kakav odgovor da dobijes od njih oni svoja podesavanja nece menjati sem da predjes na neki jaci paket.
Meni na shared hostingu samo instaliran prazan wordpress ili joomla radi primetno sporo.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera18.01.2012. u 17:12 - pre 149 meseci
Citat:
vlado85:  pa sam prešao na novi server...


novi server tipa - SHARED HOSTING ili novi server tipa VPS ili novi server tipa DEDICATED ?

U slucaju shared hostinga, nema ama bas nista sto mozes da uradis ... ti njima mozes da kukas, njih ce bas da briga, zavisno od toga koliko su dobri ce ti (npr 1and1) reci da "uzimas previse resursa na serveru pa ti se upiti ubijaju i sprecavaju nove konekcije" do toga da ce (ezhosting) da te lazu kako je sve kod njih super ali evo sad ce da te prebace na manje opterecen server i kako ce sad sve da ti leti .. i onda kada prekinu vezu sa tobom nece uraditi apsolutno nista ..

shared hosting sluzi za staticni sajt ili dinamicni sajt sa bazom koja ima 20-30 slogova i upitima koji mogu da sede u query cache-u i posetom od 10-15 strana dnevno, za sve preko toga shared hosting ne radi i minimalno sto moras da uzmes je VPS. Ja imam odlicna iskustva sa hetzner.de odlicna i vrlo jeftina firma, ima odlicne i vps i dedicated servere.

Naravno i za vps i za dedicated server - ti dobijes "ceo server" pa moras sam da namestis mysql, apache, php... moras sam da iskonfigurises sve da radi, moras sam da brines o tome da ti je server "Siguran" etc etc ... no, bar ne zavisis ni od koga ...
 
Odgovor na temu

after
Ajvanho, ING

Član broj: 276962
Poruke: 97
*.dynamic.sbb.rs.



+6 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera18.01.2012. u 17:27 - pre 149 meseci
Nevezano za shared hosting, generalno problem sa konekcijama moze da bude i do nedostatka prostora na HDD. Nema mesta na disku i mysql ne moze da upise ni logovanje niti bilo sta drugo. Doduse poruka bi tada pre bila "too many connection" iako limit konekcija nije ispunjen ni 25% npr.
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera19.01.2012. u 09:59 - pre 149 meseci
Ko što reče Bogdan, ne može ozbiljni sajtovi na shared hosting da idu.

Moj predlog je da promeniš SEO addon koji koristiš. Možda postoji neki addon koji može da ti napravi lepe URLove, BEZ pravljenja 500MB tabele.

Lično, ne vidim poentu lepim URLovima koji zahtevaju tabelu u kojoj se nalaze sve moguće varijante. Routing može na pametniji način da se uradi.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

vlado85
Stanisic Vladimir
Pale - BiH

Član broj: 113160
Poruke: 162
81.93.87.*

Sajt: www.rsplaneta.com


Profil

icon Re: Jedna tabela mi usporava rad cijelog servera19.01.2012. u 11:20 - pre 149 meseci
Hvala na odgovorima. Jedan sajt na serveru bilježi 75.000 posjeta mjesečno, a jedan 30.000. Nije riječ o shared serveru, ali nije riječ o bog zna kakvom serveru. Na njemu su hostovana četiri sajta. (dva velika i dva mala, kao što rekoh)

Evo jedan MySQL Log:

MySQL Log

Za Joomlu postoje dvije dobre komponente koje prave SEF urlove ja koristim Artio JOM SEF.


Na jednom forumu sam dobio odgovor:
Citat:
Problem je u serveru, ja koristim godinama sh404sef i još uvek nisam doživeo da naraste tabela na 500mb,

Moram da napomenem da imam preko 400 000 linkova formiranih do sada, koje povremeno izbrišem ali u suštini to je to.

JoomSEF ima nekih nedostataka u odnosu na sh404sef komponentu, mada ovde uporedjujemo babe i žabe, jer je sh404sef komercijalna...

Ne mogu da shvatim kako sa 20 000 ćlanka ode u 500 mb, tu nešto definitivno nije u redu.


Vladimir
Ja sam Vladimir web designer, designer, photographer, reporter, social network manager iz Republike Srpske. Pogledajte dio mog portfolia: http://www.rsplaneta.com/
 
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: Jedna tabela mi usporava rad cijelog servera19.01.2012. u 13:29 - pre 149 meseci
Code:

mysql> show table status like 'jos_sefurls'\G
*************************** 1. row ***************************
           Name: jos_sefurls
         Engine: MyISAM
        Version: 10
     Row_format: Dynamic
           Rows: 114214
 Avg_row_length: 187
    Data_length: 21413748
Max_data_length: 281474976710655
   Index_length: 9759744
      Data_free: 0
 Auto_increment: 114215
    Create_time: 2012-01-18 15:27:16
    Update_time: 2012-01-19 11:27:05
     Check_time: 2012-01-18 15:27:24
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:


ako pogledas ova tabela ima 20M date i 9M indexa. O kojih 500M pricas?

Dalje, ugasen ti je query cache, upali ga (Stavi na malu vrednost, recimo 64M) pa vidi kako se ponasa

Vidim da koristis i innodb a buffer pool ti je samo 8M nije ni cudo da tu imas lose performanse

key_buffer_size ti je takodje malecni (8M)

Dakle server ti je konfigurisan NOGOM



Code:

### 871 Queries 
### Total time: 2502768, Average time: 2873.4420206659
### Taking 16  to 18559  seconds to complete
### Rows analyzed 0 - 1
SELECT * FROM jos_session WHERE session_id = 'XXX';


Ovaj upit traje minimum 16 sekundi ?!?!?!?! ovo je PK upit on ne moze da traje duze od 0.05sec sve i da imas 10T veliku tabelu ..

sta kaze:

EXPLAIN SELECT * FROM jos_session WHERE session_id = 'XXX';
SHOW CREATE TABLE `jos_session`\G

sledeca dva upita su ti nad istom tom tabelom, ne znam ko radi sa sesijama ali ko god da je ta aplikacija ocigledno nije ni za .... dal je do joomla-e ili neceg drugog ali vidi da li ima neki session system koji moze da koristi memcached sigurno ce raditi bolje

sta kaze:

EXPLAIN SELECT * FROM `jos_sefurls` WHERE `origurl` = 'XXX' AND (`trashed` = 'XXX') LIMIT XXX;

(nadji i slow log-u primer upit za oba ova upita pa umest XXX stavi prave vrednosti i izvrsi explain)


Sve u svemu, pre bilo cega, kreni odavde: optimizacija mysql servera i konfigurisi taj server kako treba. Kakav god da je hw na kome se to vrti ne vredi kada je server konfigurisan nogama.. onda kada to uradis mozemo da pogledamo ovo sve ostalo, za sada je beskorisno bilo sta drugo gledati kada se vide problemi koji svi mogu da se vrate na pogresno konfigurisan server
 
Odgovor na temu

after
Ajvanho, ING

Član broj: 276962
Poruke: 97
*.dynamic.sbb.rs.



+6 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera19.01.2012. u 18:36 - pre 149 meseci
30% posto temp tabela ti se kreiraju na disku, sto je generalno vrlo nepovoljno. Limit za memory temp tbl ti je 16M (manja vrednost od tmp_tbl_size i heap_tbl_size). Povecaj obe vrednosti barem na 64M ili mnogo vise zavisno koliko imas RAM. Pusti neki show create table neka_tbl za table koje se javljaju u upitima. Moguce da imas text/blob kolone pa se prave tmp tabele na disku umesto u memoriji. Iz EXPLAIN mozes da vidis da li su zbog loseg optimizovanog upita/tabele neophodne dodatne tmp tabele.
 
Odgovor na temu

vlado85
Stanisic Vladimir
Pale - BiH

Član broj: 113160
Poruke: 162
81.93.87.*

Sajt: www.rsplaneta.com


Profil

icon Re: Jedna tabela mi usporava rad cijelog servera20.01.2012. u 12:24 - pre 149 meseci
Hvala na odgovorima.

Nešto se radilo, podešavalo. Postoji još uvijek neko opterećenje. Da li možete pogledati ove mysql izvještaje?


mysqltuner.txt

my.cnf
Ja sam Vladimir web designer, designer, photographer, reporter, social network manager iz Republike Srpske. Pogledajte dio mog portfolia: http://www.rsplaneta.com/
 
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: Jedna tabela mi usporava rad cijelog servera20.01.2012. u 12:59 - pre 149 meseci
mysqltuner je prilicno beskoristan skript
taj my.cnf nista ne znaci bez znanja sta server kog .. radi i kakve se aplikacije na njemu vrte + kakav je metal ispod ...

dao sam ti link sta da procitas kako da pocnes sa optimizacijom servera, vrlo sazvakano da moze i debil da razume, batali skripte koje "pogadjaju" sta ti treba i namesti to da valja

dodatno, es daje mogucnost da okacis fajl uz poruku, mnogo jednostavnije nego skidanje fajlova sa sendspace
 
Odgovor na temu

after
Ajvanho, ING

Član broj: 276962
Poruke: 97
*.dynamic.sbb.rs.



+6 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera20.01.2012. u 17:41 - pre 149 meseci
U svakom slucaju ovaj mysqltuner report ti je beskoristan, jer server je radio 33s i nakon toga je generisan report, tako da rezultati tesko da mogu da budu reprezentativni. Verovatno si restartovao mysql i/ili opalio flush statusa pa nakon pola minuta pustio mysqltuner.

@Bogdane, zasto smatras da je mysqltuner i njemu slicni beskoristan skript? Iz razloga sto se sve to moze izvuci iz show global status/variable rucno ili nesto drugo?
 
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: Jedna tabela mi usporava rad cijelog servera20.01.2012. u 18:25 - pre 149 meseci
Citat:
after:  zasto smatras da je mysqltuner i njemu slicni beskoristan skript? Iz razloga sto se sve to moze izvuci iz show global status/variable rucno ili nesto drugo?


iskustvo...

merlin trenutno ima najbolje moguce advisor-e na svetu za mysql koji se zasnivaju na visednevnom pracenju server stanja svaki minut i idalje su ti advisori "sra*e" u poredjenju sa tim sta covek moze da napravi ako malo upali mozak.... mi sada (tj vec 6+ meseci) radimo na nekom "auto tuning" algoritmu gde bi merlin u saradnji sa mysql-om generisao idealnu konfiguraciju... i dalje je fora da prosecan dba napravi bolji config od toga sta masina uradi u 99% slucajeva
 
Odgovor na temu

after
Ajvanho, ING

Član broj: 276962
Poruke: 97
*.dynamic.sbb.rs.



+6 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera20.01.2012. u 20:28 - pre 148 meseci
Citat:
bogdan.kecman: iskustvo...


Jasno. Ne postoji univerzalna mehanicka formula da ubacis sve parametre i mehanicki dobijes najbolje resenje/konfiguraciju, vec samo smernice :).

Generalno meni su skripte kao mysqltuner, mysqlreport... najvise pomogle da iz samog koda izvucem predefisane generalne metrike i pojedinacne unapred postavljene limite kao jos jedan izvor i smernica za neki konkretan slucaj ili postavljenje nekih predefinisanih mail notifikacija za konkretno okruzenje.

Doduse to je sve relativno. Tipa postavljenjem "punog" indexa za polje koje se sortira eliminisu se temp tabele. Medjutim polje je neki varchar koje ima zapise do 90 karaktera. Dok postavljanjem indexa koji indeksira samo prvih 5 karaktera pokriva se 95% svih zapisa iz kolone i to je (verovatno) bolje resenje iako se ne eliminisu skroz temp tabele.
 
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: Jedna tabela mi usporava rad cijelog servera21.01.2012. u 18:46 - pre 148 meseci
maximalna optimizacija je vise umetnost nego nauka ... denormalizacija tabela, sitne promene na upitima, sitne promene nad ovim i onim .. mnogo pig metode .. varchar (200) utf8 polje ce uvek praviti temp tabele na disku, potpuno suludo ali je tako, takodje ako je intermediate rezultat row veci od 500 bajtova opet ce da ide na disk, ako ima neki blob/text opet ce na disk i slicno .. nekad je jednostavnije odrapiti parce rama i napraviti ram disk za mysql tmpdir nego optimizovati upite ... opet, bio bi red da mysql moze da kreira temp tabele u memoriji i ako nemaju ove limite... no to nece izgleda biti ni u 5.6 :( ...

ono sto je bitno prihvatiti je da vam uvek treba jos ram-a, koliko god da ga ima, treba jos :D .. ram je jeftin, mnooooooooooogo je jeftin.. isplati se .. ja gledam 99% klijenata zadnjih godinu dana tera masine od 32G pa na vise ... 128G ili 256G masine su postale "obicne", ja u kucnoj masini koja 99% vremena ima otvoren 1 web browser i 20tak terminal konzola ima 24G rama.. to je ono KOD KUCE .. 16, 24, 32G rama u serverima danas je .. dobar dan ... pogledaj iznajmljivanje servera:

EX4, 16G 50EUR mesecno
EX5, 24G 60EUR mesecno

dakle za 60eur mesecno imas I7 masinu sa 24G ram-a ... ako bilo sta crkne "bas te briga" pustis mail i oni oprave ... ne moras cak ni da kupis tu masinu, a ako hoces da je drzis u podrumu, nije ni preskupa da je kupis ...

kakav god da je posao, ako ne moze da isplati ovo mesecno za server, "hebo poso" ..

Odosmo daleko od teme ... moj prvi savet je, posebno kod ogavnosti tipa joomla i drupal i ekipa koje su pisali ljudi koji nemaju 2 trunke mozga koje cuvaju informacije oko modelovanja date i pisanja sql upita, a na koje su veciti bleferi zvani "seo strucnjaci" dodali raznorazne ogavstine da prave "url-ove od kojih ce google da se upiski i da vam posalje milion evra", razdvojite app i db server. Dakle stavite php na jedan server i mysql na drugi server. Kod tih idiotluka od aplikacija ne valja ni sam php a ni upiti i sam php ume da trosi cpu i ram u neogranicenim kolicinama. Da bi mogli da lako locirate problem - razdvojte ih...
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Jedna tabela mi usporava rad cijelog servera23.01.2012. u 09:54 - pre 148 meseci
Citat:
Dakle stavite php na jedan server i mysql na drugi server.


Mislim da ovo Bogdan podrazumeva, ali vredi naglasiti: MySQL treba da bude na svojoj zasebnoj fizičkoj mašini. Ništa virtuelno, ništa drugo da se ne pokreće na toj mašini! Apache serveri mogu da budu virtuelni ili u cloud, ali MySQL mnogo bolje radi kad ima svoju fizičku mašinu.

E sad, ako ti je stvarno 100 EUR mesečno previše za iznajmljivanje servera, onda stvarno "hebo poso" ko što reče Bogdan.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

[es] :: MySQL :: Jedna tabela mi usporava rad cijelog servera

[ Pregleda: 2506 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

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