sql >> Databáze >  >> NoSQL >> MongoDB

XFS vs EXT4 – Porovnání výkonu MongoDB na AWS EC2

AWS je extrémně populární a důvěryhodná cloudová platforma pro správu nasazení MongoDB, ale otázka XFS vs EXT4 má mnoho vývojářů, kteří přemýšlí, který souborový systém Linux jim poskytne nejlepší výkon pro jejich aplikace. Oficiální průvodce MongoDB o nasazení do produkce doporučuje použití souborového systému XFS v Linuxu, zejména při nasazení úložiště WiredTiger. Doporučení nám však neříká, proč bychom měli očekávat zvýšení výkonu nebo jaké zvýšení výkonu zažijeme. Rozhodli jsme se tomu přijít na kloub kvantitativním zkoumáním výkonu MongoDB na XFS, abyste mohli porovnat, zda je EXT4 lepší volbou pro vaše instance AWS EC2.

Souborový systém XFS

XFS je vysoce škálovatelný, vysoce výkonný 64bitový systém souborů žurnálů vyvinutý společností SGI v roce 1993 a portovaný na Linux v roce 2002. Podporuje vysoce paralelní I/O a velikosti souborového systému až 9 Exabajtů a žurnáluje pouze metadata souborového systému, nikoli uživatelská data. Některé klíčové funkce XFS zvyšující výkon jsou:

    • Paralelní přístup prostřednictvím alokačních skupin zajišťuje, že více vláken může současně provádět I/O na stejném svazku.
    • Alokace založená na rozsahu snižuje fragmentaci, velikost metadat a zlepšuje výkon I/O tím, že umožňuje méně a větší I/O operace.
    • Zpožděná alokace zlepšuje spojitost dat a výkon. Fragmentace je redukována kombinováním zápisů a přidělováním rozsahů ve velkých blocích a soubory zapsané náhodně (např. ty, které jsou mapovány do paměti) mohou být alokovány souvisle

Existuje mnoho dalších funkcí XFS k prozkoumání a více se můžete dozvědět na webu XFS a v uživatelské příručce XFS.

Provádění testů výkonu na MongoDB

Jak jste se možná dozvěděli v našich předchozích příspěvcích, YCSB používáme ke srovnávání výkonu MongoDB, včetně podrobného srovnání výkonu MongoDB podporovaného MMAP u různých poskytovatelů cloudu. Rozhodli jsme se použít stejnou pracovní zátěž YCSB, kterou jsme používali dříve:Pracovní zátěž A (náročná aktualizace:50 % přečtení + 50 % aktualizací). Fáze vkládání zátěže měří výkon 100% zátěže zápisu, zatímco fáze zátěže bude měřit výkon oproti skutečné zátěži (50/50% čtení/aktualizace).

Naše testy byly spuštěny na synchronizačním ovladači MongoDB a distribuce Linuxu byla Amazon Linux (4.4.44-39.55.amzn1.x86_64). Pro naše testy jsme vybrali MongoDB verze 3.2.10 se systémem WiredTiger, protože WT je místo, kde se očekávaly lepší zisky, a provedli jsme testy na 2 různých hardwarových zařízeních:

  • Vysokorychlostní disky :Instance AWS EC2 c3.large, kde společnost MongoDB používala pro úložiště disky SSD v konfiguraci RAID 0 (mapuje velikost clusteru ScaleGrid HighPerfLarge).
  • Středně rychlé disky :Instance AWS EC2 m3.medium, kde MongoDB používal disk zřízený EBS (Elastic Block Store) IOPS nastavený na 300 IOPS (mapuje se na střední velikost clusteru ScaleGrid).

Poznámka:Jakýkoli druh testování výkonu ve virtualizovaných prostředích je třeba brát s rezervou. Naším cílem zde není porovnávat výkonová čísla v těchto prostředích, ale poskytnout určité kvantitativní měření výkonnostních rozdílů mezi EXT4 a XFS ve stejném virtualizovaném prostředí.

Vysokorychlostní disk SSD

Na našem vysoce výkonném zařízení jsme provedli následující test:

  1. Vloženo 6 milionů záznamy při různém zatížení serveru (změnou počtu klientských vláken YCSB).
  2. Proběhla pracovní zátěž při počtu operací 10 milionů záznamy při různém zatížení serveru.

Výsledky výkonu disku SSD

Charakteristiky propustnosti/latence pro vkládání 6M záznamu ve vysoce výkonné konfiguraci:

Charakteristiky propustnosti/latence pro operace zápisu/aktualizace 10 milionů ve vysoce výkonné konfiguraci:

Pozorování disku SSD

  • XFS je úžasně rychlý jak ve fázi vkládání, tak při provádění zátěže. Při nižším počtu vláken je až o 50 % rychlejší než EXT4. Jak se zátěž zvyšovala, oba souborové systémy byly omezeny propustností základního hardwaru, ale XFS si stále udrželo své prvenství.
  • Latence pro XFS i EXT4 byla srovnatelná v obou běhech. Všimněte si, že všechna čísla jsou v mikrosekundách.

Pomalejší disk IOPS zajištěný EBS (300 IOPS)

Následující test byl proveden na našem středně velkém výkonném zařízení:

  1. Vloženo 3 miliony záznamy při různém zatížení serveru (změnou počtu klientských vláken YCSB).
  2. Proběhla pracovní zátěž při počtu operací 5 milionů záznamy při různém zatížení serveru.

Vzhledem k našim zkušenostem s konfigurací vyšší třídy jsme očekávali, že XFS bude mít slušný náskok i v tomto zařízení.

Výsledky výkonu disku IOPS

Charakteristiky propustnosti/latence pro vkládání záznamu 3M na konfiguraci média:

Charakteristiky propustnosti/latence pro operace zápisu/aktualizace 5M na konfiguraci média:

Pozorování disku IOPS

  • XFS je srovnatelný, i když mírně za EXT4 ve středně velké konfiguraci. Zdá se, že na této úrovni systémových prostředků optimalizace výkonu XFS ve skutečnosti nemění. Toto je důležité pozorování, pokud uvažujete o nasazení XFS na menších instancích v naději na lepší výkon.

XFS vs EXT4 na AWS EC2

Z hlediska výkonu je XFS skutečně multiplikátorem síly, když je spárován s vysokorychlostními disky, ze kterých může skutečně těžit. Zdá se, že u systémů nižší a střední třídy toho pro zlepšení vašeho výkonu příliš nezmůže.


  1. Spuštění více instancí Redis na Centos

  2. Jarní datové transakce MongoDB

  3. Nainstalujte phpredis MAC OSX

  4. Jak použít aktualizaci pomocí filtrovaného polohového operátoru s arrayFilters