NFsec Logo

Młotkiem w wiele wirtualnych rdzeni – Receive Packet Steering

18/10/2015 w Administracja Brak komentarzy.

S

krótów takich jak: RPS, RFS, XPS nie trzeba przedstawiać chyba nikomu – jeśli tak to warto się z nimi dogłębnie zapoznać. Zostały one wdrożone w wersji jądra 2.6.35 – 2.6.38 przez Toma Herberta z teamu Google i są aplikacyjną implementacją RSS (ang. Receive-Side Scaling). Na dedykowanych serwerach fizycznych do natłoku ruchu sieciowego możemy wykorzystać sprzętowe wsparcie kart sieciowych i mechanizmy do rozładowywania kolejek. Niestety na serwerach wirtualnych (Xen, KVM) cała ta praca spada na przypisany do maszyny procesor(y).
[ czytaj całość… ]

Intel(R) 10 Gigabit PCI Express Network Driver performance degradation

02/10/2015 w Administracja, Debug Brak komentarzy.

O

statnio podczas testów linków 10G zauważyłem ciekawą zależność. Testując różne wersje jądra w systemie Ubuntu 12.04 ze względu na różne problemy z obsługą systemu plików ext4 na świat wyszedł inny błąd powiązany z sterownikiem sieciowym. Dla wersji jądra: Linux darkstar 3.13.0-32-generic #57~precise1-Ubuntu SMP test linków za pomocą iperf prezentuje się następująco:
[ czytaj całość… ]

Rozszerzenie ipset dla iptables

08/11/2014 w Bezpieczeństwo Brak komentarzy.

P

rzez długi czas firewall w Linuksie oparty o iptables nie miał żadnego efektywnego sposobu, aby dopasowywać reguły do zbiorów adresów IP. Jeśli mieliśmy wiele adresów IP, aby dopasować do nich różne reguły (na przykład: setki lub tysiące adresów IP, które należało trzymać z daleka od portu SMTP) trzeba było tworzyć jeden wpis iptables dla każdego adresu IP, a następnie wprowadzać te wpisy sekwencyjnie. To wprowadzało wiele komplikacji w utrzymywanie takiego rozwiązania. Na szczęście w jądrach od serii 2.6.39 (Ubuntu 12.04, 14.04, Fedora 20, RHEL / CentOS 7) pojawiło się rozszerzenie ipset.
[ czytaj całość… ]

Zredukowanie ilości połączeń do serwerów memcache

30/01/2014 w Administracja 1 komentarz.

T

wemproxy (wymawiane „two-em-proxy”) lub nutcracker jest szybkim i lekkim proxy dla protokołów memcached (ascii) oraz redis. Został zbudowany przez programistów z firmy Twitter w celu zredukowania ilości połączeń do serwerów cache znajdujących się w backendzie. Przy dużej ilości serwerów frontowych łączność z warstwą cache lub systemem sesji za pomocą normalnej komunikacji może być bardzo kosztowny.
[ czytaj całość… ]

Przyśpieszanie polecenia: grep

17/12/2013 w CmdLineFu 1 komentarz.

C

iekawy trick zaprezentowany przez Brendan’a Gregg’a z firmy Joyent w przemówieniu na konferencji LISA 13 pt. Blazing Performance with Flame Graphs. Wyniki testu mogą zależeć od wielkości testowanego pliku i rodzaju szukanej fazy:

# export | grep LANG
declare -x LANG="pl_PL.UTF-8"
# du -h access.log.1
436M	access.log.1
# time grep -i 500 access.log.1 > /dev/null
real	0m38.765s
user	0m31.506s
sys	0m0.420s
# echo 3 > /proc/sys/vm/drop_caches
# time LANG=C grep -i 500 access.log.1 > /dev/null
real	0m21.762s
user	0m0.636s
sys	0m0.268s

Więcej informacji: Make grep 50x faster

Web performance – DNS Prefetching

