it-swarm-tr.com

MySQL (InnoDB) için en iyi Linux dosya sistemi nedir?

MySQL InnoDB ile çeşitli dosya sistemlerinin performansları üzerinde karşılaştırma yapmaya çalıştım ama bulamadım.

Veritabanı iş yüküm tipik web tabanlı OLTP, yaklaşık% 90 okuma,% 10 yazma. Rastgele ES.

Ext3, ext4, xfs, jfs, Reiserfs, Reiser4, vb. Gibi popüler dosya sistemleri arasında hangisinin MySQL için en iyisi olduğunu düşünüyorsunuz?

48
Continuation

Verilere ne kadar değer veriyorsunuz?

Cidden, her dosya sisteminin kendi ödünleşimleri vardır. Daha ileri gitmeden önce, sık sık Ext3'ü çalıştırmamıza rağmen, XFS ve Reiser'ın büyük bir hayranıyım. Yani burada gerçek bir dosya sistemi önyargısı yok, sadece size bildirir ...

Dosya sistemi sizin için bir kapsayıcıdan biraz daha fazlaysa, size en iyi erişim sürelerini sağlayanlarla devam edin.

Veriler önemli bir değere sahipse, XFS'den kaçınmak isteyeceksiniz. Neden? Çünkü günlüğe kaydedilen blokları sıfırlar bir dosyanın bir bölümünü kurtaramaz ve verileri yapar un-kazanılabilir. Bu sorun Linux Çekirdeği 2.6.22'de düzeltildi .

ReiserFS harika bir dosya sistemidir, hiçbir zaman çok fazla çökmez . Günlük kurtarma iyi çalışır, ancak herhangi bir nedenle disk bölüm bilgilerinizi kaybederseniz veya dosya sisteminin temel blokları patlarsa, diskte birden fazla ReiserFS bölümü varsa bir quandry olabilir - çünkü kurtarma mekanizması temelde tüm diski, sektör bazında tarar, dosya sisteminin başlangıcı "-" ne düşündüğünü "arar . ReiserFS ile üç bölümünüz varsa, ancak yalnızca bir tanesi patladıysa, kurtarma işleminin diğer iki sistemden bir Frankenstein karmaşasını birleştirdiği için bunun yaratacağı kaosu hayal edebilirsiniz ...

Ext3 "yavaş", bir "Ben 32.000 dosya var ve hepsini çalıştırmak ls" tür bulmak biraz zaman alır. Her yerde binlerce küçük geçici tablonuz olacaksa, çok fazla kederiniz olacak. Daha yeni sürümler artık dizin geçişini önemli ölçüde azaltan bir dizin seçeneği içeriyor, ancak yine de acı verici olabilir.

Hiç JFS kullanmadım. Sadece şimdiye kadar okuduğum her inceleme "katı, ama blokta en hızlı çocuk" satırlarında bir şey olduğunu yorum yapabilirsiniz. Soruşturmayı hak edebilir.

Eksileri yeter, Artıları bakalım:

XFS'in:

  • muazzam dosyalarla çığlık atıyor, hızlı iyileşme süresi
  • çok hızlı dizin araması
  • Döküm için dosya sistemini dondurma ve çözme ilkeleri

ReiserFS:

  • Son derece optimum küçük dosya erişimi
  • Dosya sistemi alanından tasarruf ederek birkaç küçük dosyayı aynı bloklara paketler
  • hızlı kurtarma, XFS kurtarma sürelerine rakip

Ext3:

  • Denenmiş ve doğru, iyi test edilmiş Ext2 koduna göre
  • Onunla çalışmak için birçok araç
  • Kurtarma için bir tutam içine Ext2 olarak yeniden monte edilebilir
  • Hem küçültülebilir hem de genişletilebilir (diğer dosya sistemleri yalnızca genişletilebilir)
  • En yeni sürümler "canlı" olarak genişletilebilir (bu cesursanız)

Gördüğünüz gibi, her birinin kendine özgü tuhaflıkları var. Soru, sizin için en az ilginç olanı mı?

44
Avery Payne

InnoDB'yi bir dosya sistemi olmadan çalıştırabileceğiniz ve dosya sistemi yükü olmadan performansı artırabileceğinizi de belirtmek gerekir. Tavsiye ederim emin değilim, ama daha önce sorunsuz kullandım.

InnoDB Ham Cihazları

Buna ek olarak,% 90 okuma ve% 10 yazma ile çalışıyorsanız, InnoDB'nin işlem yeteneğine ihtiyacınız yoksa, daha iyi okuma performansı için MyISAM'a geçmeyi düşünebilirsiniz.

13
Xorlev

Buradaki yanıtlar ciddi bir şekilde kullanımdan kaldırılmıştır ve bu, Google sonuçlarında ortaya çıktığı için güncellenmesi gerekir.

Üretim ortamları için XFS. Her zaman. XFS günlüklüdür ve engellemez. Üretimde InnoDB kullanan modern bir (2011/2012) MySQL veritabanı için aşağıdaki değişkenlere sahip olduğunuzdan emin olun:

innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1 # an ACID requirement
sync_binlog = 1 # more ACID
innodb_flush_method = O_DIRECT

EXT3 ve hatta EXT4 kullanmayın. Bir gün BTRFS oraya ulaşacak.

EXT3 ve belki EXT4 akıllı değil inode seviyesinde kilitlenir!

