Temat: Specyfikacja techniczna serwera, przepustowość łącza a...
Waldemar S.:
Witam!
Mam takie pytanie... Nie jestem specem w bazach danych/serwerach
dlatego piszę.
Chodzi o spostrzeżenia i Wasze doświadczenia.
Mam serwer dedykowany:
Procesor Intel Xeon E3 1245v2
Rdzenie / Wątki 4 cores / 8 threads
Częstotliwość 3.4 GHz+
RAM 32GB DDR3
Dyski 2x 2 TB SATA
RAID Soft
Sieć 1 Gbps
Przepustowość 250Mbps
Transfer Bez limitu
IPv4 1
IPv6 /64
Anty-DDoS Zawarte w ofercie
Stoi on na OVH na NGINX.
Na serwerze tym stoi 5 portali informacyjnych. Od czasu do czasu przy dużej ilości odwiedzin (niewykluczone, że to zbieg okoliczności) portale siadają i wyskakuje błąd NGINX. Firma
zewnętrzna obsługująca technicznie portale i zarazem twórcy systemu CMS na których stoją portale twierdzą, że przy około +/- 9 mln odwiedzin wszystko siada (oczywiście po interwencji admina wszystko rusza). Limit na ilość odwiedzin/połączeń? pierwsze słyszę...
Co 9 mln siada? ;) A bardziej na poważnie - wszystko siada, czy tylko jeden z 5 serwerów?
Zwykle jak mam podobne problemy - chodzi o ilość równoczesnych połączeń... innym problemem jest ilość przesyłanych danych. Trochę mało danych, żeby coś powiedzieć - ciekawe na czym polega interwencja admina... :)
Jeśli chodzi o ilość połączeń w jednostce czasu to jaka jest średnia wartość, żeby zapchać taki serwer?
Dużo zależy jak całość została skonfigurowana... Taki WordPress ma cache - generuje strony na dysku. Linux ma bufory w pamięci i dane, które są często serwowane lecą z ramu. Można tworzyć dedykowane rozwiązania - np. w oparciu o memcache, chociaż nie zawsze da się tak zrobić. Czasem jednak trzeba coś przetworzyć i wtedy statyczna strona nie zadziała.
Trochę to bez sensu. Rozumiem, żeby w ciągu kilku sekund bombardowało zapytaniami do bazy... może włącza się ANTY-DDOS?
Tu zależy jaka to baza danych i na czym to bombardowanie polega.
Co do rozwiązań... Zacząłbym od określenia problemu. Można optymalizować, tuningować, ale... żeby mniej-więcej coś powiedzieć - trzeba znać więcej szczegółów. Tak w ciemno - to mogę powiedzieć, że ten CMS jest w PHP na MySQL, z MyIsam - zmiana danych stawia locka na tabelkę - jak jest wystarczająco duży ruch - takie "przycięcie" powoduje skumulowanie i coś pada. No, ale - tak jak już napisałem - wróżenie z fusów. No, albo coś innego się kleszczy, albo też dane, do serwowania są trzymane w bazie i z niej serwowane... Tyle, że wtedy te 9 mln to chyba dziennie. :)
Jak taki system działa? Czy trzeba zmienić ustawienia ANTY-DDOS? Czy trzeba zmienić na szybszy/lepszy serwera dedykowany?
Zacząłbym od stwierdzenia w czym jest problem. Potem starałbym się rozwiązać go przez tuning, potem zmiany w oprogramowaniu, potem rozrzucił ruch na więcej maszyn. Można iść w chmurę.
Czy jest możliwość sprawdzenia ile zapytań generuje system CMS dla jednego wczytania np. strony głównej z poziomu zwykłego użytkownika np. w firebug? Jaka jest optymalna ilość zapytań na jedno odświeżenie strony? Czy optymalizacja kodu/zapytań w CMS-ie może pomóc?
Z poziomu klienta takie informacje nie są dostępne. Można udostępnić, ale... tak z automatu - nie ma. Powody są dwa - bezpieczeństwo i wydajność.
Do django (framework do pythona) jest moduł, który pozwala na udostępnianie takich informacji w trybie deweloperskim.
Optymalna ilość zapytań - no... zero. Tyle, że nie zawsze się da, bo czasem coś tam do bazy trzeba zapisać... Optymalizacja systemu może pomóc, ale nie musi. Dużo za mało informacji, żeby coś powiedzieć.
Jak zweryfikować takie informacje?
Normalnie jak jest taki zonk. To się wchodzi w nocy i ogląda, przestawia parę ustawień, żeby miało to sens. Potem się ustawia logowanie wszystkiego i się czeka - zwykle z takimi ustawieniami pad przychodzi szybko i wtedy można wyłączyć pełne logowanie, pobrać te dane, zrestartować serwer... No i można analizować sobie. Wtedy są wnioski, się zmienia i tak do zwycięstwa.