21/01/2013 w Techblog Brak komentarzy.

D

NS Prefetching polega na próbie rozwiązania innej nazwy domenowej przed kliknięciem użytkownika na link znajdujący się w tej domenie. Co to oznacza w praktyce? Na przykład strona nfsec.pl hostuje wszystkie swoje pliki graficzne za pomocą usługi CDN (ang. Content Delivery Network) w domenach img(1|2|3).nfsecstatic.pl oraz używa API pod adresem api.nfsec.pl. Jeśli na stronie głównej lub podstronach strony nfsec.pl będą znajdowały się aktywne linki lub zasoby wykorzystujące w/w nazwy domenowe – to dopiero w momencie kliknięcia użytkownika na wybrany link lub odwołanie się do konkretnego zasobu (np. wyświetleniu obrazka) – przeglądarka dokona rozwiązania DNS, czyli przetłumaczenia nazwy domenowej na konkretny adres IP.
[ czytaj całość… ]

VMtouch – do cache’u z nim!

27/10/2012 w Administracja Brak komentarzy.

P

amięć cache w systemie Linux jest bardzo przydatna – potrafi wykorzystać nieużywaną pamięć RAM (nie zabierając żadnych zasobów od uruchomionych aplikacji), aby zwiększyć szybkość dostępu do obiektów znajdujących się na dysku. Prosty przykład:
[ czytaj całość… ]

Poprawa odpytywania serwerów DNS

13/09/2012 w Administracja Brak komentarzy.

S

ystemy linuksowe wyposażone są w lokalny resolver, który jest odpowiedzialny za tłumaczenie żądań programów o informacje o hostach w zapytania dla serwerów DNS oraz przekształcanie ich odpowiedzi w informacje dla tychże programów. Od wersji BIND 8.2 możemy dodać kilka nowych opcji do reslover’a, które teoretycznie mogą poprawić nam czasy odpowiedzi i wykorzystanie więcej niż jednego serwera DNS. Poniżej znajduje się przykładowy plik konfiguracyjny /etc/resolv.conf, który zawiera wpisy:
[ czytaj całość… ]

Slow Start tuning nie tylko dla jądra 3.2

22/04/2012 w Administracja, Debug 1 komentarz.

W

edług protalu webhosting.pl od wersji 3.2 jądra Linuksa został zwiększony rozmiar okna ograniczenia przesyłu (ang. the initial congestion window) z 3 do 10. Sam Saffron po wykonaniu kilku testów udowodnił, że tuning mechanizmu Slow-start pozwala na przyśpieszenie ładowania strony WWW (jeśli zastosujemy zmiany na maszynie pełniącej rolę web serwera) nawet do 25% – bez żadnej ingerencji w warstwę aplikacji. Podobne testy przeprowadzili technicy wyszukiwarki Cheméo uzyskując w własnych warunkach 20% przyśpieszenie. Czy osoby pragnące wprowadzić podobne zmiany skazane są na oczekiwanie, aż popularne dystrybucje zaczną używać jądra w wersji 3.2 – jak np. Ubuntu 12.04?
[ czytaj całość… ]

Konfiguracja serwera Apache względem .htaccess, a jego wydajność

18/03/2012 w Administracja Brak komentarzy.

W

iększość współdzielonych konfiguracji hostingowych zezwala na używanie plików .htaccess w określonych ścieżkach, gdzie przetrzymywane są strony klientów. Tyczy się to również konfiguracji przewidzianych dla dedykowanych projektów. Jak wynika z obserwacji Dawida Golunskiego przeniesienie konfiguracji z plików .htaccess (i tym samym ominięcia konieczności ich używania) do plików konfiguracyjnych hostów wirtualnych może przynieść zwiększenie wydajności serwera WWW do około 6.6% (w zależności od środowiska testowego i produkcyjnego wartość ta może być mniejsza lub większa).
[ czytaj całość… ]

Strona 1 z 212