Cherokee atakuje Apache

Apache to znany wszystkim programistom webowym serwer HTTP. Osoby bardziej zainteresowane skalowaniem aplikacji poznały zapewne Lighttpd, a obecnie mogą wykorzystywać Nginksa. “Pogromców” Apache jednak ciągle przybywa.

Nginx jest chyba obecnie najpopularniejszą alternatywą dla Apache. Cechuje się on dużą wydajnością i sporymi możliwościami. Istnieje jednak kolejny gracz, który zaczyna dojrzewać do roli wysokowydajnego serwera HTTP i może zagrozić nie tylko Apache, lecz także Nginksowi i Lighttpd. Jest nim serwer Cherokee.

Jeden z programistów pracujących nad Cherokee opublikował testy wydajności rozwojowej wersji serwera w zestawieniu z Nginksem i Lighttpd. Jak widać Cherokee okazał się najbardziej wydajnym serwerem przy większej ilości klientów. Nie są to pierwsze “doniesienia” o wysokiej wydajności tego serwera. W sieci dostępnych jest kilka testów, w których również wypada bardzo dobrze. Na tym blogu znajdziemy też wpis opisujący serwer SunFire na jakim programiści Cherokee mogą go profilować – ważący 990 kg, obsługujący do 52 procesorów Sparc i do 2,5 TB pamięci. Znajdziemy także wpis dotyczący rozkładu ruchu do serwerów MySQL za pomocą HTTP+JSON, w którym autor opisuje moduł dla Cherokee spełniający tę rolę. Pomysł nie jest nowy – inspiracją był moduł Apache napisany przez programistów z New York Times. Jeżeli wierzyć testom – nowe spojrzenie na problem okazało się znacznie lepszym rozwiązaniem.

Zaletą wolnego oprogramowania jest możliwość jego ciągłego doskonalenia. Daje także swobodę w formie jego udoskonalania. Apache ma już swoje lata, jest powszechnie stosowany i stabilny, choć może nie zawsze sprawdzać się pod dużym obciążeniem nowych serwisów generujących coraz większy ruch. By rozwiązać ten problem powstają alternatywne rozwiązania starające się rozwiązać powstałe problemy nowym spojrzeniem.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

