Wymuszenie zwolnienia pamięci buforów dyskowych na Linux’ie

Linux bardzo agresywnie wykorzystuje wolną pamięć RAM do buforowania danych odczytywanych z dysków (inode’ów, plików, itd…). Ma to niebagatelny wpływ na zwiększenie szybkości uruchamiania programów które już raz zostały uruchomione. Jednak nie zawsze jest to pożądane zachowanie, np. testując szybkość uruchomienia/wykonywania tworzonej przez nas aplikacji - buforowanie zmienia czas ładowania aplikacji przy kolejnych uruchomieniach. Dobrze byłoby móc wymusić zwolnienie buforów by każdy start programu miał porównywalne “warunki startowe”. Na szczęście można to zrobić w prosty sposób: ...

2011-09-15 · 1 min · timor

Zabezpieczenie Apachego na Debianie przed slowloris’em

Od jakiegoś czasu dostępny jest w sieci skrypt slowloris.pl  external link pozwalający z pojedynczego komputera wykonać atak DOS na zdalny serwer WWW. Atak polega na uruchomieniu wielu równoczesnych sesji i bardzo wolnym wysyłaniu komunikatów HTTP. Atakujący udaje “klienta z wolnym łączem” równocześnie uruchamiając kolejne sesje by po pewnym czasie zająć wszystkie dostępne. Serwer WWW przestaje wtedy odpowiadać na zapytania od innych klientów. Dodatkowo na źle wyskalowanych serwerach duża liczba procesów Apachego może spowodować swapowanie i błędy braku pamięci. ...

2011-09-12 · 3 min · timor

Sprawdzenie który proces obciąża dyski

Na jednym z serwerów zauważyłem dziwny wzrost obciążenia. Tzw. LOAD od kilku dni po woli rósł. top pokazywał że dwa rdzenie CPU czekają na dane z dysku - tzw. io wait na poziomie 80~90% ale żaden proces w znaczącym stopniu nie obciążał CPU. Jest kilka narzędzi (iostat, wmstat), które pozwalają monitorować obciążenie dysków ale ja nie szukałem informacji czy i w jakim stopniu dyski są obciążone - wiedziałem że są. Chciałem dowiedzieć się który proces generuje to obciążenie - by móc go ubić 😃 ...

2011-09-02 · 1 min · timor

Konfiguracja backportów na Debianie

Tak się składa, że Debian ze względu na stosunkowo rzadkie wydawanie kolejnych wersji szybko staje się niezbyt świeży a dostępne w nim pakiety często nie spełaniają naszych oczekiwań. Nie ma najnowszej wersji Subversion… Nie ma mod_security itd, itp… Rozwiązaniem tego problemu może być instalacja pakietów z testowej gałęzi ale można polec na zależnościach. Można też kompilować ze źródeł… Tak czy siak w obu przypadkach aktualizacja i utrzymanie tak zmodyfikowanego systemu byłoby jak wrzód na zadku. ...

2011-08-29 · 2 min · timor

Optymalizacja PHP z eAccelerator’em

Przy okazji wykonywania kilku drobnych optymalizacji swojej stronki natknąłem się na eAccelerator’a. Ciekawy projekt, który w sposobie działania przypomina Zend Optimizer’a ale ma jedną zasadniczą zaletę - jest darmowy 😃 Niestety nie ma go w repozytoriach Debiana, więc trzeba go sobie skompilować - cały proces jest dość prosty. Zaczynamy od pobrania najświeższej paczki, obecnie jest to wersja 0.9.5.3: Pobierz eAccelerator  external link (ostatnio miałem problem z tym linkiem więc proponuję pogooglać) ...

2011-08-29 · 3 min · timor

Statystyki odwiedzin dla wielu serwisów z AWStats

Co prawda na swojej stronie zrobiłem kilka podstawowych statystyk i coś tam sobie loguję do bazy danych, ale gdyby się chwilę zastanowić to przecież to samo robi serwer www - wrzuca do logów każde zapytanie HTTP, kod błędu, nazwę agenta, itd. Dublowanie tych danych nie jest najbardziej optymalne. Stąd też chwilę pogooglałem i znalazłem świetny Open Source’owy projekt: AWStats, który jest webowym analizatorem logów dla serwerów HTTP, FTP i SMTP. ...

2011-08-29 · 5 min · timor

Dynamiczne IP i RBL’e

Mój serwer pocztowy działa od jakiegoś czasu na dynamicznym IP (dobre bo tanie…) i przeważnie nie ma z tym problemów. Postarałem się jak mogłem ustawiając SPF’a i DomainKeys aby uwiarygodnić go u większych dostawców poczty. Niestety wszystko to diabli biorą w momencie gdy wygasa mi leasse DHCP i dostaję nowe IP po jakimś spamerze/zombiaku. Wisi takie w 2-3 większych RBL’ach i o dostarczaniu poczty można zapomnieć. Miło gdy jeszcze zdalny MTA zechce odesłać zwrotkę “zróbta coś bo wisisz w RBL’u takim a takim…”, ale zdecydowania niefajnie gdy wysyłasz pocztę a ona od razu leci do /dev/null ...

2011-08-27 · 2 min · timor

Włam na lokalne konto root’a

Jeżeli tu zaglądasz pewnie zdarzyło Ci się kiedyś, że przykładowo wygrzebujesz jakiś stary serwer i nie masz pojęcia co na nim było, ani do czego służyło, czy jeszcze działa… Albo jeszcze inaczej - serwer działał tak długo, że wszystkie osoby znające hasło na root’a przeszły na emeryturę lub zmarły… Nieistotne 😃 Jest pewna prosta sztuczka, pozwalająca wbić się na konto root’a nie znając hasła - dając nam możliwość jego zmiany. Potrzebne dwa restarty ale za to nie trzeba korzystać z żadnychlive cd. ...

2011-08-27 · 2 min · timor

Wysyłanie załączników poleceniem mail

Kiedyś potrzebowałem w ramach testu obciążeniowego wysłać dużo wiadomości z załącznikami. Chciałem to zrobić na szybko z shell’a i tutaj chwilę musiałem pogooglać aby znaleźć działające polecenie. To co znalazłem wygląda tak: (echo "testowa wiadomosc"; uuencode test.zip test.zip) \ | mail -s "Test" testowy@mail.pl Wiedząc już jak wysyłać maile z załącznikami, mały mail bombing mogłem zrobić tak: for i in `seq 1 100`; do (cat tekst.txt; uuencode test.zip test.zip) \ | mail -s "Test $i" testowy@mail.pl; done

2011-08-27 · 1 min · timor