![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, jestem w trakcie szukania serwera VPS. Cena ~ 500zł na rok.
Prosiłbym Was o pomoc. Stronka jaką stworzyłem odświeżana jest co 12 sekund na urządzeniach mobilnych. Największy ruch to około 80 klientów. Na zwykłym hostingu przy 50 online wszystko jest ok. Problem zaczyna się przy 60 - 70 online. W logach komunikaty o braku wolnych slotach PHP. Na VPS-ie zamierzam zainstalować NGINX+FastCGI + SSL, PHP 5.3, MySQL, OpenVPN. Chciałbym się dowiedzieć czy poniższe parametry maszyny wystarczą. Łączna moc procesora: 2 GHz Z podziałem na rdzenie: 1 x 2 GHz Gwarantowana pamięć RAM: 2048 MB |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Skoro strona odpala się 1/12s * 80 klientów == 80/12s czyli ok 7/s to straaaasznie mało. Chyba że ta strona mieli miliardy danych.
Nic nie napisałeś co ta strona wydziwia że tak strasznie zwalnia. https://centrum.axfone.pl/zamow-serwer-wirtualny.html Tam masz za taką cenę dość dobry serwerek Ew. coż z ovh: http://www.ovh.pl/vps/vps-classic.xml |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zapytania wysyłane przez klientów generują ciąg JSON z bazy danych. Następnie przeglądarki klientów budują całość divy, tabele etc., więc odbywa się to dość szybko.
Całość działa bez zarzutów, tylko na zwykłym serwerze ograniczył mnie jedynie PHP i zmuszony jestem poszukać czegoś bez limitów. Zastanawiam się czy najsłabszy VPS poradzi sobie z taką ilością klientów w tak krótkim czasie. Do tego zdalna administracja, replikacja bazy, dostęp VPN. W niedługim czasie MAX klientów online może być ~100. Ciekawą ofertę znalazłem na ultimahost. Parametry napisałem wcześniej. Myślisz, że biorąc ich hosting, pozbędę się problemu? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zawsze możesz wykupić na 1mc i zobaczyć czy Ci się dobrze będzie działo
Ciekawe rozwiązanie to też http://aws.amazon.com/ |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak już musisz odświeżać co 12 sekund w celu sprawdzenia czy są nowe wyniki, zastanów się nad node.js i sockets.io, dzięki czemu nie będziesz musiał odświeżać, a strona będzie aktualizowana u każdego klienta o dane w tym samym czasie. W mydevil.net masz nginx+phpfpm+php (node.js też) jako moduł lub jako fcgi (sam sobie poprzez htaccess ustawiasz. Tak htaccess na nginx - takie rzeczy tylko u nich). Zrób tak jak ja, wynajmij sobie na jakiś miesiąc, potestuj i podejmij decyzje. Póki co osiągi mam tam dużo lepsze niż na dedyku cpu x2 + 2gb ram (najtańszy kimsufi w ovh) w bardzo podobnej cenie.
Ten post edytował by_ikar 18.06.2014, 20:14:22 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedzi. Niestety musiałem zwiększyć cykl odświeżania strony do 17 sekund, ponieważ mysqld aż płonie przy ilości 55 online. Właśnie testuję hosting. 2GHz procesor, 2GB RAM.
Z pewnością poczytam o node.js, w moim przypadku faktycznie byłoby to super rozwiązanie, żeby w tym samym czasie ludziki otrzymywali zmiany. Mam jeszcze jedno pytanie, otóż mysqld jest na poziomie (przy obecnej ilości osób online) 2-20-45-65-98%. Cały czas skacze, w zależności od ilości zapytań ale napiszcie mi, czy jest się czym przejmować? Skrypty działają prawidłowo, rekordy w bazie pojawiają we właściwej kolejności. Dodam, że zwiększyłem cache dla zapytań do 128MB. Silnik bazy danych to Myisam. Działam bez indeksów. Ilość zapytań na sekundę < 10 (badane mytopem). Wszystko działa super, zużycie CPU wszystkich procesów 0%, prócz mysqld. No niestety, jeden rdzeń to za mało. Weszło 70 osób i już padło wszystko. Podniosłem pakiet do 2x2,5GHz, 8GB RAM i teraz jest ok. Mysql na poziomie, 120-150% a jak zapytania dobrze się ułożą to wynik jest jeszcze lepszy. Żeby poprawić wyniki, pozostało mi tylko zoptymalizować kilka skryptów a jak będzie jeszcze więcej osób, podnieść pakiet. Dziękuję za odpowiedzi i pozdrawiam. Temat zamknięty. Ten post edytował SeaDog 22.06.2014, 00:05:55 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
czy jest się czym przejmować?
Przy tak znikomej ilości osób, jest. Ile masz max ramu? I czy nie rozważałeś przejścia na InnoDB? No i dlaczego bez indexów? (IMG:style_emoticons/default/tongue.gif) Widzę że edycja poszła, przy 8gb ramu powinieneś mieć sporo więcej cache. Dla innoDB, z tego co pamiętam, to na spokojnie można dać 40-50% ramu na cache. Ten post edytował ohm 22.06.2014, 00:07:38 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
...ale strzeliłem gafę, nie 8GB tylko 4GB. W tej chwili parametry to: 2x2,5GHz i 4GB RAM. RAM do wykorzystania 4GB (Gwarantowane). Z tego co wyczytałem w internecie InnoDB jest wolniejsze od Myisam.
ostatnio wpadło mi "pod palce" MariaDB. Z czasem przejdę na tą bazę danych. Tymczasem pozostaje MySQL i optymalizacja. W konfigu ustawiłem 256MB dla query_cache_size. Jeśli chodzi o indexy, powiem szczerze, że nigdy z nich nie korzystałem. Nie za bardzo jeszcze wiem jak je ugryźć. Poczytam, ogarnę. Myślisz, że powinienem na początek dać więcej ramu dla cache? Dodam, że dysk to 40GB SSD. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź sobie po kilku godzinach tym skryptem: https://raw.githubusercontent.com/major/MyS...r/mysqltuner.pl i on da ci podpowiedzi odnośnie ewentualnych zmian. Nie traktuj tego jako wyrocznia, tylko raczej podpowiedź (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Stary, jeżeli nie masz indeksów to baza dancyh traci ok 10x na wydajnośc. Kiedyś pisząc skrypt generujący import z pliku XML gdzie trzeba było robić selecty + inserty zapomniałem dać indeksów. Efekt: 100 zapytań/s i się zmniejszało. Dodając indeksy tam gdzie powinny być wydajność wzrosła 10x
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
OK, rozumiem brak indeksów powoduje duży spadek wydajności. Jakbyście mogli mi po trosze wytłumaczyć na poniższym przykładzie byłbym wdzięczny.
Mam takie zapytanie:
Zapytanie dopasowuje kolumnę A i kolumnę B na podstawie wspólnego ID. Żeby odciążyć bazę wystarczy, że dla kolumny A dla pola ID i dla kolumny B dla pola ID wprowadzę indeks? Forma zapytania pozostaje bez zmian? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Indeksy wprowadzasz tam gdzie używasz albo złączenia albo ustawiasz warunki WHERE na nich. Ale nie ma co przesadzać chyba że masz za dużo miejsca w bazie (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wprowadziłem dwa indeksy dla pól ID, jak napisałem wcześniej. Niesamowita różnica. Jak obciążenie bazy było na poziomie 43% przy 14 online, tak teraz jest zaledwie 1%-2%.
Dziękuję za pomoc. Mam jeszcze jedno pytanie. Ile miejsca zajmują takie indeksy? Jak to łatwo sprawdzić. Ogólnie wzrasta rozmiar bazy, ale czy takie indeksy są przechowywane w osobnych plikach i jeszcze czy przy usunięciu indeksu i ponownym utworzeniu następuje zwolnienie miejsca na dysku i ponowne budowanie indeksów (tak jakby procedura tworzenia indeksów następuje od początku)? Chodzi o to, że jedna tabela jest czasem aktualizowana i teraz jak zostaną utworzone indeksy a zostanie dodany nowy rekord a inny usunięty albo nastąpi zmiana wartości pola to indeksy zostaną na nowo budowane. Pytanie czy stare się usuną? Jak w takiej sytuacji przedstawia się zajętość dysku? Ten post edytował SeaDog 28.06.2014, 08:58:16 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeżleli masz phpMyADmin to w strukturze tabbeli masz informacje nt. zajętości indeksów.
Generalnie nie musisz się o to martwić |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zgadza się, znalazłem też w internecie kilka zapytań pokazujących stan zajętości bazy danych, poszczególnych tabel etc.
Dziękuję bardzo za pomoc. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 25.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Czy wie ktoś czy istnieje jakiś usługodawca oferujący serwer VPS z więcej niż jednym adresem IP? np. w OVH wykupiłem za 2400zł/rok a nie chcieli mi podpiąć drugiego:(
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Większość oferuje za dodatkową opłatą.
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 25.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za info. rzeczywiście oferta w miarę konkurencyjna. Czyli OVh jednak blado na tle konkurencji wypada:(
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 23 Dołączył: 23.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za info. rzeczywiście oferta w miarę konkurencyjna. Czyli OVh jednak blado na tle konkurencji wypada:( Pozornie blado, z tego co zauważyłem, jeden z moich najtańszych VPS-ów z OVH stoi na AMD Opterona 4284 (procesor klasy intel i7), także sprzęt jest dobry. Przejrzałem stronę Axfone (mają dobre ceny), ale znałem informację o tym, że do VPS-ów używają Xeonów 2.4 (czyżby chodziło o starą wersję z 512 KB L2 i 400MHz FSB?), także niższa cena zawsze niesie ze sobą niższą jakość. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:07 |