Jump to content


Photo

Forum B-92


This topic has been archived. This means that you cannot reply to this topic.
51 replies to this topic

#1 Massive_Attack

Massive_Attack
  • Members
  • 2,103 posts

Posted 14 April 2007 - 23:24



Ova poruka je sve cesca na vasem forumu ( thumbsup.gif ), ali malo i kritike. Nije na odmet?
Mislim da imate dovoljno novca da resite ovaj problem.
So, do something!

#2 kiklop

kiklop
  • Members
  • 847 posts

Posted 15 April 2007 - 01:13

QUOTE(Massive_Attack @ 15 Apr 2007, 00:24)


Ova poruka je sve cesca na vasem forumu (  thumbsup.gif  ), ali malo i kritike. Nije na odmet?
Mislim da imate dovoljno novca da resite ovaj problem.
So, do something!


Podrzavam u potpunosti!

Jedna od stvari koju mogu da urade je da promene bazu podataka i batale mysql. Inovision power board podrzava sql server i oracle. Meni se cini da je ovaj forum zreo za takvu vrstu promene.

#3 Zverilla

Zverilla
  • Members
  • 910 posts

Posted 15 April 2007 - 10:14

http://dev.mysql.com...onnections.html

ako je ovo tacno (ako!) ne bi smelo biti problema.
mada i 100 bi trebalo biti sasvim dovoljno ako forumski sw lepo upravlja konekcijama

#4 bukem

bukem
  • Members
  • 273 posts

Posted 15 April 2007 - 11:32

Zar 100 konekcija za ovakav forum ne bi bilo malo?

#5 Zverilla

Zverilla
  • Members
  • 910 posts

Posted 15 April 2007 - 11:49

QUOTE(bukem @ 15 Apr 2007, 12:32)
Zar 100 konekcija za ovakav forum ne bi bilo malo?


pa, ko sto rekoh, ako sw lepo upravlja konekcijama - nije.
ako pak zabetonira svakom online korisniku jednu konekciju ka bazi, onda je i 500 malo. (na stranu sto je besmisleno)

#6 Massive_Attack

Massive_Attack
  • Members
  • 2,103 posts

Posted 15 April 2007 - 17:27

Koliko se secam funkcija mysql_connect ostvaruje i vraca trajnu vezu sa bazom podataka. A posto ovde svaka stranica koja se otvara pristupa bazi podataka, onda i svaki proces servera ima otvorenu trajnu vezu.
E sad, standardni parametar max_connections u mysql je 100 a kod Apacha je parametar max_clients 150. To moze da se edituje u config fajlovima, ali do koliko? Dok opet editovanje i povecanje konekcija zavisi i od mogucnosti hardwearskog dela.
Kao sto Kiklop kaze, mozda je ipak na ovom besnom forumu resenje "Sql i Oracle".

#7 Carlos

Carlos
  • Members
  • 335 posts

Posted 15 April 2007 - 18:17

QUOTE(Massive_Attack @ 15 Apr 2007, 19:27)
Koliko se secam funkcija mysql_connect ostvaruje i vraca trajnu vezu sa bazom podataka. A posto ovde svaka stranica koja se otvara pristupa bazi podataka, onda i svaki proces servera ima otvorenu trajnu vezu.
E sad, standardni parametar max_connections u mysql je 100 a kod Apacha je parametar max_clients 150. To moze da se edituje u config fajlovima, ali do koliko? Dok opet editovanje i povecanje konekcija zavisi i od mogucnosti hardwearskog dela.
Kao sto Kiklop kaze, mozda je ipak na ovom besnom forumu resenje "Sql i Oracle".

Ne, na linku koji je postavio Zverilla piše da se trajna konekcija dobija funkcijom mysql_pconnect()
Povećavanje broja konekcija bez ulaganja u hardver koji može da podrži iste nema nikakvog smisla. Kao i kupovina komercijalne baze podataka. Za cenu SQL servera možeš da kupiš solidan fizički server, samo ostaje još da se vidi za collocation ili šta već, pošto ne znam kako je hostovan forum, a oracle ne želim ni da spominjem. mySQL radi ok posao za forume i te stvari, samo treba imati dovoljno moćan fizički server.

#8 Ajvoks

Ajvoks
  • Members
  • 666 posts

Posted 15 April 2007 - 19:55

Kakav crni SQL Server!?!?!? MS SQL ima gomilu prednosti u odnosu na MySQL (npr. kompajlirane strored procedure i funkcije, OLAP, i sl.) ali IPB, i Web forumi generalno ne koriste nijednu od njih. Web forumi koriste jednostavne upite, bez view-ova i SP-ova, a tu je MySQL brzinski šampion, čak i kad se poredi sa Oracle-om (mada, verovatno da bi Oracle-ovo particionisanje tabela pomoglo). Ovakav forum bi morao da ima duplo jači hardver na SQL serveru da bi radio pojednako dobro kao MySQL. O Oracle-u je sa finansijske strane prilično besmisleno govoriti u kontekstu web foruma.

