Sun Microsystems opublikował wyniki testu bazy PostgreSQL przeprowadzonego na sprzęcie UltraSparc Niagara, które pokazały, że wydajność tego rozwiązania Open Source jest zbliżona do rezultatów jakie uzyskują rozwiązania high-end w tej kategorii.
Pomiar wydajności pokazał, że wyniki są około 12% niższe niż dla systemu bazodanowego Oracle testowanego na sprzęcie HP Itanium w porównywalnej cenie. Josh Berkus, jeden z głównych programistów projektu komentując powiedział, że „to dobry dzień dla open source”.

Co prawda dodał też, że wynik nie jest miarodajny w sensie wydajności samych baz, ale porównuje wydajność całego rozwiązania przy porównywalnych kosztach. Procedura testowa była oparta na benchmarku SpecjAppServer 2004, który mierzy wydajność serwera aplikacji Java w kombinacji z bazą danych i platformą sprzetową.
Oracle i Oracle Application Server (HP Itanium-based Integrity) uzyskał wynik mierzony w JOPS (Java application server Operations Per Second) w wysokości 874 operacji na sekundę w porównaniu do 778 operacji na PostgreSQL 8.2/Java Application Server na Sun UltraSparc.
Na swoim blogu Berkus przyznał, że PostgreSQL miał reputację dość powolnej bazy danych, ale jak pokazały testy – odpowiednio dostrojony może być nie tylko tak szybki jak MySQL, ale nawet niemal tak szybki jak Oracle. Wspomniał też, że ani MySQL ani PostgreSQL nie były do tej pory tematem porównań z systemami komercyjnymi gdyż wymaga to sporych nakładów finansowych. Rzeczywiste porównanie wydajności baz danych wymagałoby prawdopodobnie użycia testów TPC – dodał. Benchmark SPEC porównuje więcej niż tylko samą bazę danych, ale obecnie jest to najbardziej bezpośrednie dostępne porównanie.

W zasadzie możnaby w tym miejscu puścić tego newsa… i pozwolić wyszaleć się czytelnikom serwisu w komentarzach, 😉 gdyby nie kilka szczegółów – z których część nie jest wcale drobna.

Dobrze, że Pan Berkus napisał na swoim blogu, że użycie testów TPC „PRAWDOPODOBNIE” mogłoby pozwolić na porównanie rzeczywistej wydajności. Tak się jednak składa, że TPC jest tak samo jak SPEC – jest benchmarkiem, który uzależniony jest od sprzętu/systemu operacyjnego. Gdyby było inaczej istnienie wskaźnika „TPC-C Results by Price/Performance” nie miałoby większego sensu (analogicznie jak TOPS – Total Operations Per Second oraz price/TOPS w przypadku SpecjAppServer 2002). Nie bedziemy jednak dywagowyać tu nad TPC bo bazy open source nie figurują jak na razie w tych zestawieniach… Zresztą benchmarki TPC to dobry temat na oddzielny felieton. Kto kiedykolwiek analizował te zestawienia szybko dojdzie do bardzo interesujących wniosków, 😉

Gdyby Pan Berkus zadał sobie trochę trudu dotarłby do informacji, że MySQL 5 też był poddany testowi SPECjAppServer2004. Na szczęście z pomocą przychodzi nam strona domowa MySQL’a gdzie w artykule pod wiele mówiącym tytułem „MySQL pomaga ustanowić nowy rekord w wydajności Java Appliaction Server” dowiadujemy się o tym, że wspomniana konfiguracja uzyskuje zbliżoną wydajność do systemów 8x droższych. Ciekawe jest to o tyle, ze nie dość że SPEC nie podaje kosztów sprzętu/licencji, etc. to na dodatek tłumaczy następująco swoją decyzję: SPEC podawało współczynnik „price/performance” w ramach eksperymentu. Obecnie SPEC OSSC (Open Systems Steering Committee) rozważyło za i przeciw i zdecydowało, że nie będzie umieszczać tego wskaźnika w przyszłych benchmarkach…??? Czyżby informacja o +/- 5-ciu JOPS’ach była istotniejsza niż informacja o +/- 300 tys. $USD?

