Mongo replikacja – testy
Posted by noose on 21/04/2010
1 comment
W końcu się zabrałem za napisanie notki na blogu
Jakiś czas temu potrzebowaliśmy zrobić testy wydajnościowe mongodb. Muszę powiedzieć, że wyniki wyszły zadowalająco
Dane które były wrzucane do bazy miały ok 76kB / wiersz. Dla wyjaśnienia:
1 połączenie to 100 000 operacji (jakie i w jakiej ilości – opisane jest w drugiej tabeli). Wszystkie operacje były wykonywane po kluczach głównych lub innych zdefiniowanych.
Mongo - czasy
| Ilość równoległych połączeń | Czas [sek] (SSD) | Czas [sek] (SAS) | Czas na połączenie [sek] (SSD) | Czas na połączenie [sek] (SAS) |
|---|---|---|---|---|
| 1 | 2,05 | 2,76 | 2,05 | 2,76 |
| 100 | 101,42 | 133,46 | 1,01 | 1,34 |
| 200 | 213,28 | 293,36 | 1,07 | 1,47 |
| 300 | 324,51 | 440,45 | 1,08 | 1,47 |
| 400 | 444,32 | 621,17 | 1,11 | 1,55 |
| 500 | 559,72 | 788,71 | 1,12 | 1,58 |
| 600 | 729,28 | 1 040,53 | 1,22 | 1,73 |
| 700 | 851,77 | 1 237,30 | 1,22 | 1,77 |
| 800 | 1 024,33 | 1 462,43 | 1,28 | 1,83 |
| 900 | 1 146,72 | 1 732,19 | 1,27 | 1,93 |
| 1000 | 1 306,4 | 1 998,83 | 1,31 | 2,00 |
Mongo - ilość operacji w jednym połączeniu
| Typ | % | Ilość |
|---|---|---|
| Insert (+status) | 6,5% | 6 500 |
| Update (+status) | 3% | 3 000 |
| Delete (+status) | 3% | 3 000 |
| Select | 87,5% | 87 500 |
| Razem | 100% | 100 000 |
Maszyny na których przeprowadzane były testy (SSD i SAS miały identyczne konfiguracje jako master i slave)
- SSD
-
- Dual Quad Core
- 12GB ram
- 4x SSD 50GB (RAID 10)
- 1gbps LAN
- SAS
-
- Dual Quad Core
- 12GB ram
- 6x SSD 143GB 10k rpm (RAID 10)
- 1gbps LAN
- Klient
-
- Dual Quad Core
- 12GB ram
- 6x SSD 143GB 10k rpm (RAID 10)
- 1gbps LAN
I jeszcze dwa wykresiki (wieczorem zrobię je jeszcze raz – będą lepiej wyglądać):
Jak widać wydajność rośnie liniowo
Dodatkowo na master i slave są identyczne dane (jest chyba sekundowy lag), ale jest to zasługą tego, że inserty i reszta lecą z sprawdzaniem statusu. Zapuściłem jeszcze test dla 35 000 równoległych połączeń – baza zdechła… Ale była to wina tego, że system nie wytrzymał ilości połączeń i maszyny zdechły
Jak ma ktoś pytania – piszcie w komentarzu.
btw, nie mam już dostępu do tych maszyn, więc ciężko ze zrobieniem dodatkowych testów

