![]() |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
scale faktor | PostgreSQL tpsB |
---|---|
105 | 83.7, 44.56, 53.52 |
100 | 96.8, 53.52, 56.69, 100.00 |
101 | 94.44 |
Konfigurace databáze:
shared_buffers = 1000MB work_mem = 1024 maintenance_work_mem = 100MB wal_buffers = 10MB commit_delay = 100 commit_siblings = 2 checkpoint_segments = 25 checkpoint_timeout = 1h
Ačkoliv MySQL v minulém a předminulém testu propadlo, tak si zde vedlo mimořádně dobře. Je sice pomalé ale velmi dobře škálovatelné. Škálovatelnost InnoDB enginu mne mile překvapila, protože podával stabilní výkon prakticky nezávislý na objemu zpracovávaných dat.
scale faktor | MySQL tpsB |
---|---|
90 | 91.83 88 89.76 96.11 |
92 | 97.93 |
94 | 84.0 92.52 103 |
97 | 104.47 |
101 | 99.83 120 |
107 | 82.0 99.17 120 |
110 | 105.57 96.05 93.23 111.87 |
Konfigurace databáze:
innodb_additional_mem_pool_size=2M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=2M innodb_buffer_pool_size=1000M innodb_log_file_size=46M innodb_thread_concurrency=8
Oracle jsem moc netestoval. Stala se mi totiž jedna nečekaná příhoda, která ve světě Oracle zase není tak zřídkavá.
Vzhledem k tomu, že Oracle verze XE je dost stará a léta neaktualizovaná 10.2.0.1, jsem se rozhodl provést aktualizaci na novější Oracle z řady 10. Očekával jsem totiž možné zlepšení výkonu kromě ostatních maličkostí jako oprava bezpečnostních chyb a novější verze administrativního rozhraní.
Aktualizace byla provedena úspěšně, ale namísto očekávaného zlepšení výkonu se výkon propadl. Ačkoliv TPC-B se scale faktorem 90 mi vrátilo u staré verze Oracle 82 tpsB, u nové verze jsem se nedostal mírně přes 50.
Systém neswapoval, ale chtělo by to pravděpodobně více paměti pro SGA, protože výrazně nabobtnal data dictionary. Teoreticky by to nemělo vadit, protože TPC-B test využíval jen 4 tabulky a tak nebyl důvod načítat nepoužívané objekty do paměti. Prakticky to ovšem dopadlo přesně naopak.
Prověřil jsem nejdůležitější výkonové ukazatele databáze a všechny ukazovaly běžné hodnoty a nic nenasvědčovalo tomu že by měla databáze důvod běžet abnormálně pomalu. Po asi půlhodinovém výzkumu se nepodařilo odhalit příčinu a tak jsem šel testovat další databázi.
scale faktor | Oracle XE tpsB |
---|---|
90 | 82.0 51.27 52.06 |
Konfigurace databáze:
sga target 1GB
S DB2 nebyl co se týče testování větší problém. Ponechal jsem automatické nastavení velikosti bufferů v závislosti na zátěži a volné operační paměti a vypnul archive log režim.
Automatický správce paměti se snaží nastavit paměť využívanou databází tak, aby systém nemusel swapovat (to jest swapfile by měl být ideálně prázdný). Problém s touto strategií je na windows, které velmi rádi swapují i když vůbec nemusí a mají gigabajty volné paměti. Bylo proto nutné pozavírat co nejvíce aplikací aby automatický správce paměti přidělil databázi cca 1 GB RAM.
scale faktor | DB2 tps |
---|---|
134 | 135.74 |
Konfigurace databáze:
Paměť s vlastním laděním (SELF_TUNING_MEM) = ON Velikost sdílené paměti databáze (4kB)(DATABASE_MEMORY) = AUTOMATIC(30944) Velikost souboru žurnálu (4kB) (LOGFILSIZ) = 4096 Počet primárních souborů žurnálu (LOGPRIMARY) = 10 Počet sekundárních souborů žurnálu (LOGSECOND) = 246
U Apache Derby nepoužíváme pro test stored proceduru, protože Derby umí používat jen stored procedury v Jave a nikoliv v SQL/PSM či podobném jazyku.
scale faktor | Derby tps |
---|---|
20 | 347.42 |
30 | 115.82 |
40 | 62.42 |
45 | 61.13 |
50 | 60.38 |
55 | 55.37 |
56 | 56.47 |
57 | 87.17 |
60 | 66.24 |
63 | 62.35 |
Se stabilní Derby konfigurací je docela problém. Ačkoliv jsme přidělili 1 GB RAM JVM ve které běží tak pokud použijeme cache size větší než 35 tisíc stránek (experimentálně zjištěno) tak dochází k pádu aplikace na chybu Out of memory. 35 tisíc stránek přitom zabírá jen 280MB paměti. Těžko říci zda za pád mohou memory leaky v Derby nebo příliš pomalá garbage collection v JVM.
Konfigurace databáze:
java -Xmx980M -Xms500M System.setProperty("derby.storage.pageSize", "8192"); System.setProperty("derby.storage.pageCacheSize", "35000");
Databáze | tpsB |
---|---|
PostgreSQL | 100 |
IBM DB2 | 135.74 |
MySQL | 110 |
Apache Derby | 62.35 |
Oracle XE | 82 |
Databáze Derby, ačkoliv prodávala v minulém testu dobrý výkon, měla dnes problémy se správou paměti. Je vidět, že není optimalizovaná pro zpracovávání většího množství dat. Překvapením bylo MySQL, které ukázalo vynikající škálovatelnost i když v minulém testu dopadlo špatně. PostgreSQL podal sice výkon ve špičce podobný MySQL, ale nebyl jej schopen trvale udržet. Databázi Oracle se stala díky instalaci patchů nehoda, kterou se mi nepodařilo opravit především díky tradiční značně složité administraci Oraclu. Podle očekávání vyhrála DB2, která byla výborná i v minulém testu.
|
||||
KOMENTARZE | ||||
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
1. |
Pacman linux Download: 5093x |
2. |
FreeBSD Download: 9307x |
3. |
PCLinuxOS-2010 Download: 8795x |
4. |
alcolix Download: 11188x |
5. |
Onebase Linux Download: 9908x |
6. |
Novell Linux Desktop Download: 0x |
7. |
KateOS Download: 6458x |
1. |
xinetd Download: 2619x |
2. |
RDGS Download: 937x |
3. |
spkg Download: 5243x |
4. |
LinPacker Download: 10385x |
5. |
VFU File Manager Download: 3394x |
6. |
LeftHand Mała Księgowość Download: 7482x |
7. |
MISU pyFotoResize Download: 3086x |
8. |
Lefthand CRM Download: 3755x |
9. |
MetadataExtractor Download: 0x |
10. |
RCP100 Download: 3371x |
11. |
Predaj softveru Download: 0x |
12. |
MSH Free Autoresponder Download: 0x |