Koliko ja znam, Forum B92 radi na prilično jakom serveru (neki dual Opteron). Znači nije problem ni u tome. Ono što verovatno jeste problem je skalabilnost. Po mom iskustvu, ako server isporučuje oko 200.000 otvorenih dinamički kreiranih strana dnevno, sa po 8 upita, (pretpostavljam da je poseta foruma tu negde, a koliko se sećam 8 je prosek upita baze koju koristi IPB po jednoj otvorenoj strani), to znači da bi prosečno bilo dovoljno oko max 10-tak konekcija. Ovde međutim verovatno imamo famozni problem zaključavanja tabela. Pošto na Forumu B92 search radi vrlo brzo (kad radi), to znači da se koristi FullText Search, ako se koristi FTS to znači da je tabela sa postovovima (koja mora biti prilično velika) u MyISAM formatu koji koristi zaključavanje na nivou tabele, što znači da kad upisuje novi ili izmenjeni post u bazu ili neko radi pretragu, svi ostali čekaju dok se ta operacija ne završi. Tu se za čas nakrca maksimalan broj konekcija, tako da je svejedno da li ih je 10 ili 100 ili 1000.

(Zapravo nije svejedno. Ako se ovaj broj postavi na 1000 onda će podaci o konekcijama prepuniti RAM servera i isti će krenuti sa disk-swappingom. Ako se to desi na serveru koji je optrećen kao forumski, više mu oporavka nema, jer dok on sve upiše na disk nakrcace se novih 1000 konekcija i jedino što pomaže je ili iskopčavanje iz mreže što je teško izvesti ako server nije pod manuelnom kontrolom administratora, ili ako B92 nema svoj data centar a nema ga ili brutalno resetovanje servera. Zato se ovaj broj obično drži na nekom manjem broju. )

Sa druge strane, ako bi se koristile InnoDB tabele ne bi bilo tih problema ali ne bi bilo ništa ni od full text searcha, samim tim funkcija pretraživanja bi bilo totalno neupotrebljiva. Autori web aplikacija (moja malenkost uključena) poslednjih godina to rešavaju tako što koriste MySQL InnoDB tabele za smeštanje sadržaja, a fulltext indexe i pretraživanje prepuštaju Apache Lucene-u. Nažalost, IPB koliko vidim ne podržava ništa slično Lucene-u (ili MyISAM FullText Search ili ništa).

Ako je moja teorija tačna, najjednostavniji način za rešavanje ovog problema bi bilo da se zameni IPB-ov interni mehanizam za pretraživanje nekim spoljnim koji bi koristio Apache Lucene. Sa programerske strane je to priličan posao, i verovatno bi ih koštao prilično, ali na duže staze je svakako isplativije nego zakup jačeg servera koji bi samo malo ublažio problem ali ga ne bi i trajno rešio.

#9 Ajvoks

Ajvoks
  • Members
  • 666 posts

Posted 15 April 2007 - 20:02

QUOTE(Massive_Attack @ 15 Apr 2007, 18:27)
Koliko se secam funkcija mysql_connect ostvaruje i vraca trajnu vezu sa bazom podataka. A posto ovde svaka stranica koja se otvara pristupa bazi podataka, onda i svaki proces servera ima otvorenu trajnu vezu.


Postoji funkcija mysql_pconnect koji otvara "trajnu vezu". To zapravo znači da će svaki sledeći proces koristiti već otvorenu vezu između Web servera i database servera. U teoriji sjajno, ali kad su u pitanju Apache, PHP i MySql to jednostavno ne funkcioniše.

Zato IPB ne koristi tu funkciju, nego koristi običan mysql_connect. Tako otvorena konekcija traje koliko i izvršavanje skripta, odnosno u ovom slučaju otvaranje jedne strane.

#10 kodi

kodi
  • Members
  • 221 posts

Posted 15 April 2007 - 21:22

postoji jos jedna solucija: koristiti replikaciju.

Master tabela innoDb - replika MyIsam za search wink.gif

vikipedija je tako radila pre nego sto je presla na Lucene

#11 Ajvoks

Ajvoks
  • Members
  • 666 posts

Posted 15 April 2007 - 21:41

QUOTE(kodi @ 15 Apr 2007, 22:22)
postoji jos jedna solucija: koristiti replikaciju.

Master tabela innoDb - replika MyIsam za search wink.gif

vikipedija je tako radila pre nego sto je presla na Lucene


Da, to je možda još bolje jer onda nema potrebe da se mnogo menja source IPB-a.

Edit: može isto to i bez replikacije, pomoću triggera.

Edited by Ajvoks, 15 April 2007 - 21:43.


#12 Massive_Attack

Massive_Attack
  • Members
  • 2,103 posts

Posted 15 April 2007 - 22:30

