Skocz do zawartości
elmo

Szybkie ładowanie statycznego kontentu

Polecane posty

Witam serdecznie,

Na początku chciałbym zaznaczyć że jestem początkujący w administrowaniu serwerami. Staram się wszystko googlować i czytać, jednak mam problem który chciałbym skonsultować z mądrymi głowami ;)

 

Posiadam usługę która udostępnia pliki użytkownikom. Jest to dość duży trafik a pliki są od 10 MB do 100MB (no może kilka z nich jest nieco powyżej 100 MB - ale jest ich niewiele). Posiadam wykupione 3 serwery w OVH na których zainstalowałem nginx'a do wypychania tego kontentu. Wszystko jest wpięte do OVH'owego load balancera, tak aby rozdzielało ruch na te 3 serwery w miarę równomiernie. Jedynym problemem jest to że czasami trzeba poczekać kilka sekund zanim serwer zacznie wypychać jakiś plik. Chciałbym to jakoś w miarę zoptymalizować i teraz zaczęły się schody dla mnie ;) Na moją głowę te opóźnienia wynikają z czasu dostępu do dysku. Czy może być to spowodowane tym że jest zastosowany jakiś niewydajny system plików, czy może dane w katalogach są słabo poukładane (mam praktycznie 2 katalogi które mają po kilka tysięcy plików) czy może jest jakiś inny powód? Czytałem że każdy worker nginxa blokuje na chwile zasób którego używa i teraz czy to chodzi o to że blokuje on tylko żądany plik czy też cały katalog?

 

Tak ostatnio wymyśliłem żeby te mniejsze pliki ładować do pamięci RAM (taki jakby cache) i żeby taki "hot content" serwować bezpośrenio z pamięci (może by to skróciło czas oczekiwania na rozpoczęcie serwowania pliku przez serwer?). Dodatkowo czytałem o czymś takim jak proxy/reverse-proxy.. ale niewiem czy będzie mi to przydatne czy to raczej używa się do stawiania nginx'a przed serwerami bardziej zasoborzernymi :)

 

Pozdrawiam

elmo

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

jakie masz serwery w ovh? i ile transferu wypychasz codziennie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

jakie masz serwery w ovh? i ile transferu wypychasz codziennie?

 

Hej,

W infrastrukturze teraz mam wpięte 2 x EG Max Platinum 08 Revolution (stara oferta OVH) i 1 x EG BestOF 2010 Reloaded (z nowej oferty). Dzienny transfer średni to 100-120 mbit na serwer :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy wstawienie Varnish'a na serwer i skonfigurowanie nginx'a jako proxy do niego wplynie na szybkosc wypychania kontentu?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hej

Czytałem że każdy worker nginxa blokuje na chwile zasób którego używa i teraz czy to chodzi o to że blokuje on tylko żądany plik czy też cały katalog?

 

Nginx blokuje się na odczycie z dysku tzn. ze dany worker nie obsłuży innego żądania dopóki nie przeczyta pliku. Ile masz workerów? Ustaw 2-4x tyle co CPU.

 

Tak ostatnio wymyśliłem żeby te mniejsze pliki ładować do pamięci RAM (taki jakby cache) i żeby taki "hot content" serwować bezpośrenio z pamięci (może by to skróciło czas oczekiwania na rozpoczęcie serwowania pliku przez serwer?).

 

Jeżeli masz wystarczająco pamięci to pliki tak czy siak idą z pamięci - ostatnio czytane pliki trzymane są w page cache'u. Wpisz free w konsoli i zobacz ile masz zajętej pamięci i ile z tego zajmuje cache. W przypadku serwowania staticu taki loadbalancing, jaki masz (losowe rozkładanie ruchu pomiędzy serwery), wcale nie musi być dobrym pomysłem. Gdybyś serwował stały content z każdego serwera (zakładając, że sieciówka wyrobi) to miałbyś mniejszy przemiał w page cache'u.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×