Kilka wyników z zestawienia SPECjAppServer2004 uzyskanych na zbliżonych konfiguracjach sprzętowych.

Oracle Application Server 10g Release 10.1.3.2 – Java Edition on HP-UX rx2660
Oracle Application Server 10g Release 10.1.3.2 – Java Edition on HP-UX rx2660 cluster
Sun Java (TM) Systems Application Server 9.0 Platform Edition on SunFire X4100 Cluster with MySQL 5
Sun Java (TM) Systems Application Server 9.0 Platform Edition with Postgres 8.2 Sun Java (TM) System Application Server 9.1 with Postgres 8.2
Software Products Oracle Application Server 10g Release 10.1.3.2 – Java Edition
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.05) 32 bit
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.05) 64 bit
Oracle JDBC Driver 10.2.0.2 (Thin)
Oracle Database 10g Enterprise Edition Release 10.2.0.2 with patch 5339853
Oracle Application Server 10g Release 10.1.3.2 – Java Edition
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.05) 32 bit
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.05) 64 bit
Oracle JDBC Driver 10.2.0.2 (Thin)
Oracle Database 10g Enterprise Edition Release 10.2.0.2 with patch 5339853
Sun Java (TM) Systems Application Server 9.0 Platform Edition Update Release 1 Patch 3
Jakarta Tomcat 5.5.16
Java (TM) 2 Platform Standard Edition Development Kit 5.0 Update 6 32-bit
Connector/J 5.0.5
MySQL 5.0.27 64-bit
Sun Java (TM) Systems Application Server 9.0 Platform Edition Update Release 1 Patch 3
Jakarta Tomcat 5.5.16
Java (TM) 2 Platform Standard Edition Development Kit 6.0 32-bit
PostgreSQL JDBC TYPE IV 8.2
PostgreSQL 8.2.4
Sun Java (TM) System Application Server 9.1
Jakarta Tomcat 5.5.16
Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 32-bit
PostgreSQL JDBC TYPE IV 8.2
PostgreSQL 8.2.4
SPECjAppServer®2004 Result
JOPS@Standard
802.61 1,578.16 720.56 778.14 813.73
J2EE Server CPUs: 4 cores, 2 chips, 2 cores/chip 8 cores, 4 chips, 2 cores/chip 12 cores, 6 chips (2 core/chip) 12 cores, 6 chips (2 cores/chip) 8 cores, 4 chips (2 cores/chip)
DB Server CPUs: 4 cores, 2 chips, 2 cores/chip 8 cores, 4 chips, 2 cores/chip 4 cores, 2 chips (2 cores/chip) 8 cores, 1 chips (8 cores/chip) 8 cores, 1 chips (8 cores/chip)

Dla zainteresowanych: metodologia pomiarów SPECjAppServer2002 User’s Guide

Przeglądając strony MySQL’a można trafić na lepsze „kwiatki”. MySQL pomaga ustanowić nowy rekord prędkości i wskaźnika cena/wydajność w niezaleznych benchmarkach. Podając osiągnięcia MySQL ($82.74 US$/TOPS) pewnie umknęło im przez niedopatrzenie, że są lepsi w tej kategorii. Najwyraźniej tak wygląda kampania „P
oznaj fakty” w wydaniu MySQL’a.

Przewertowanie kilkudziesieciu artykułów, zestawień, testów, etc. przywodzi mi na myśl tylko jedno skojarzenie. Benchmarki SPEC i TPC są niczym innym w stosunku do baz danych jak kiedyś stary poczciwy MIPS (Mistake Information about Processor Speed – czyli myląca informacja nt prędkości procesora) nie mylić z Million Instruction Per Second (milion instrukcji na sekundę) w przypadku CPU.
Czyżby tak trudno było w dzisiejszych czasach stworzyć kilka referencyjnych platform sprzętowych/systemowych i na nich testować wydajność kolejnych wersji serwerów aplikacyjnych i baz danych?
Archiwalny news dodany przez użytkownika: ptad.
Kliknij tutaj by zobaczyć archiwalne komentarze.

Oznaczone jako → 
Share →