QUOTE(Ajvoks @ 15 Apr 2007, 21:02)
Postoji funkcija mysql_pconnect koji otvara "trajnu vezu". To zapravo znači da će svaki sledeći proces koristiti već otvorenu vezu između Web servera i database servera. U teoriji sjajno, ali kad su u pitanju Apache, PHP i MySql to jednostavno ne funkcioniše.

Zato IPB ne koristi tu funkciju, nego koristi običan mysql_connect. Tako otvorena konekcija traje koliko i izvršavanje skripta, odnosno u ovom slučaju otvaranje jedne strane.

Dosta jasnije vidim u cemu zapravo lezi problem ovog foruma, jer si poslao zaista opsirna objasnjenja. Namerno sam postavio topic, jer je ova greska (sa slike) pocela u poslednje vreme da mi se javlja sve cesce. Pogotovo u nekim spic terminima. I po 10 puta u toku posete. Ne znam kako vama, ali pretpostavljam da ako se desava meni desava se svima. I bogami zna da izludi, pogotovo ako pises neki duzi post kao recimo ovaj tvoj gore, kliknes Add Reply i dobijes poruku sa slike ph34r.gif Ode tvoje pisanje i trud u propast, ako prethodno nisi kopirao ono sto si pisao. Jer mogu da refresh 100 puta ne vredi, a ako kliknem Back dobicu praznu formu. Mozda postoji varijanta da vratim ono sto sam napisao, I don't know. Ali otkad mi se to pocelo desavati, pocinjem da kopiram sve sto napisem, pre nego li posaljem. No nije ni vazno to sada nije ni tema ovog topica.

Ako uzmemo u obzir da za administratora sajta traze poznavanje Apache servera, PHP... onda to vec nesto i govori. Da ce sve verovatno ostati kako je bilo i da ce se mozda uraditi upravo nesto od onoga o cemu si pisao.

#13 acojlo

acojlo
  • Members
  • 152 posts

Posted 17 April 2007 - 03:42

QUOTE(Massive_Attack @ 15 Apr 2007, 18:27)
Koliko se secam funkcija mysql_connect ostvaruje i vraca trajnu vezu sa bazom podataka. A posto ovde svaka stranica koja se otvara pristupa bazi podataka, onda i svaki proces servera ima otvorenu trajnu vezu.
E sad, standardni parametar max_connections u mysql je 100 a kod Apacha je parametar max_clients 150. To moze da se edituje u config fajlovima, ali do koliko? Dok opet editovanje i povecanje konekcija zavisi i od mogucnosti hardwearskog dela.
Kao sto Kiklop kaze, mozda je ipak na ovom besnom forumu resenje "Sql i Oracle".


Ne, ne, ipak si ti u pravu.

#14 acojlo

acojlo
  • Members
  • 152 posts

Posted 17 April 2007 - 03:43

QUOTE(Massive_Attack @ 15 Apr 2007, 23:30)
Dosta jasnije vidim u cemu zapravo lezi problem ovog foruma, jer si poslao zaista opsirna objasnjenja. Namerno sam postavio topic, jer je ova greska (sa slike) pocela u poslednje vreme da mi se javlja sve cesce. Pogotovo u nekim spic terminima. I po 10 puta u toku posete. Ne znam kako vama, ali pretpostavljam da ako se desava meni desava se svima. I bogami zna da izludi, pogotovo ako pises neki duzi post kao recimo ovaj tvoj gore, kliknes Add Reply i dobijes poruku sa slike ph34r.gif Ode tvoje pisanje i trud u propast, ako prethodno nisi kopirao ono sto si pisao. Jer mogu da refresh 100 puta ne vredi, a ako kliknem Back dobicu praznu formu. Mozda postoji varijanta da vratim ono sto sam napisao, I don't know. Ali otkad mi se to pocelo desavati, pocinjem da kopiram sve sto napisem, pre nego li posaljem. No nije ni vazno to sada nije ni tema ovog topica.

Ako uzmemo u obzir da za administratora sajta traze poznavanje Apache servera, PHP... onda to vec nesto i govori. Da ce sve verovatno ostati kako je bilo i da ce se mozda uraditi upravo nesto od onoga o cemu si pisao.


70% web servera na planeti ima apache.

#15 Massive_Attack

Massive_Attack
  • Members
  • 2,103 posts

Posted 19 April 2007 - 02:05

QUOTE(acojlo @ 17 Apr 2007, 04:42)
Ne, ne, ipak si ti u pravu.

Hm. Cudno mi,... mysql_pconnect, jer znam da ova funkcija ostvaruje obicnu vezu ka bazi.

QUOTE(acojlo @ 17 Apr 2007, 04:43)
70% web servera na planeti ima apache.

To vec svi zamo. Da i jedan Google lezi na tome. To bi vec ispala druga tema na ovom topic (Linux u tome sije M$ odavno).