130 odpowiedzi na „Cherokee atakuje Apache”
  1. Awatar jellonek
    jellonek

    muahaha – otwarcie pierwszego linka rozbroilo mnie – przy pierwszej probie: 500 – internal server error 😀
    pewnie przypadek, ale humor poprawilo :]
    btw. smaczny tekst – prosze o wiececj!
    btw2. apacza nawet nie proboje atakowac, apacz juz dawno przestal sie liczyc (no chyba ze w porownaniu do jakichs mswynalazkow 😉 )

    1. Awatar Swift Geek
      Swift Geek

      LAMP to tradycja po prostu 😛 Ma się sentyment i trudno zrezygnować….

      1. Awatar gotar
        gotar

        Z LAMP tylko pierwszej literki można na poważnie używać. A – każdy administrator serwerów http wie, że przyjemny ani wydajny nie jest, możliwości też ubogie. M – zależnie od silnika, albo uboga, albo mało wydajna, nie nazywałbym nawet bazą danych, bo najwyraźniej jest niezgodna z ACID (prądowe wyłączenie komputera skutkuje często koniecznością repair table – niedopuszczalne dla bazy danych), natomiast P …no cóż. I jeśli ktoś chce argumentów, to niech od razu sobie minusuje, 'bo jemu działa i trzyma na tym stronkę z 0.1 odwiedzony na godzinę'.

        1. Awatar Maciej Piechotka
          Maciej Piechotka

          LCPP lub LCPR?

          (Linux+Cherokee+Postgres+Python/Perl, Linux+Chorokee+Postgres+Ruby)

          Choć ostatnio LCSP/R (Sqlite) robi się popularne.

          PS.
          Niestety część programów jest MySQL-only.

        2. Awatar brunorc
          brunorc

          Programów? Masz na myśli jakieś gotowce pisane w PHP?

        3. Awatar michuk
          michuk

          natomiast P …no cóż. I jeśli ktoś chce argumentów, to niech od razu sobie minusuje, ‘bo jemu działa i trzyma na tym stronkę z 0.1 odwiedzony na godzinę’.

          Też nie przepadam za PHP, ale akurat Twoja argumentacja przeciw jest całkowicie mylna. Na PHP działa Wikipedia, Flickr, Facebook, WordPress.com, wiele serwisów Yahoo! i ogólnie spora część z najbardziej popularnych stron internetowych świata. Większość z nich korzysta zresztą również z MySQL.

        4. Awatar riklaunim
          riklaunim

          Może to być dowolny praktycznie język. Podstawową kwestią jest efektywność tworzenia dobrego oprogramowania. Obecnie wielu programistom już "nie chce się" bawić z PHP i wybierają Ruby lub Pythona.

        5. Awatar Maciej Piechotka
          Maciej Piechotka

          @brunorc: Nie tylko. MythTV choćby (choć wystarczyłby SQLite).

        6. Awatar jellonek
          jellonek

          Macieju: yyy, co masz przeciwko embedded mysql w mythtv? miales to wogole w rekach? mam wrazenie ze narzekasz tylko po to by ponarzekac…

        7. Awatar Jabbas
          Jabbas

          No i z tego co mi się wydaje na serwerach produkcyjnych nie występuje zjawisko wyłączenia wtyczki z kontaktu…

        8. Awatar Alinoe
          Alinoe

          O ile się dobrze orientuje to Wikipedia jedzie na pythonie, wcześniej na perlu a nie na php

        9. Awatar Arek
          Arek

          PHP to najpopularniejszy język webowy (choć ma sporo braków). Do wymienionych aplikacji w nim napisanych dodałbym jeszcze forum PHPBB. Jeśli ktoś pisze że PHP, Apache i MySQL do niczego się nie nadają, to oznacza tylko że On sam do programowania się nie nadaje.

        10. Awatar robotor
          robotor

          Movabletype jest w perlu, amazon i slahsdot tak samo. Nie ma jedynego słusznego języka… Wikipedia jechała na perlu, teraz na php.
          Osobiście skłaniam się ku perlowi. Php jest dziwnym masonem lub tt, python i rubby są fajne, ale czasami są zbyt wymagające. No i CPAN. Każdy ma własne preferencje.

        11. Awatar gotar
          gotar

          @michuk – no działają, tak długo jak nie znajdzie się kolejna dziura. Najlepszym argumentem przeciwko PHP jest to, że ktoś musiał wymyślić safe_mode – ileż w tym było luk?

          @Jabbas – nie występuje wyjęcie wtyczki z kontaktu, ale może się zdażyć wypięcie kabelka od AoE, iSCSI, FC, rozjechanie macierzy i trylion innych awarii. A produkt mysql nie spełnia wymogów ACID. Tyle.

          @Arek – kiedyś najpopularniejszym językiem były Basic i Pascal. phpBB to jest ta aplikacja do wystawiania w sieci darmowych linków (spamu znaczy)? I ja nie piszę tego z punktu widzenia programisty, tylko administratora takich systemów – jakoś z postgresem ani perlem takich problemów nie ma. A nie, patrz, okazuje się, że z punktu widzenia programisty TEŻ piszę.

          To teraz zagadka dla wszystkich A+P – mam moduł php_oci8, nawet sobie to działało i wyciągało mi dane z Oracla. Ale minęły 2 tygodnie, w systemie nic się nie zmieniło (sprawdzone timestampy), a teraz przy oci_connect PHP CLI radośnie zapętla się na 100% CPU, odpalony z Apacha oczywiście powoduje taki sam efekt tegoż serwera. Jak mam to zdiagnozować?

        12. Awatar mini
          mini

          Zapewniam, ze "wyjecie wtyczki" zdarza sie nawet w "najlepszych" centrach danych.

        13. Awatar jellonek
          jellonek

          gotar: to blad klienta oracle, a nie php 😉
          p4612267_10201_Linux-x86-64.zip
          p4612267_10201_LINUX.zip
          do nalozenia na klienta oracle 😉
          mozna tez poradzic sobie przy uzycia LD_PRELOAD i podmiany funkcji systemowej 'time' (joi – zanim sie znalazl patch, to bylo rewelacyjne rozwiazanie 😉 )
          jeszcze inne rozwiazanie – reboot raz na tydzien maszyny – tez pomaga 😉
          Jabbas: istnieje pojecie awarii…

        14. Awatar Arek
          Arek

          @gotar – phpBB to jest ta aplikacja do wystawiania w sieci darmowych linków (spamu znaczy)?

          Człowieku 70% for internetowych stoi na tym skrypcie ! I mnóstwo z nich ma bardzo wartościowy content. Żeby daleko nie szukać elektroda.pl, trzepak.pl.

          @gotar – I ja nie piszę tego z punktu widzenia programisty, tylko administratora takich systemów – jakoś z postgresem ani perlem takich problemów nie ma. A nie, patrz, okazuje się, że z punktu widzenia programisty TEŻ piszę.

          Nie można mówić źle o języku tylko dlatego, że jest bardzo prosty, a co za tym idzie wielu początkujących programistów w nim piszę. Dla przykładu że można podam stronę ciao.de – 38 milionów odsłon miesięcznie. Jest napisana w PHP4 !

      2. Awatar Czajnik
        Czajnik

        No i może czas traktować LAMP wyłącznie w kategoriach tradycji 😉 Mnie najbardziej w LAMP-ie boli to "P jak PHP".

        Cóż, popularność PHP jest dość szczególnym zjawiskiem. Sam język jest koszmarkiem – ot, brak namespace'ów, brak API do baz danych niezależnego od silnika (wiem, wiem że są biblioteki które to ukrywają, ale czemu nie zrobić tego od razu dobrze, np. na wzór perlowego DBI? ), itp. itd.

        Popularność jest w zasadzie rezultatem łatwości deploymentu (provider wrzuca jeden moduł do Apache'a + parę libów, my FTP-ujemy nasze *.php, gra muzyka), no i niski wymagania wobec początkujących programistów. Wielu zaczynało od webmasterowania, wdrażając się w PHP przez przeklejanie kawałków kodu (sam pamiętam swoją radość z wyświetlenia w PHP pierwszej tabelki z MySQLa, ale to było 10 lat temu ;)). Ilość kodu w PHP nadającego się wyłącznie do przepisania jest przerażająca.

        1. Awatar Void
          Void

          [quote]
          Sam język jest koszmarkiem – ot, brak namespace’ów
          [/quote]
          Będą w PHP 5.3 i 6.0, są już w 5.3alpha
          [quote]
          brak API do baz danych niezależnego od silnika
          [/quote]
          Bzdura, jest PDO. Jeśli potrzebujesz wyższego poziomu abstrakcji, zapraszam do zapoznania się z Doctrine / Propel
          [quote]
          ale to było 10 lat temu
          [/quote]
          Od tego czasu w ChangeLogu dużo się zmieniło. 😉

        2. Awatar Czajnik
          Czajnik

          Nie no, oczywiście, że pewne rzeczy się zmieniają 🙂

          Namespace'y – no brawo, brawo, bo ponoć autorzy się przed nimi długo bronili.

          Co do PDO – racja, zwracam honor. Zapomniałem o tym, ale też jest dostępne dopiero od PHP 5.1, o ile dobrze pamiętam.

          Zauważ, że obie te rzeczy są/zostały poprawiane/poprawione dopiero teraz. A PHP jednak swojej popularności dorabiał się znacznie wcześniej 🙂

  2. Awatar rkowal
    rkowal

    Kolejny dowód na to, że konkurencja to piękna rzecz.

    1. Awatar Livio
      Livio

      Tylko w światku open source potrafi być szczególnie zabójcza.

      1. Awatar michuk
        michuk

        Akurat w światku open source jest ona wyjątkowo inspirująca i sprzyjająca udoskonalaniu produktów. Każdy może obejrzeć jak ten inny rozwiązał dany problem, jeśli takie rozwiązanie nam pasuje, można je skopiować i ulepszyć, bez ponoszenia kosztów na pisanie całości od nowa.

        1. Awatar trasz
          trasz

          @michuk: Chyba, ze rozwiazanie jest na licencji GPL, a nasz produkt na jakiejs innej Open Source. Wtedy nie da sie skopiowac, trzeba pisac od zera.

        2. Awatar Cobra
          Cobra

          Chyba, ze rozwiazanie jest na licencji GPL, a nasz produkt na jakiejs innej Open Source. Wtedy nie da sie skopiowac, trzeba pisac od zera.

          Wtedy trzeba zmienić licencję naszego produktu – i to jest właśnie najlepsze w GPL 😉

          Zapewniam, ze “wyjecie wtyczki” zdarza sie nawet w “najlepszych” centrach danych.

          Tak, w rzeczy samej to dowodzi, że MySQL jest evil!

          Najlepszym argumentem przeciwko PHP jest to, że ktoś musiał wymyślić safe_mode – ileż w tym było luk?

          Najlepszym argumentem przeciwko jabłkom jest to, że ktoś musiał wymyślić robaki – ileż to obrzydzenia budzi?
          Safe_mode jest i było dobrym wskaźnikiem, że twój shared hosting jest do niczego 😉

        3. Awatar markgo
          markgo

          @trasz – ojoj, straszne. A gdyby był na licencji własnościowej, to też musiałbyś pisać od nowa. W przypadku GPL możesz zmienić licencję swojego produktu. Nie ma obowiązku używania. Z punktu widzenia "programisty" i samozwańczego dewelopera, gpl w niczym nie przeszkadza – plugin od literówek na osnews używa 2 bibliotek na gpl.

  3. Awatar lolwut
    lolwut

    sqlite do dużych serwisów ? chyba tylko malutkich…

    1. Awatar Budyń
      Budyń

      A czemu nie ? Jeżeli problemem jest raczej rozmiar, niż możliwości… ostatecznie, na kombinacji Oracle + Berkley DB (w wydaniu Oracleowym) co nieco też działa..do jakiś pomocniczych zastosowań, czemu nie ?

  4. Awatar przemoc
    przemoc

    Przyznam, że nie rozumiem braku konsekwencji wśród testujących. Mam tu na myśli np. dobór wersji. Cherokee poleciał z trunka (0.10), nginx nie został użyty w ostatniej rozwojowej wersji (0.7.11 zamiast 0.7.19), a lighttpd został wybrany po prostu ostatni.

    Podobnie jest ze starszym już testem na stronie twórców, gdzie nginx trafił w przestarzałej wersji stabilnej (0.5.33).

    Ja rozumiem, że nie każdy commit zwiększa wydajność aplikacji, ale bądźmy konsekwentni.

    Porządny test powinien zawierać co najmniej:
    – Cherokee 0.10 trunk,
    – Cherokee 0.9.4,
    – Cherokee 0.5.6,
    – lighttpd 1.4.20,
    – LiteSpeed 3.3.20 Std,
    – nginx 0.7.19,
    – nginx 0.6.32,
    – nginx 0.5.37.

    Inne lekkie web serwery też byłoby miło zobaczyć. Podobnie z uwzględnieniem komercyjnych rozwiązań (np. szybkiego LiteSpeeda), choć wiąże się to naturalnie z dodatkowymi kosztami.

    LAMP is dead, LNPR FTW! (Linux+Nginx+PostgreSQL+Perl+Python+Ruby)

    1. Awatar jellonek
      jellonek

      alez ten benczmark mial pokazac wyzszosc cherokee, tak wiec nie ma sie co dziwic, ze konkurencje specjalnie "dobrano", podczas gdy cherokee "polecial z trunka".
      .
      btw. php mialo by umrzec? no bez przesady… jest najczesciej stosowanym jezykiem, przez co dlugo jeszcze nie umrze. ruby? moze jeszcze railsy? panowie – bez jaj. ile powaznych projektow sie o to opiera? perl+python sie zgodze (zarowno stare wdrozenia jak i nowe technologie), choc niektore rzeczy i tak sie nie przyjmuja (np. pylons, majace o wiele wieksze mozliwosci niz railsy, ale i sporo mniejsze grono uzytkownikow).

      1. Awatar zZzZ
        zZzZ

        Sorry, ale Pylons to sobie sam na to zapracował. Beznadziejnie marna dokumentacja, jakiś czas temu niedorobione i nieaktualne tutoriale, brak książek itd. Rails (i ostatnio Merb), a mówię tu o Rails 2.x jest środowiskiem spójnym, bardzo dobrze udokumentowanym, z backgroundem takich narzędzi jak Rake, Gems (sorry, ale Pythonowe eggs są beznadziejne), Sake, Mongrel, Capistrano. I co ważne – bardzo dobrze się rozwija jRuby (mamy Polaka w core teamie) na co zwrócił uwagę Sun i Oracle. Sun ma swój mediacast posadzony na Railsach i jRuby (http://mediacast.sun.com/).

        1. Awatar jellonek
          jellonek

          co do dokumentacji – pylons nadal lezy i kwiczy…
          btw. poddawales railsowa aplikacje wiekszemu obciazeniu?
          potestuj – jedyny ratunek dla railsow to odpalanie ich w kontenerze j2ee, pod jvm – wlasnie za sprawa jruby.
          co do eggs vs gems – w tym pierwszym poprostu masz duzo wiecej gotowych bibliotek – poprostu python jest szerzej uzywany…
          oczywiscie i tak daleko mu do cpana, ale – poza catalistem cos sie nadaje do tworzenia nowoczesnych aplikacji? maypole nie znam…

        2. Awatar zZzZ
          zZzZ

          Catalyst jest chyba jedynym sensownym Perlowym frameworkiem. Co do Ruby i obciążenia — tak sadzanie w kontenerze JVM jest świetnym rozwiązaniem. Sam stosuję w zasadzie tylko jRuby. Btw, pojawiło sie na horyzoncie ostatnio coś takiego jak Nanite – może nieźle zamieszać w środowisku 🙂 (http://brainspl.at/articles/2008/10/11/merbcamp-keynote-and-introducing-nanite)

        3. Awatar zZzZ
          zZzZ

          Tak a propos, tu jest coś ciekawego w Py: http://web2py.com/

        4. Awatar jellonek
          jellonek

          staaare 😉
          ale widze cos pozmieniali 😉

      2. Awatar przemoc
        przemoc

        Oczywiście z PHP przesadziłem, ale to tylko z przekory, bo nie przepadam za nim (żeby nie powiedzieć gorzej). To że ma największe grono użytkowników z pewnością szybko się nie zmieni.

        Z Pylonsem jakoś nie mam czasu się poznać (choć miałem to już dawno zrobić), za to jedna z jego składowych, jaką jest SQLAlchemy, wygląda świetnie. Poza tym widzę, że od pewnego czasu już i django może korzystać z jego dobrodziejstw. Framework na d ma lepszą dokumentację i jest jakby bardziej zwarty, podczas gdy Pylons to taki trochę zlepek różnych modułów, pojedynczo bardzo dobrych, więc i sumarycznie bardzo "silny", ale kuleje tu też mniejsze community AFAIK.

    2. Awatar pigmej
      pigmej

      cherokee sie bardzo dynamicznie rozwija, Community jest bardzo otwarte, no i jak napisalem nizej, tworze wlasnie polskie wsparcie Cherokee wraz z calym zapleczem 😉

    3. Awatar Krolik
      Krolik

      IMHO, H2 jest lepsze od PostgreSQL, ma wydajny tryb embedded, procedury składowane w Javie i replikację, która w przeciwieńsstwie do PostgreSQL nie jest jednym wielkim hackiem zrobionym za pomocą sznurka i taśmy klejącej.

      LAMP na sterydach (Lighthttpd, Cherokee, itp.) jest i tak zdechłym żółwiem przy LTHJ – Linux, Tomcat, H2, Java.

      1. Awatar Witek
        Witek

        A LTHJ jest zdechłym żówiem przy YAWS+mnesia 😉

      2. Awatar ak47
        ak47

        Wszystko zależy od zastosowań
        Do emebeded to duzo lepszy jest SQLite niz skomplikowane serwery.
        Procedury składowane w javie? Spojrz na postgesa java/perl/python/PLSQL co dusza zapragnie.
        Replikacji brakuje z tym sie zgodze. Ale zależy od tego co chcesz osiagnac.
        Rozsądnej master master nie ujzysz na postgresie do takich zabaw lepiej uzyc MYSQL. A co do master slave to slony jak najbardziej działa.
        Poza tym jakos nie wierzę aby baza danych w javie (H2) była szybsza w duzej skali niż to co napisali w C.
        Dodatkowo według wikipedi brak index'ów funcyjnych, częściowych brak partycjonowania.

        1. Awatar Krolik
          Krolik

          H2 istnieje kilka razy krócej niż PostgreSQL i MySQL, a ma więcej udogodnień niż MySQL i dogania PostgreSQL. Oczywiście nie ma indeksów częściowych (w MySQLu też nie ma, i co z tego) i paru innych drobiazgów, ale rozwija się szybciej niż PostgreSQL. No i lepiej integruje się z Javą, czego systemy pisane w C/C++ nie przeskoczą – zawsze warstwa pośrednicząca będzie wprowadzała większy narzut.

          Co do szybkości – ok, w takim razie co jest źle w metodyce benchmarków na stronie głównej H2? Bo jak dla mnie wyglądają sensownie, a PostgreSQL i MySQL zostały dosć mocno rozjechane i to również na prostych zapytaniach, czyli właśnie tam, gdzie system napisany w C/C++ ma teoretycznie pewną przewagę.

          Z kolei do złożonych zapytań C jest gorszym wyborem niż Java/C#/LISP, ze względu na słabą ekspresję języka i bardzo wysoki stopień skomplikowania silnika baz danych wymagany aby takie zapytania obsłuzyć. Efekt – większość podstawowych technik optymalizacji (jak chociażby index-only-scans czy perspektywy zmaterializowane) nie jest zaimplementowana w PostgreSQL i MySQL, i pewnie długo nie będzie. Zresztą, co Ci po optymalizacji silnika nawet w assemblerze, jeżeli 90% obciążenia w RDBMSach to I/0. Przyspieszysz odczyt rekordów o kilka procent, a ktoś kto zrobił system nawet w Pythonie rozjedzie Cię tym, że __nie będzie musiał__ czytać 99% rekordów, bo będzie miał lepszy optymalizator. BTW. W Javie i tak na najniższych warstwach można zejść do C przez JNI.

          Co do SQLite: SQLite to mniej więcej odpowiednik HSQLDB, poprzednika H2. HSQLDB i tak jest szybsze (zwłaszcza modyfikacje danych) i zarazem transakcyjne, bo ma inną architekturę (prawie nie dotyka dysku podczas normalnej pracy, wszystko ma w pamięci). Do małych baz wbudowanych jest idealnym rozwiązaniem.

          Replikacja w Slony to jeden wielki hack używający triggerów. Działa, ale współczuję komuś kto musi taki system utrzymywać. Brrr. Paskudztwo.
          Widać, że nikt nie myślał na poważnie w PostgreSQL o replikacji i dodali to jako "afterthought".

        2. Awatar Mors
          Mors

          >Co do szybkości – ok, w takim razie co jest źle w metodyce
          >benchmarków na stronie głównej H2?

          Dla Mysql'a i Postgresa użyli domyślnej konfiguracji z niewielkimi tylko zmianami.

          Podstawowy błąd dyskwalifikujący cały test.

        3. Awatar Królik
          Królik

          A niby jak robi to większość adminów? Jedzie na domyślnych z niewielkimi zmianami (głównie ustawienia RAMu). Dokładnie to zrobili goście od H2. Niedługo, gdy bazy będą się same optymalizowały, testy na ustawieniach domyślnych będą właśnie tymi jedynymi sensownymi. Wygra ten system, który się samoczynnie najlepiej dopasuje do określonego zastosowania.

        4. Awatar Mors
          Mors

          >A niby jak robi to większość adminów?

          Chyba pomyliłeś adminów ze zwykłymi użytkownikami, którzy przez przypadek odpalili bazę danych. Ja nie znam ani jednego, który by tak postępował.

          > Jedzie na domyślnych z >niewielkimi zmianami (głównie
          > ustawienia RAMu).

          Kolesie z H2 nawet tego nie zrobili. Amatorka pełną gębą.

        5. Awatar Królik
          Królik

          > Chyba pomyliłeś adminów ze zwykłymi użytkownikami, którzy przez przypadek odpalili bazę danych. Ja nie znam ani jednego, który by tak postępował.

          Super, szczególnie że przy pgsql i mysql to jest tak okropnie dużo rzeczy do konfigurowania, które mają wpływ na wydajność. 😉 Największy speedup powoduje właściwie jedynie wyłączenie fsync i właśnie to zrobili. I tak fsync nie zapewnia trwałości transakcji przy używaniu dysków SATA / ATA, więc w tej konf. należało go wyłączyć. Ustawienie więcej shared buffers jak daje 10% różnicy wydajności to ma się wielkie szczęście. Inne parametry mają wpływ tylko przy pewnych rzadkich scenariuszach (np. wrzucanie dużych ilości danych w batchach) i tu nie miały kompletnie znaczenia – domyślen ustawienia są dobre. A H2 zresztą też jechało na domyślnych ustawieniach.

          Przyczyny niskiej wydajności postgresa są proste, tylko wielbiciele tego systemu, zawsze najpierw szukają winy w osobach robiących benchmarki (i czepiają się pierduł mających wpływ na 5% wyniku), zamiast zauważyć pewne decyzje projektowe podjęte w PostgreSQL, które stoją w sprzeczności z wysoką wydajnością i spowalniają ten system kilkakrotnie.

          PostgreSQL używa mało wydajnego systemu blokowania (MVCC), bardzo dobrego do baz o niewielkim obciążeniu i dającego krótki czas odpowiedzi (za to chwała), podczas gdy H2 używa blokowania pesymistycznego (fakt, trochę lame że na całych tabelach, ale pewnie to szybko poprawią), które, również zastosowane w MySQLu, sprawdza się o niebo lepiej przy mocno obciążonych systemach. Przy duzych obciążeniach i tak czas odpowiedzi jest b. długi w obu podejściach, ale nie ma ponawiania tylu transakcji przy 2PL – MVCC może skończyć na przerywaniu i ponawianiu non stop tych samych transakcji i efektywne wykorzystanie silnika jest na poziomie kilku %.

          Postgresowe MVCC uniemożliwia też tzw. index-only-scans, pozwalające uzyskiwać wielorotne zyski w wydajności w wielu zapytaniach.

          No i do tego jeszcze dodamy totalnie skaszanione wykonywanie podzapytań skorelowanych (brak automaatycznego przepisywania na joiny), co czyni je użytecznymi tylko przy małej liczbie rekordów (b. małej – tysiące, o milionach zapomnij). Ot, słabiutko. Nawet MySQL począwszy od wersji 6 ma to lepiej zrobione.

        6. Awatar Mors
          Mors

          >Największy speedup powoduje właściwie jedynie wyłączenie
          >fsync i właśnie to zrobili.

          Jedynie w przypadku postgresa I tak fsync nie zapewnia trwałości transakcji przy
          > używaniu
          > dysków SATA / ATA, więc w tej konf. należało go wyłączyć.

          > Ustawienie więcej shared buffers jak daje 10% różnicy
          > wydajności to ma się wielkie szczęście.

          W skrócie: Nie.

          Ustawienia przydziału pamięci są sprawą krytyczną dla MySQL i Postgresa, zwłaszcza gdy po 'WHERE' jest coś więcej niż tylko 'id='. Ram jest jednak 'trochę' szybszy niż dysk. Podstawą jest to, żeby baza zmieściła się do pamięci o ile to możliwe.

          > A H2 zresztą też jechało na domyślnych ustawieniach.

          Jak sam zauważyłeś H2 powstał duuużo później a konfiguracja przeciętnego komputera nieco się zmieniła przez ostatnich 10 lat.

          > Przyczyny niskiej wydajności postgresa są proste, tylko
          > wielbiciele tego systemu, zawsze najpierw szukają winy w
          > osobach robiących benchmarki

          Jeszcze dwa miesiące temu też myślałem, że Postgres jest wolny. Po wydaniu każdej nowej wersji robiłem syntetyczne testy (10000 insertów, selktów i updatów) i zawsze wychodziło na to, że Mysql – którego używam od paru ładnych lat – jest szybszy.

          Ostatnio dorwałem się do serii 8.3 i jestem bardzo pozytywnie zaskoczony. Jest to o tyle ważne, że sprzedaje rozwiązania webowe i licencja ma dla mnie duże znaczenie.

          Abstrahując od licencji, szybkość Mysq'a przy złączeniu paru tabel i przy paru warunkach po WHERE jest po prostu nieakceptowalna.

          > PostgreSQL używa mało wydajnego systemu blokowania
          >(MVCC), bardzo dobrego do baz o niewielkim obciążeniu i
          > dającego krótki czas odpowiedzi (za to chwała), podczas
          > gdy H2 używa blokowania pesymistycznego (fakt, trochę
          > lame że na całych tabelach, ale pewnie to szybko
          > poprawią), które, również zastosowane w MySQLu, sprawdza
          > się o niebo lepiej przy mocno obciążonych systemach

          Jest dokładnie odwrotnie. Właśnie blokowanie całej tabeli jest 'wąskim gardłem' Mysql'a przy duży obciążeniach.

          > No i do tego jeszcze dodamy totalnie skaszanione
          > wykonywanie podzapytań skorelowanych (brak
          > automaatycznego przepisywania na joiny), co czyni je
          > użytecznymi tylko przy małej liczbie rekordów (b. małej –
          > tysiące, o milionach zapomnij).

          Ale to właśnie Mysql nie ma sensownego optymalizatora kwerend, że już o podzapytaniach nie wspomnę. W całej masie tutoriali i innych faq'u stoi jak drut, że Mysql może używać tylko jednego indeksu per tabela na kwerendę.
          Wiele razy musiałem przepisywać kod z użyciem UNION, żeby coś działało szybciej.

          W praktyce wygląda to tak, że najpierw piszę kwerendę, sprawdzam ile czasu wykonuje się pod postgresem a potem modyfikując ją, staram się "dogonić" Mysql'em.

          Podsumowując: nigdy nie biorę na poważnie testów z domyślnymi konfiguracjami, bo to po prostu niepoważne.

        7. Awatar Królik
          Królik

          Ustawienie shared buffers nie ma tak dużego znaczenia, bo OS i tak buforuje w RAMie czytane bloki dysku. Więc, chcesz czy nie intensywnie wykorzystywany Postgres potrafi użyć całą dostępną pamięć.

          Odnosnie MySQLa masz stare dane (stare tutoriale). Nowe wersje potrafią używać więcej indeksów per tabela identycznie jak PostgreSQL – tzn. w prostych przypadkach Natomiast od wersji 6 podzapytania w MySQL mają działać lepiej niż w PostgreSql, ponieważ optymalizator umie przepisywać je na złączenia. Ja bym tu się nie kłócił o to, czy MySQL lepszy, czy Postgres – oba mają bardzo biedne optymalizatory zapytań w porównaniu z komercyjną konkurencją.

          Blokowanie całej tabeli nie powoduje spadku efektywności przetwarzania, a jedynie ewentualność niewykorzystania wszystkich dostępnych zasobów – np. masz 3 dyski, ale system będzie Ci używał na złość jednego, bo transakcje bedą niepotrzebnie czekać i nie będą się zrównoleglać. Ale te 2 pozostałe dyski będą bezczynne i będą mogły w tym czasie np. obsługiwać inną bazę, albo służyc do odtwarzania filmów 😉 Przy MVCC jest znacznie gorzej. Masz 3 dyski, i oba są obciążone w 100%, ale system ma wydajność jakby chodził na jednym, bo tylko co trzecia transakcja kończy się sukcesem. Czyli nie dość, że nie wykorzystuje wszystkich zasobów, to jeszcze marnuje resztę.

          Dlatego najlepszą strategią jest 2PL z blokadami na wierszach, tak jak to robi DB/2. Małe szanse, że transakcje będą na siebie czekać, a na dodatek często da się napisać system tak, by ani jedna transakcja nie została stracona. Szkoda, że żaden RDBMS FOSS tego nie umie.

        8. Awatar Nikodem
          Nikodem

          > Ustawienie shared buffers nie ma tak dużego znaczenia, bo OS i tak
          > buforuje w RAMie czytane bloki dysku. Więc, chcesz czy nie
          > intensywnie wykorzystywany Postgres potrafi użyć całą dostępną
          > pamięć.

          Mam prośbę, po prostu to sprawdź. Nie teoretyzuj.

          > Ja bym tu się nie kłócił o to, czy MySQL lepszy, czy Postgres – oba
          > mają bardzo biedne optymalizatory zapytań w porównaniu z komercyjną
          > konkurencją.

          Używam obu i wiem, że optymalizator zapytań Postgresa jest dużo lepszy od tego w Mysql'u. Z komercyjnych baz używam tylko Oracla, który przy prostych zapytaniach jest zazwyczaj wolniejszy od Mysql'a a przy bardziej skomplikowanych na poziomie szybkości postgresa.

          W zapytaniach nie łączę więcej niż 3,4 tabele (ze względu za ułomność Mysql'a) więc o bardzo skomplikowanych zapytaniach się nie wypowiadam.

          > Blokowanie całej tabeli nie powoduje spadku efektywności
          > przetwarzania, a jedynie ewentualność niewykorzystania wszystkich
          > dostępnych zasobów

          Czyli w efekcie operacje wykonują się wolniej.

          Podsumowując:

          Mysql'a używam do projektów gdzie jest dużo danych które rzadko się zmieniają, ponieważ wtedy wiele zapytań leci z cache'u co jest po prostu szybkie.

          Postgresa używam gdy dane zmieniają się dość często i nie muszę siedzieć nad każdą bardziej skomplikowaną kwerendą, żeby działała odpowiednio szybko.

          Oracla używam, gdy jest zainstalowany u klienta.

          Jeszcze taki detal. Za jakieś dwa tygodnie zamierzam zrobić w miarę rzetelne (z mojego punktu widzenia) porównanie prędkości obu baz w oparciu o dane i zapytania pochodzące z fizycznie istniejącego serwisu internetowego. Wyniki wrzucę pod adresem morsownia.pl (jak ją najpierw zrobię).

          Śmiać mi się chce jak widzę porównania robione przez 'dzieciaki':
          "Teraz pobierzemy wget'em 100000 stronę główną i zobaczymy, która baza jest szybsza".

        9. Awatar Królik
          Królik

          I własnie dobry RDBMS powienien taki głupi benchmark tym bardziej rozwalić. IMHO przyszłośc należy do systemów strojących się samoczynnie. Stopień komplikacji kodu będzie rósł, a to tylko oznacza coraz większe pole do popisu dla języków wysokiego poziomu i powolne odstawianie na boczny tor RDBMSów pisanych w C.

        10. Awatar Mors
          Mors

          > I własnie dobry RDBMS powienien taki głupi benchmark tym
          > bardziej rozwalić.

          Przypuśćmy że testujemy typowego cms'a.

          Serwis ma 2 000 stron z czego 18 to kanały tematyczne a pozostałe to artykuły. Statystycznie ludzie wchodzą na strony z artykułami wielokrotnie częściej niż na strony kanałów. Strona główna jest niczym niczym innym jak tylko jednym z kanałów, tyle tyko że zazwyczaj jest bardziej rozbudowana.

          Wejście na dowolny artykuł powoduje zwiększenie licznika wyświetleń artykułu o jeden. W tym momencie cache MySQL'a (jeśli zapytanie dotyczyło tabeli z artykułami) idzie się 'kochać'.

          W efekcie efektywność cache'u spada i to bardzo. Ponadto praktycznie każda 'normalna' strona, oprócz ludzi odwiedzana jest przez roboty, które 'zaglądają' do starych artykułów i 'niszczą' w ten sposób cache.

          Dlatego właśnie syntetyczne testy są do dupy, bo niczego konkretnego tak na prawdę nie dowodzą.

          Pobranie wget'em 1 000 000 strony głównej jest dokładnie takim przypadkiem. Jeśli na stronie występują jakiekolwiek "najczęściej czytane/oglądane/komentowane" to bazują one na statystykach, które są uaktualniane dużo częściej niż odwiedzana jest strona główna.

          Jeśli serwis jest interesujący, to 'klikalność' głównej jest na poziomie 10%-15% co czyni cache jeszcze mniej użytecznym.

          Jedynym sensownym sposobem testowania, jest "zebranie" kwerend np. z całego dnia i zapuszczenie testu. Wgrywa ta baza jest szybsza.

          Tu pewna ciekawostka. Dopóki testowałem wszystko osobno, tzn. z osobna strony z artykułami, kanały, główną itd. mysql zazwyczaj był szybszy (przed wersją 8.3 postgresa).
          W momencie gdy zacząłem sprawdzać 'kwerendy z życia wzięte' okazało się, że postgres jest ok 20% szybszy.

          I tak było za każdym razem, z każdym cms'em.

          Innym podstawowym błędem syntetycznych testów jest używanie konstrukcji typu:

          SELECT u.imie as name, count(*) as count FROM zamowienia AS z
          JOIN users AS u ON z.id_uzytkownika = u.id
          JOIN products AS p ON z.id_produktu = p.id
          WHERE p.nazwa = 'cośtam' GROUP BY z.id_uzytkownika, u.imie

          W prawdziwym świecie na końcu występuje zazwyczaj ORDER BY i LIMIT OFFSET, no chyba że akurat chcemy coś zrobić ze wszystkimi wynikami, które zwraca kwerenda.

          Jeszcze tylko wspomnę, że mysql nie wspiera LIMIT OFFSET w podzapytaniach, co w przypadku jeśli wyniki muszą być sortowane a używamy paru tabel, spowalnia wszystko wielokrotnie.

          > IMHO przyszłośc należy do systemów strojących się
          > samoczynnie.

          Można to spokojnie zrealizować zewnętrznym programem, ale jakoś nikt się kwapi żeby go napisać, z oczywistych dla mnie powodów. Każdy program korzystający z bazy jest inny i inne będą ustawienia optymalne dla niego.

          Dla mysql'a raz ważniejszy będzie 'bufor do sortowania' a raz bufor dla 'normalnego' cachu w zależności od aplikacji, która jest na drugim końcu bazy.

          To właśnie programista powinien wiedzieć, co najlepiej zmienić w ustawieniach bazy, żeby 'było szybko'. Nikt inny za niego tego nie zrobi.

          > Stopień komplikacji kodu będzie rósł, a to tylko oznacza
          > coraz większe pole do popisu dla języków wysokiego
          > poziomu i powolne odstawianie na boczny tor RDBMSów
          > pisanych w C.

          Pożyjemy zobaczymy.

  5. Awatar DerDevil
    DerDevil

    W Końcu czuje się oświecony bo sądziłem że apache to jedyny program tego typu no ale w końcu zostałem wyprowadzony z błędu 🙂

    1. Awatar Moarc
      Moarc

      A MS IIS to co niby? 😀

  6. Awatar frtjhrthjrtj
    frtjhrthjrtj

    jest gdzies po polsku opis jak zwiekszyc wydajnosc serwisu? powiedzmy 2-3 serwery.

  7. Awatar AvantaR
    AvantaR

    Brak obslugi .htaccess? To ja podziekuje :S

    1. Awatar Zahariash
      Zahariash

      Nie jest po prostu potrzebny. Przeciez htaccess to proteza…

    2. Awatar SlashBeast
      SlashBeast

      .htaccess to wymysł apache. Mozna to co daje htaccess zrealizowac na wiele różnych sposobów.

      1. Awatar moloh
        moloh

        Jak w takim razie można tą funkcjonalność zrealizować z użyciem innych serwerów, tak aby użytkownik (nie administrator) miał dodatkową możliwość kontroli nad serwowanymi stronami?

        1. Awatar SlashBeast
          SlashBeast

          W przypadku libhttpd mozna dac include_shell i include, wystarczy napisac bardzo prosty skrypt ktory bedzie filtrowal 'htaccess' i dodawal z niego np. rewrite.

        2. Awatar riklaunim
          riklaunim

          Nie zawsze oprogramowanie jest tworzone do low-endowych zastosowań jak zwykłe hostingi.

          W Nginxie można ustawić np. dołączenie wewnętrznego pliku konfiguracyjnego z katalogu użytkownika itd. W Cherokee konfiguracja to już wyższy poziom jazdy (1. ma panel, 2. konfiguracja jest skryptem Pythona czy jakoś tak :))

        3. Awatar pigmej
          pigmej

          riklaunim: nie zgodze sie z toba. Przeniesienie ustawien do cherokee to chwila a potem zarzadzanie tym jest 10 razy przyjemniejsze 🙂

        4. Awatar moloh
          moloh

          @SlashBeast
          @riklaunim

          Będzie działać bez restartu serwera, czy innej operacji wymagającej praw administratora?

  8. Awatar pigmej
    pigmej

    Ze swojej strony moge powiedziec ze pracuje wlasnie nad polskim wsparciem Cherokee, oczywiscie calosc jest za pozwoleniem i wiedza alvaro ( autor Cheroke ) 🙂

    1. Awatar riklaunim
      riklaunim

      Coś już gotowe? Bo na ToDo mam tłumaczenie dokumentacji Cherokee / opisu najnowszej wersji.

      1. Awatar pigmej
        pigmej

        riklaunim: mam przetlumaczone 95% dokumentacji i calej strony cherokee-project. Kwestia kilku dni na odpalenie.

        Skrypty wszystko gotowe. Musze tylko spiac wszystko w calosc.

        Mowiac inaczej riklaunim, chyba nie musisz tlumaczyc ;-), ewentyalnie napisz do mnie na jb/gg i sie zgadamy czego brakuje.

  9. Awatar pigmej
    pigmej

    a no i jedna rzecz ktora cherokee deklasuje innych… latwosc aktualizacji.

    Sciagasz nowa wersje
    uruchamiasz parser configa ( jesli potrzebny )
    instalujesz nowa wersje i juz

    cala powyzsza operacje mozemy wykonac na wlaczonej instancji cherokee ( serwer normalnie odpowiada itd podczas calego procesu upgrade )

    1. Awatar Witek
      Witek

      O nie wiedziałem. YAWS (jak prawie każda sieciowa aplikacja Erlangowa) też to potrafi 🙂

  10. Awatar pigmej
    pigmej

    a no i jeszcze jedno, osoby chetne do wspolpracy prosze o kontakt ( strona juz stoi )

    1. Awatar przecietny
      przecietny

      jakiś adres?

      1. Awatar pigmej
        pigmej

        nie tak trudno go "zgadnac"

    2. Awatar tenji
      tenji

      serwer widać, strony niema

      1. Awatar pigmej
        pigmej

        na dniach będzie 🙂

        Pisałem, że "Tworze" jest już prawie gotowa. Myślę nad wdrożeniem wiki jakiejś.

        Dokumentacja jest prawie cała przetłumaczona.

        Chętnych do współpracy proszę o kontakt.

        ( me na_czyms pigmej.eu – wiadomo co zrobic chyba :> )

        1. Awatar pigmej
          pigmej

          aha adresy sa trzy, jeszcze nie wiem ktory wybiore 🙂

        2. Awatar przecietny
          przecietny

          i co z tą stroną? dalej pusto.

  11. Awatar pigmej
    pigmej

    a no i Alvaro Lopez Ortega nie jest jednym z programistow. Jest on glownym autorem/zalozycielem/wlascicielem Cherokee-Project jak i rowniez firmy octality ktora zajmuje sie miedzy innymi wdrazaniem cherokee

  12. Awatar radekk
    radekk

    Ten serwer na obrazku to Sun Fire 15K i ten komputer może obsługiwać do 72 procesorów (a w pewnej specyficznej konfiguracji do 114). Tak więc dobrze by było poprawić błędny wpis. 🙂

    1. Awatar riklaunim
      riklaunim

      Dane podane na blogu 🙂

  13. Awatar mgmg
    mgmg

    Ten serwer jest piękny.

    1. Awatar pigmej
      pigmej

      Dokładnie 😉

  14. Awatar Witek
    Witek

    tylko 20 równoczesnów klientów? Sprawdźcie dla 500, albo 5000. A potem porównajcie z YAWS… 🙂

  15. Awatar dffd
    dffd

    Z początku myślałem że Apache Foundation zostało pozwane przez jakąś świnkę ze światka clozet source, a tutaj taka miła niespodzianka.

  16. Awatar Freida Riglos
    Freida Riglos

    This page appears to recieve a good ammount of visitors. How do you promote it? It gives a nice unique spin on things. I guess having something useful or substantial to give info on is the most important factor.

  17. Awatar Oswaldo Merical
    Oswaldo Merical

    big logbook you corner

  18. Awatar Darwin Mclellan
    Darwin Mclellan

    Its like you read my mind! You appear to know so much about this, like you wrote the book in it or something. I think that you can do with some pics to drive the message home a bit, but other than that, this is excellent blog. A great read. I’ll certainly be back.

  19. Awatar Ferry pour la Grece
    Ferry pour la Grece

    Thanks a million. It was interesting knowing

  20. Awatar Perry Scherr
    Perry Scherr

    humongous register you retain

  21. Awatar Car Insurance Guru
    Car Insurance Guru

    While I tend to side with the post I strongly believe that car insurance has become too complex for the average car insurance policy holder. Just like any serious purchase however you must perform due diligence and research the insurance companies before you purchase.

  22. Awatar Katharyn Klaver
    Katharyn Klaver

    Howdy! This is kind of off topic but I need some guidance from an established blog. Is it very hard to set up your own blog? I’m not very techincal but I can figure things out pretty quick. I’m thinking about making my own but I’m not sure where to begin. Do you have any points or suggestions? Many thanks

  23. Awatar HCG Drops
    HCG Drops

    I believe that avoiding prepared foods will be the first step in order to lose weight. They can taste great, but highly processed foods include very little nutritional value, making you feed on more in order to have enough power to get over the day. In case you are constantly feeding on these foods, switching to whole grains and other complex carbohydrates will assist you to have more vigor while consuming less. Great blog post.

  24. Awatar Diabetes Medicare Coverage
    Diabetes Medicare Coverage

    Thanks for the article. Can you please send me few more ideas about this, I am definitely a fan of your blog. Thanks, Diabetes Medicare Coverage

  25. Awatar College Tutor
    College Tutor

    Good post. I be taught something more difficult on totally different blogs everyday. It would at all times be stimulating to learn content from different writers and apply somewhat one thing from their store. I’d favor to make use of some with the content material on my blog whether you don’t mind. Natually I’ll provide you with a hyperlink in your web blog. Thanks for sharing.

  26. Awatar Wasserbetten Test
    Wasserbetten Test

    That is exactly how i feel about this.

  27. Awatar movies
    movies

    Wanna watch all the new and old movies check out my site

  28. Awatar Coupons Coupons
    Coupons Coupons

    There is noticeably a bundle to realize about this. I assume you made some nice points in features also.

  29. Awatar City Clerk's Office, Chesapeake, VA
    City Clerk’s Office, Chesapeake, VA

    I am looking forward to diggin more of your great posts.

  30. Awatar vakantiehuis beieren
    vakantiehuis beieren

    It’s always fun to see actors such as Franco and Portman step down from their Oscar roles and just have fun.

  31. Awatar actualites
    actualites

    Incredible Report.appreciate your sharing display..a good deal more wait around .. ;)…

  32. Awatar actualites
    actualites

    Good piece of content! I’ll add your email proper currently wth the feedreader computer software!…

  33. Awatar praca nieruchomości poznań
    praca nieruchomości poznań

    Excellent journal! I really like how it is smooth on my eyes and also the information are well scripted. I am wondering how I might be informed whenever a newborn mail has been successful. I have signed to your rss feed which must perform the trick! By!

  34. Awatar news
    news

    I grabbed a person’s gain access to fascinating would I’ve integrated a good Trackback for it attached to this internet site :)……

  35. Awatar news
    news

    Fantastic Post.nice one for portion..extra hang on .. ;)…

  36. Awatar stickman games
    stickman games

    It ain’t no sin for those crack just a few laws at times, just lengthy as you do not break any.

  37. Awatar colon cleanser
    colon cleanser

    Extremely rated post. I learn one thing completely new on totally different blogs everyday. Deciding on one . stimulating to learn the paper content material from other writers and study a bit one thing from their website. I’d like to use certain of this content on my weblog you’re mind. Natually I’ll give a link right here we are at your web-site. Recognize your sharing.

  38. Awatar vakantiehuis zwarte woud
    vakantiehuis zwarte woud

    The German Techno music, however, was lusciously vibrant in its supporting role of helping the action along, much like RUN LOLA RUN (1998) and even some suggestive mood music even from such movies as NOMADS (1986) or the hard to find WAVELENGTH (1983).

  39. Awatar Errol Verrue
    Errol Verrue

    Great thanks

  40. Awatar colon cleanser
    colon cleanser

    Howdy intelligent points.. now why did not i think of those? Off topic barely, is that this web page pattern merely from an abnormal installation or else do you utilize a custom-made template. I take advantage of a webpage i’m searching for to enhance and properly the visuals is likely one of the key things to complete on my list.

  41. Awatar Guy Eichorn
    Guy Eichorn

    I am looking forward to diggin more of your quality articles.

  42. Awatar coach outlet
    coach outlet

    Hey would you mind stating which blog platform you’re using? I’m looking to start my own blog soon but I’m having a hard time selecting between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design seems different then most blogs and I’m looking for something unique. P.S Sorry for getting off-topic but I had to ask!coach outlet online

  43. Awatar Wasserbetten
    Wasserbetten

    I’m using search engines reader in addition.

  44. Awatar Wilmington NC Home Remodeling
    Wilmington NC Home Remodeling

    Hey – nice blog, simply trying round some blogs, appears a fairly nice platform You Are using. I’m presently using Drupal for just a few of my websites but seeking to change one among them over to a platform very much the same to yours as a trial run. Something specifically you would suggest about it?

  45. Awatar Hassan Sclafani
    Hassan Sclafani

    Cool

  46. Awatar Best Rifle Scopes
    Best Rifle Scopes

    An impressive share, I just given this onto a colleague who was doing slightly analysis on this. And he actually purchased me breakfast as a result of I found it for him.. smile. So let me reword that: Thnx for the treat! However yeah Thnkx for spending the time to debate this, I feel strongly about it and love reading extra on this topic. If attainable, as you become expertise, would you mind updating your blog with more particulars? It’s extremely useful for me. Big thumb up for this blog submit!

  47. Awatar colon cleanse review
    colon cleanse review

    Many thanks for posting this, It?s simply what I used to be researching for on bing. I?d quite a bit relatively hear opinions from a person, slightly than a company internet web page, that?s why I like blogs so significantly. Many thanks!

  48. Awatar Lindsay U. Yu
    Lindsay U. Yu

    Useful

  49. Awatar Andrew Pelt
    Andrew Pelt

    Jesus is God in the flesh he loves Hm clothing

  50. Awatar driving instructor training uk
    driving instructor training uk

    How do you fancy being your personal boss, picking your individual working hours and meeting new people each day? Would you like to make great money and have the satisfaction of helping persons learn about a thing new? It really is effortless to find out why a great number of men and women from every walk of life need to be a driving instructor.

  51. Awatar Goji Pflanze
    Goji Pflanze

    I’ve been looking to post about something like this on my web site and you provided an idea. Regards.

  52. Awatar gender predictor quiz
    gender predictor quiz

    Cool

  53. Awatar artificial insemination
    artificial insemination

    Great thanks

  54. Awatar Christening gifts
    Christening gifts

    Great thanks

  55. Awatar colon cleanse
    colon cleanse

    Congratulations on possessing certainly one of probably the most subtle blogs Ive arrive throughout in some time! Its just wonderful how much you’ll be able to consider away from a thing basically merely due to how visually beautiful it is. Youve place collectively a great weblog website house –nice graphics, motion pictures, layout. That is definitely a must-see web site!

  56. Awatar colon cleanse review
    colon cleanse review

    I do know this isn’t precisely on subject, but i’ve a website online using the same program as well and i am getting troubles with my comments displaying. is there a setting i am lacking? it’s potential it’s possible you’ll help me out? thanx.

  57. Awatar Rae Delia
    Rae Delia

    Having just been searching forinformative websites for the research project I’ve been working on when I happened to find yours. Thanks for this helpful material! — Rae Delia

  58. Awatar Ouida Ridgnal
    Ouida Ridgnal

    Very efficiently written information. It will likely be useful to anyone who usess it, including myself. Sustain the good work – for positive i will check out extra posts.

  59. Awatar COM Domains
    COM Domains

    Buy a domain hosting and web page internet hosting for much less than GoDaddy, Network Answers, Register.com or OrderYourName.com. Your obtain for all things domain names related.Domain name registration for personal or company use, transfer or sign-up your domain name hosting for low cost domain namess registrations.

  60. Awatar Transport Osób Sopot
    Transport Osób Sopot

    Great stuff mate! Thx@!

  61. Awatar colon cleanse reviews
    colon cleanse reviews

    I wished to thanks for this nice read!! I positively enjoying each little little bit of it I’ve you bookmarked to check out new stuff you submit

  62. Awatar Autokary
    Autokary

    Wow! what an idea ! What a concept ! Beautiful .. Amazing

  63. Awatar Jung Lampinen
    Jung Lampinen

    I’m impressed, I must say. Really hardly ever do I encounter a blog that’s each educative and entertaining, and let me inform you, you will have hit the nail on the head. Your concept is excellent; the difficulty is one thing that not enough people are talking intelligently about. I am very blissful that I stumbled across this in my search for one thing referring to this.

  64. Awatar colon cleanse
    colon cleanse

    Very effectively written information. It will be useful to anyone who usess it, including myself. Keep up the nice work – for positive i’ll take a look at more posts.

  65. Awatar Sheila Plonka
    Sheila Plonka

    I have noticed that in cameras, exceptional devices help to focus automatically. Those sensors involving some video cameras change in contrast, while others utilize a beam involving infra-red (IR) light, specially in low light. Higher spec cameras often use a blend of both systems and might have Face Priority AF where the dslr camera can ‘See’ any face as you concentrate only in that. Many thanks for sharing your opinions on this website.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *