Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Memcache, Memcached w IPB


matma4u

Rekomendowane odpowiedzi

Hai. Też tego używam, nawet stworzyłem temat w jego sprawie: http://forum.invisionize.pl/topic/46129-memcached/#entry277090.

 

Uruchomiłem serwer memcached i wpisałem te linijki do conf_global.php, podając właściwe dane i działa; w debugu wyświetla się oto ta informacja: /usr/home/ciach/domains/ciach/public_html/ips_kernel/classCacheMemcache.php. Czas wykonywania skryptu nieco się skrócił, więc to dosłownie lekka poprawa wydajności, jednak przypuszczam, że przy sporym ruchu może to mieć znaczenie, bo wspomaga bazę danych (zwiększa się jego dynamika poprzez buforowanie danych i obiektów w pamięci RAM - więc jeśli jej jest całkiem dużo to nie staje się wąskim gardłem).

 

Wyżej moja opinia na jego temat. Poza tym, opierasz się na Apache2, co jest absolutnym przeciwieństwem wydajności (na to wskazuje twoje forum matma4u.pl - Apache/2.4.10 (Debian)). Cytuję siebie z innego forum:

 

 

Odradzam Apache2 - jest mało wydajny, staje się wąskim gardłem wydajnościowym przy większym narzucie ruchu i nie nadaje się do serwowania treści statycznych, a nawet dynamicznych. Te .htaccess, które de facto jest wychwalane przez ludzi, jedynie negatywnie wpływa na I/O, bo ten httpd szuka wszędzie tego pliku, a za każdym razem, gdy obsługuje żądanie, czuje się 'zmuszony', by sprawdzać zmiany, aby stały się one widoczne po obsłużeniu docelowego żądania.

 

W miejsce tego serwera polecić mogę nginx wraz z php-fpm. Przekonwertuj MyISAM do InnoDB (dla tej większej bazy SQL), aby poprawić znacząco wydajność i nieco odchudzić tabelę - co prawda, zwiększy się jej zapotrzebowanie na zasoby, ale w połączeniu z PerconaSQL zdecydowanie skróci się czas na wykonanie żądania. Memcached również powinien nieco pomóc z tym. Polecam mieć dysk SSD, jeśli ta baza danych ma duży narzut I/O, a przyda się wyższa przepustowość.

 

CloudFlare przyda się do cache'owania contentu, tj. obrazki, o których wspomniałeś i za pomocą CDN serwuje na całym świecie, jakby były tuż obok. To zdecydowanie odciąży serwer, który zamierzasz uruchomić pod ten autorski skrypt.

 

Dodatkowo, trzymam grafikę (header, logo, etc.) na serwerach Google. Spróbuj również varnish + modyfikacja IPB pod niego (dodająca odpowiedni nagłówek) - istny demon wydajności, który pokazuje kopię tematu/postu z opóźnieniem o parę minut, a w razie nowego postu odświeża się.

 

Btw, jaki przydział RAM dla memcached ustawiłeś?

Edytowane przez xSkyer
  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuje za podzielenie się opinią.

 

Btw, jaki przydział RAM dla memcached ustawiłeś?

 W tym momencie to 64MB.

 Na razie to w zupełności wystarcza, bo moje forum z racji tematyki w tym momencie świeci prawie pustakami. Wakacje..

 

Nawiązując do Twojej wcześniejszej wypowiedzi to ja też mam bazę w InnoDB (serwer MySQL Percona Server 5.6), do tego PHP 5.6.x z włączonym Opcache, które daje niesamowitego kopa.

 

Myślałem również o jakimś CDN, ale na rynku polskim jakoś nic nie mogłem sensownego znaleść. Serwisy CDN Microsoftu, Amazon wydawały mi się przerostem formy nad treścią z racji lokalizacji swoich serwerów. W zasadzie jesteś pierwszą osobą, która stwierdza, że coś takiego ma sens. Rozejrzę się w planach taryfowych CloudFlare. Prosiłbym tylko o radę jak to skonfigurować pod IPB3.4.8.

 

 