Kaynaklar: - www.mysqlperformanceblog.com - http://dev.mysql.com/doc/internals/en/index.html - Sasha Pachev tarafından MySQL Dahili Öğelerini Anlamak - https://www.facebook.com/note.php?note_id=101502109016109 - http://oss.sgi.com/projects/xfs/training/ - Bazı salıncak kiti, deneme yanılma.

EDIT: Bir güncelleme. EXT4, 2013 Ortası itibariyle gayet iyi gidiyor gibi görünüyor! BTRFS hala iyi bir seçenek değil. Ve RHEL, XFS'yi yeni varsayılan dosya sistemi yapabilir. Yine, EXT3 KULLANMAYIN.

11
Mathnode

Kısa sürüm, MySQL'in dosya sistemlerinde yaptığı bir tavsiyeye en yakın olanın XFS olduğunu, ancak ext3'ün de iyi olması, ext4'ün güzel bir gelişme olacağına söz veriyor, ancak yine de oldukça kararlı değil. yılın sonu.

Küme dosya sistemleri CXFS çalıştırıyorsanız, OCFS2 ve GFS'nin tamam olması gerekir.

Herhangi bir Reiser türevine ve JFS'ye karşı şiddetle uyarıyordum, ancak Nice, çoğunlukla daha yaygın bir şekilde konuşlandırılan XFS ve ext4 tarafından dövüldü.

9
LapTop006

Çok fazla fark yaratması pek olası değil. Yeterli olması koşuluyla, dağıtımınızın varsayılan olarak kullandığı her şeye gidin.

Çabalarınızı başka şeyleri ayarlamak için harcayın - yeterince ram alın - emmeyen bir baskın denetleyicisi alın - ve uygulamanın veritabanının topal (ab) kullanımını düzeltin (Not: bu, henüz olmadığı durumlarda ana suçludur) yapıldı).

Ancak, mysql tmpdir'inizi koyduğunuz dosya sistemini dikkatlice düşünün; bu performansı, özellikle disk tabanlı dosya portları () içeren sorguları etkiler (daha fazla ayrıntı için EXPLAIN bölümüne bakın).

Gecikmeli tahsisi destekleyen bir dosya sisteminin burada gerçekten kullanışlı olduğunu düşünüyorum, çünkü önbellekte tutmak için yeterli koç olduğunda IO kısa ömürlü dosyalar için tamamen önleyebilirsiniz. Örneğin, XFS, tahsis edilmeden önce silinen ve kapatılan dosyaları yazma zahmetine girmez.

Elbette bir tmpdir'i bir tmpfs üzerine koymak, performans açısından caziptir, ancak alanı tüketme ve aksi takdirde başarılı olacak sorguların (kullanılan disk geçici dosyaları olsa da) başarısız olma riskine yol açar.

6
MarkR

Çeşitli dosya sistemlerinde çalışan MySQL'de "roundups" ölçütüne sahip yeni bir makale bulamıyorum. Açıkladığınız iş yükü göz önüne alındığında, dosya düzeyinde parçalanmanın büyük bir sorun olacağından şüpheliyim. Resmi bir kıyaslama olmadan, yetkili olarak almanız gereken hiçbir şey söyleyemem, ama bağırsaklarım yukarıda bahsettiğiniz her dosya sisteminin kabaca aynı balo parkında (yani performans numaraları için aynı büyüklükte) performans göstereceğini söylüyor. .

Veritabanı gerçekten gösteriyi çalıştırıyor, çünkü dosya sistemi depolama motorunun eriştiği büyük uzantıları yönetiyor.

Yine de, tüm bu dosya sistemleri ile bir performans toplaması yapmak ilginç olurdu. (Yine de MySQL için hiçbir hevesim yok, bu yüzden üstlenmeyeceğim. Kıyaslama Postgres, OTOH, ilginç olabilir ...)

5
Evan Anderson

IMHO Linux için mevcut kayda değer FS'ler şunlardır:

XFS'nin (düşük okuma hızı) sistem kaynaklarında hafif olduğu ve büyük dosyalarla hızlı olduğu ancak çok sayıda küçük dosyayı işlemek için yetersiz olduğu bilinmektedir.

ReiserFS (düşük yazma hızı) sistem kaynakları üzerinde çok iyi değil, birçok küçük dosyayla çok iyi performans gösteriyor.

EXT3, tüm alanlarda kabul edilebilir bir performans sergiliyor (bunun varsayılan linux FS olarak kabul edilmesinin nedeni).

Henüz ReiserFS4 değil EXT4 kullanmadım ama bazı kriterlere baktım ve sizin için en önemli olduğunu söylediğiniz okuma hızı söz konusu olduğunda ReiserFS en iyi performansa sahip gibi görünüyor.

Şuna bir göz atın: ReserFS4 X Ext4 X Ext

İstikrar, güvenlik ve olgunluk için Ext3'ü öneriyorum, ancak okuma hızı sizin için en önemli şeyse, ReiserFS'yi düşünmelisiniz.

Bir FS seçmeden önce CPU kullanımını, kararlılığını ve güvenliğini de göz önünde bulundurmanız gerektiğini unutmayın.

Ve elbette bir pilot yapmak, kendi ortamınızda test etmek ve kıyaslamak sizin için neyin en iyi çalışacağını söylemenin her zaman en iyi yoludur.

PS: Ben daha fazla kriter gönderirdi ama birden fazla bağlantı gönderemiyorum.

3
OldJim