PDA

Zobacz pełną wersję : Jak ocenić zapotrzebowanie na dodatkowe zasoby.



jasiek07
15-05-2014, 18:39
Witam, mam stronę w joomli.
Problem polega na tym, że przy ruchu ponad 4-5K strona poprostu siada, ładuje się bardzo wolno, a nawet często pada baza danych i trzeba naprawiać tabele, innymi słowy przy ruchu 3-5k (czy może troche więcej) strona przestaje funkcjonować. Strona posiada trochę dodatków ale nie należy do tych, które mają nagromadzoną masową ilość niepotrzebnych pierdół, używam raczej tylko tych potrzebnych, nic nadzwyczajnego. Styl CSS nie jest ubogi ale do najbogatszych bym go nie zaliczył.

Co może być przyczyną problemów? Wiadomo zdaję sobię sprawę z tego, że "na oko" to nie można powiedzieć za dużo, ale jakieś wskazówki byłyby mile widziane.

Serwer stoi oczywiście na Apachu bo jest wymagany do joomli, takto bym użył nginxa.
Jest to VPS,

CPU model : Intel(R) Xeon(R) CPU L5639 @ 2.13GHz
Number of cores : 2
CPU frequency : 2134.000 MHz
Total amount of ram : 2048 MB
Total amount of swap : 0 MB
System uptime : 1 day, 18:40,
Download speed from CacheFly: 30.7MB/s
Download speed from Coloat, Atlanta GA: 3.05MB/s
Download speed from Softlayer, Dallas, TX: 30.6MB/s
Download speed from Linode, Tokyo, JP: 11.1MB/s
Download speed from i3d.net, Rotterdam, NL: 7.13MB/s
Download speed from Leaseweb, Haarlem, NL: 19.6MB/s
Download speed from Softlayer, Singapore: 2.20MB/s
Download speed from Softlayer, Seattle, WA: 36.6MB/s
Download speed from Softlayer, San Jose, CA: 57.8MB/s
Download speed from Softlayer, Washington, DC: 18.9MB/s
I/O speed : 110 MB/s

Co powiecie "na oko"? Nie potrafię ocenić czy te zasoby są wystarczające. Dodam, że to nie jest żadna strona z downloadem, ani nawet obrazów dużych nie ma, tylko obrazki/ikony max po 150x150.

KES
15-05-2014, 20:38
Serwer stoi oczywiście na Apachu bo jest wymagany do joomli, takto bym użył nginxa.

Sorry za odbieganie od tematu lecz zastanawiam się gdzie jest napisane że na nginxie nie pójdzie Joomla?

jasiek07
15-05-2014, 20:47
Rzeczywiście, okazuje się że żyłem w błędnym przekonaniu (kiedyś mi się to rzuciło w oczy na jakimś forum chyba).
W takim razie wygląda na to, że najlepszym rozwiązaniem będzie zmiana apache na nginx?

mjmartino
15-05-2014, 21:03
Pierwszym krokiem byłoby sprawdzenie obciążenia jakie generuje strona przy tych 4K-5K
Potem jakaś większa optymalizacja, jeśli nie ma dużo dynamicznie zmieniającej sie dać większy nacisk na cache.
Kolejnym krokiem byłoby rozdzielenie bazy od strony.
A potem CDN <- chodź to zależy jaki ruch Ci przychodzi.

jasiek07
15-05-2014, 22:05
Dzięki za odpowiedź!

Przyznam, że jeśli chodzi o cache to jest to pierwsza myśl jaka przyszła mi do głowy. Praktycznie cała zawartość mojej strony jest statyczna (nie dodaję zbyt często nowych treści) jedyne co się zmienia no to fakt iż często ktoś się rejestruje, o ile to ma związek z cache. Jutro mam zamiar trochę o tym poczytać i coś zdziałać, możesz mi coś do radzić w tej kwestii (myślę o jakimś dobrym artykule/poradniku).

Co do CDN, to korzystam z Cloudflare.

Pojutrze z pewnością będę miał znaczny ruch na stronie. Coś konkretnego rozumiesz poprzez sprawdzenie obciążenia? Jeśli chodzi o zużycie zasobów to mogę powiedzieć tyle, że podczas ostatnich problemów, zużycie RAMu było praktycznie 100%. Zauważyłem w menedżerze zadań ogromną ilość wątków apache2 (co jest normalne przy sporej ilości odwiedzających prawda? A może moja konfiguracja jest do bani?), gdzie przy każdym było pokazane zużycie ok 1-2% na pojedyńczy wątek.

Na czym polegałby proces rozdzielenia bazy od strony? Nigdy o tym nie słyszałem, mógłbyś przybliżyć temat?

Co myślisz o zasobach mojego serwera? Czy powinienem je powiększyć, czy problem tkwi w konfiguracji? Nie jestem na tyle doświadczony z joomlą, aby ocenić jakie zasoby są proporcjonalne do ruchu w joomli.
Jutro chcę cały dzień poświęcić na optymalizację serwera (o ile to wystarczy) więc będę wdzięczny za każdą pomoc.

Pozdrawiam!

mjmartino
16-05-2014, 08:30
Niestety nie posiadam takiego linku do poradnika.

Co do CDN istnieje duże ryzyko że sobie zamiast pomóc zaszkodziłeś, jeśli Twój ruch jest tylko z polski. A dwa nigdy nie masz pewności że Twój ruch jest puszczany przez warszawe a nie przez Francje / Niemcy i okoliczne serwery.

No właśnie co do ilości wątków, to się czasem zdarza, trzeba skillować te procesy bo one są widmo. Zrestartuj apacha i jak ręką odjął ram się zwolni :)

Pomysł rozdzielenia polega na tym że baza stoi na osobnym vps/dedytku czy innej usłudze wysoko dostępnej. A strona stoi sobie na innym.