Do tej pory używałem serwera Litespeed na dhosting.pl (http://www.litespeedtech.com/products/litespeed-web-server/benchmarks/php-hello-world). Jednak od około miesiąca migrowałem do nowego usługodawcy i stąd zmiana na Apache2. Musze zorientować się czy Litespeed jest darmowy.

  • Lubię to 1

46279b204b.png

Rozwiążemy dla Ciebie każde zadanie z matematyki: http://matma4u.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Myślałem również o jakimś CDN, ale na rynku polskim jakoś nic nie mogłem sensownego znaleść. Serwisy CDN Microsoftu, Amazon wydawały mi się przerostem formy nad treścią z racji lokalizacji swoich serwerów. W zasadzie jesteś pierwszą osobą, która stwierdza, że coś takiego ma sens. Rozejrzę się w planach taryfowych CloudFlare. Prosiłbym tylko o radę jak to skonfigurować pod IPB3.4.8.

 

CloudFlare robi za świetny loadballancer - rozprasza content na cały świat (tu masz ich mapę serwerów: https://www.cloudflare.com/network-map),z użyciem zmodyfikowanego pod swoje potrzeby reverse proxy nginx. Cache'uje treści, jak grafika, CSS i JavaScript, a także kompresuje te zasoby. Też oferuje ochronę przeciw atakom DDoS, dodatkowo ukrywa docelowy serwer (pamiętaj również o serwerze SMTP, bo mail() wypluwa rzeczywisty IP serwera, a także o wyłączeniu display_errors).

 

Konfiguracja jest banalnie prosta, sprowadza się do paru kroków:

 

  • Przekierowanie swojej domeny (w twoim przypadku matma4u.pl) na serwery DNS od Cloudflare,
  • Ustawienie rekordów DNS, dla przykładu:

@ (A, domena) - IP serwera + aktywowana chmurka (ich reverse proxy), direct (CNAME) z chmurką, www (CNAME) wskazujące na @ (domena). Oraz rekordy MX, w tym przypadku polecam Zoho mail, Yandex mail, Google Apps (jest płatne, niestety) - niezależny serwer pocztowy to świetna sprawa, pozwala na zapewnienie wysokiej dostępności i komunikacji w razie awarii serwera docelowego.

  • Musisz w IPB (3.4.8 czy niższa/wyższa - nevermind) uaktywnić nagłówek, który pobiera rzeczywisty adres IP (w ustawieniach) oraz wyłączyć minify CSS/JS (IPB ma to włączone domyślnie i niepotrzebnie, bo obciąża serwer, gdy CloudFlare może zajmować się tą sprawą).
  • I tyle.

 

Do tej pory używałem serwera Litespeed na dhosting.pl (http://www.litespeedtech.com/products/litespeed-web-server/benchmarks/php-hello-world). Jednak od około miesiąca migrowałem do nowego usługodawcy i stąd zmiana na Apache2. Musze zorientować się czy Litespeed jest darmowy.

 

Litespeed jest płatny, ale masz alternatywę open-source od tej samej firmy, zwaną Openlitespeed. Generalnie, bardzo podobny frontend, ale zapodam klasyka, który zapodałeś: 'to przerost formy nad treścią'. Nginx jest świetny, ma masę funkcji, na które pozwoliłbyś sobie jedynie w Litespeed (komercyjna usługa = więcej możliwości, pheh). Zresztą, jeśli martwi Cię brak .htaccess, bo chcesz używać przyjaznych adresów URL (wiem, rozumiem), które, jak widać, masz włączone, to po prostu wklep regułki pod Nginksa i wsio.

 

Nie możesz zawsze sugerować się benchmarkami, bo one są niemiarodajne - to też zależy od skryptu, konfiguracji frontendu, serwera, etc.  Masa czynników, które wpływają na ostateczny wynik.

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuje za bardzo rzeczową wypowiedź.

Z tego co piszesz na chwilę obecną najłatwiej będzie uruchomić usługę CloudFlare. Prosiłbym o pomoc w poprawnej konfiguracji usługi. Przeskanowało domenę i wyrzuciło takie wyniki:

pre_1435555563__cloudfare1.jpg

 

Co tutaj powinienem zmienić lub dodać? Tam gdzie symbol chmurki jest pomarańczowy rozumiem, że usługa działa i przyśpiesza  działanie strony.

 

W następnych krokach podało mi adresy DNS na które mam przekierować domenę matma4u.pl. To wiem jak zrobić.

 

Rozumiem, że dla matma4u.pl i www.matma4u.pl działa przyśpieszenie.

 

Teraz ACP w IPB.

pre_1435556017__cloudfare2.jpg

 

Pierwszą opcję mam wyłączyć. To jasne.

A co wpisać w kolejne pola, jaki adres URL tam wstawić?

 

Gdzie tego szukać?

 

Musisz w IPB (3.4.8 czy niższa/wyższa - nevermind) uaktywnić nagłówek, który pobiera rzeczywisty adres IP (w ustawieniach)

 

  • Lubię to 1

46279b204b.png

Rozwiążemy dla Ciebie każde zadanie z matematyki: http://matma4u.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Z tego co piszesz na chwilę obecną najłatwiej będzie uruchomić usługę CloudFlare. Prosiłbym o pomoc w poprawnej konfiguracji usługi. Przeskanowało domenę i wyrzuciło takie wyniki:

pre_1435555563__cloudfare1.jpg

 

Co tutaj powinienem zmienić lub dodać? Tam gdzie symbol chmurki jest pomarańczowy rozumiem, że usługa działa i przyśpiesza  działanie strony.

 

dkR4RmN.png

 

Wymazałem jedynie rekordy MX, DKIM i SPF, ale to, co zostawiłem - to powinno być dla Ciebie najistotniejsze. Warto sprzątać po sobie rekordy, które nie są używane i które ujawniają rzeczywisty IP, aby zwiększyć szanse na bezpieczeństwo.

 

 

A co wpisać w kolejne pola, jaki adres URL tam wstawić?

Nic nie wpisujesz. Byłby sens to zrobić, gdybyś nie miał reverse proxy, a zasoby byłyby osadzone na zewnętrznym serwerze, który korzysta z sieci CDN - np. AWS. Coś a'la link do bootstrapa z MaxCDN. Wystarczy, że wyłączyłeś te minify css oraz js.

 

 

Gdzie tego szukać?

Musisz w IPB (3.4.8 czy niższa/wyższa - nevermind) uaktywnić nagłówek, który pobiera rzeczywisty adres IP (w ustawieniach)

 

Ustawienia 8kqy7KW.png Security and Privacy 8kqy7KW.png Enable X_FORWARDED_FOR IP matching ustaw na Tak.

Edytowane przez xSkyer
Odnośnik do komentarza
Udostępnij na innych stronach

No dobra. Zrobiłem wszystko zgodnie z radami. Poczekałem 24h na to by nowe DNS rozpropagowały się po sieci i już widzę efekty. 

W górę (na +) skoczyły wszystkie wskaźniki:

 - zaoszczędzone ponad 50% transferu

 - wskaźniki SEO podskoczyły w górę o kilkanaście punktów (cachowanie stron i szybkość ładowania)

 - szybkość ładowania strony podskoczyła o około 25% (Cloudfare ma serwer w Warszawie!!!!!!!)

 

Oczywiście jak na razie mogą to być jak narazie mało miarodajne wyniki, ale na bieżąco będę je monitorował i dzielił się nimi z Wami.

  • Lubię to 1

46279b204b.png

Rozwiążemy dla Ciebie każde zadanie z matematyki: http://matma4u.pl

Odnośnik do komentarza
Udostępnij na innych stronach

 Proszę o przywrócenie tematu do działu Invision Power BoardRozmowy o IP.Board

Wydaję się, że w tej formie i treści temat nie spełnia swojej roli jako tutorial/porada.  Ocenę pozostawiam Zespołowi forum. W razie konieczności stworzę dwa osobne poradniki o Memcache i Cloudfare

  • Lubię to 1

46279b204b.png

Rozwiążemy dla Ciebie każde zadanie z matematyki: http://matma4u.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Nic dziwnego, że CloudFlare ma POP w Warszawie - to bardzo wskazane, żeby sieć CDN miała ogromny sens. Myślę, że są najlepiej rozwinięci pod względem dostępności serwerów na całym świecie.

 

Hint: masz również SSL całkowicie za darmo - obecnie działa Ci, ale niestety forum się 'wysypuje', bo jest treść mieszana, czyli masz sporo zasobów (w tym grafikę, CSSy i JSy) bez SSL. Warto linkować bez wzmianki protokołu, czyli np. //google.com - jest wtedy cross-protocol.

 

Gdybyś zabezpieczył resztę zasobów i puścił całe forum po SSL - zdecydowanie skoczy Ci wynik w Google, bo oni wyróżniają bezpieczne serwisy. HTTP/2 będzie zestandaryzowane, więc i tak zajdzie Ci potrzeba zapewnienia szyfrowania dla serwisu. Well, HTTPS, jako protokół, jest szybszy od HTTP, ale tylko, gdy masz odpowiednio wydajny sprzęt - CloudFlare zapewnia taki i dzięki temu uzyskasz jeszcze lepszy wynik, więc nie tylko SEO.

 

Uwaga: nie będzie działać twoje forum pod Windowsem  XP (Chrome), starszym Androidem i przeglądarkami nieuznającymi SNI.

 

Dodatkowo mogę zasugerować uzbrojenie stylu w tzw. responsywność, aby zapewnić PR pod urządzeniami mobilnymi. Google faworyzuje responsywny witryny.

 

Cieszę się, że mogłem pomóc. :)

 

Btw, przeszedłeś (zgodnie z moją sugestią) na Nginx? Proponuję również PHP 5.6 i FastCGI pod niego. Daje niesamowitego kopa.

 

PS. Miły dla oka byłby jakiś nietypowy favicon, cuś związanego z matematyką. ^_^

Edytowane przez xSkyer
  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

 

Hint: masz również SSL całkowicie za darmo - obecnie działa Ci, ale niestety forum się 'wysypuje', bo jest treść mieszana, czyli masz sporo zasobów (w tym grafikę, CSSy i JSy) bez SSL. Warto linkować bez wzmianki protokołu, czyli np. //google.com - jest wtedy cross-protocol.

 

W zasadzie przejście na pełne SSL nie stanowi problemu i ogranicza się do kilku kroków:

  • w pliku  conf_global.php należy zamienić wszystkie http na https
  • w ACP--> System --> System Settings --> General Configuration należy zmienić http na https w polu Website address i Upload URL
  • w ACP--> System --> System Settings --> Security and Privacy należy zmienić Use https for logins na TAK 
  • w ACP --> Look & Feel --> Template Tools - "Recache Skin Sets" (przebudowujemy skin)

Włączyłem u siebie i wszystko działa. Jedynie co to dla kilku modyfikacji musiałem ręcznie pozmieniać adresy na https (np w Promenu)

 

 

przeszedłeś (zgodnie z moją sugestią) na Nginx? Proponuję również PHP 5.6 i FastCGI pod niego. Daje niesamowitego kopa.

 

 

Jeszcze nie instalowałem Nginx, ale mam zainstalowane PHP 5.6.9 bez FastCGI (będzie zrobione na dniach)

 

 

 

Dodatkowo mogę zasugerować uzbrojenie stylu w tzw. responsywność, aby zapewnić PR pod urządzeniami mobilnymi. Google faworyzuje responsywny witryny.

 

Świetna spraw, ale to przekracza moje możliwości na dzień dzisiejszy, a inne rozwiązania (chociażby FastCGI) mają wyższy priorytet :)

 

 

Tak jak obiecałem dzielę się z Wami moimi spostrzeżeniami na temat Cloudfare. Niestety w Cloudfare musiałem wyłączyć opcję Rocket Loader Asynchroniczne ładowanie javascript powodowało szereg błędów w ACP. Cześć funkcji działała bardzo niestabilnie, choć od strony końcowego użytkownika wszystko działało jak należy. Oczywiście można włączyć tryb Manual i w ten sposób obejść problem

Rocket Loader can improve load times for pages that include JavaScript. Your search engine ranking may be improved by reducing page load time.

Rocket Loader improves page load times by:

  • Decreasing the number of network requests by bundling JavaScript files, even third party resources, to avoid slowing down page rendering
  • Asynchronously loading scripts, including third party scripts, so that they do not block the content of your page from loading immediately
  • Caching scripts locally (using LocalStorage, available on most browsers and smart phones) so they aren't refetched unless necessary
What Rocket Loader setting should I use?
  • Automatic: Optimize all JavaScript resources on your website. No configuration required
  • Manual: Selectively enable Rocket Loader for individual scripts. Add the following attribute to the script tag for each script where you want to enable Rocket Loader:
    • data-cfasync="true"

Note: The 'data-cfasync' attribute must be added to the HTML script tag before the 'src' attribute (adding the attribute via JavaScript is not sufficient).

Rocket Loader is considered Beta because it’s an experimental feature that modifies the loading and execution flow of Javascript. While efforts are taken to increase Rocket Loader’s compatibility with third-party Javascripts, not all scripts work with this feature. Issues with Rocket Loader affect only a small percentage of customers.

 

xSkyer dziękuje jeszcze raz za wszelkie sugestie, które po wprowadzeniu w życie mocno odciążyły mój serwer i wpłynęły znacząco na poprawę funkcjonalności i szybkości działania mojej witryny.

Edytowane przez matma4u

46279b204b.png

Rozwiążemy dla Ciebie każde zadanie z matematyki: http://matma4u.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Ok Promenu działa. Trzeba opcję jQuery Remote Load ustawić NIE, a w polu jQuery UI CSS wprowadzić URL z https

Niestety nie działa mi jeszcze Ad Code Integration.

 

Masakra bo nie wiem czemu?

Edytowane przez matma4u

46279b204b.png

Rozwiążemy dla Ciebie każde zadanie z matematyki: http://matma4u.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.