Depolama Testi Nedir? Türleri, Concepts & Örnek

⚡ Akıllı Özet

Depolama testi, bir uygulamanın verilerini doğru dizinlere yazdığını ve beklenmedik sonlanmaları önlemek için yeterli disk alanına sahip olduğunu doğrular; aynı zamanda temel depolamanın gerçekçi yük altında ne kadar hızlı yanıt verdiğini ölçer.

  • 💾 Olarak da adlandırılır: Depolama performansı testi, çünkü hız doğru yerleştirme kadar önemlidir.
  • ⚠️ Neden önemlidir: Yavaş depolama, yavaş yanıt sürelerine, uzun süren sorgulara ve uygulama kullanılabilirliğinin azalmasına neden olur.
  • 🧩 Üç tür: Uygulama testi, uygulama simülasyonu ve kıyaslama, her birinin kendine özgü faaliyetleri vardır.
  • 📏 Temel metrikler: IOPS, gecikme süresi, verimlilik ve kuyruk derinliği her zaman ayrı ayrı değil, birlikte okunmalıdır.
  • 🧪 Nasıl çalışır: Hedefleri belirleyin, veri setinin boyutunu belirleyin, gerçekçi okuma/yazma karışımlarını seçin, ardından yükü kademeli olarak artırın.
  • ️ takım: Sentetik giriş/çıkış üreteçleri, dosya kopyalama komutlarının asla üretemeyeceği tekrarlanabilir sayılar üretir.
  • ???? Yaygın hatalar: Yanlış sunucuyu izliyorsunuz, atlayınping Önbellek temizleme ve işlemci kullanımını göz ardı etme.

Depolama testiyle ilgili türler, kavramlar ve yaygın hatalar hakkında eğitim videosu.

Depolama Testi Nedir?

Depolama testi Yazılım testinin bir türü olan bu yöntem, test edilen yazılım uygulamasının ilgili verileri uygun dizinlere kaydedip kaydetmediğini ve yetersiz disk alanı nedeniyle beklenmedik sonlanmaları önleyecek kadar yeterli alana sahip olup olmadığını doğrulamak için kullanılır. depolama performansı testi.

Bu teknik, disiplinin işlevsel olmayan tarafında yer alır: diğer teknik biçimleri gibi işlevsel olmayan testBu, bir özelliğin doğru cevabı üretip üretmediğiyle ilgili hiçbir şey söylemiyor; ancak sistemin veri hacmi ve G/Ç baskısı arttıkça cevap üretmeye devam edip edemeyeceğiyle ilgili her şeyi söylüyor.

Neden Depolama Testi?

Depolama, çoğu uygulamanın eriştiği en yavaş katmandır; bu nedenle oradaki bir zayıflık her yerde kendini gösterir. Bu durum, özel bir test döngüsünü haklı çıkaran dört nedene yol açar.

  • Yavaş depolama, yavaş yanıt süreleri, uzun süren sorgular ve düşük uygulama kullanılabilirliği anlamına gelir.
  • Yavaş depolama, sunucu altyapısının bakımı için ek bir yük oluşturur.
  • Sistem devreye alınmadan önce pratik depolama sınırlarını belirlemek faydalı olur.
  • Bir donanım aygıtı değiştirildiğinde veya yükseltildiğinde sistemin nasıl tepki verdiğini anlamak faydalıdır.

Aşağıdaki diyagram, depolama testini bu bağlamda ele alıyor: uygulama, dosya sistemi ve fiziksel aygıtın hepsi aynı yol üzerinde bulunuyor ve bu yol üzerindeki herhangi bir gecikme kullanıcıya ulaşıyor.

Dosya sistemi üzerinden depolama aygıtına veri yazan bir uygulamanın depolama testi genel görünümü.

Depolama Testi Türleri

Üç farklı yaklaşım kullanılmaktadır ve bunlar temel olarak iş yükünün gerçek uygulamaya ne kadar benzediği konusunda farklılık göstermektedir.

  • Uygulama Testi: Üretim ortamına benzer bir ortamda örnek sorgularla uygulama testi.
  • Uygulama Simülasyonu: Hedef uygulamaya benzer şekilde davranan standart yazılımlar kullanılarak testler gerçekleştiriliyor.
  • Kıyaslama: Testler, sentetik ve tekrarlanabilir bir iş yükü üreten standart kıyaslama yazılımı kullanılarak gerçekleştirilir.

Birincisi en gerçekçi sonucu verir ve en az taşınabilir olanıdır; üçüncüsü ise cihazlar ve satıcılar arasında karşılaştırılabilen rakamlar verir, ancak uygulamanın kendisinin nasıl davranacağı hakkında çok az şey söyler.

Ortak Test Concepts Depolama Testi Sırasında Yer Alanlar

Aşağıda özetlendiği gibi, bu üç türün her biri farklı bir dizi faaliyete karşılık gelir.

Depolama Testi Türleri Ortak depolama testi etkinlikleri örneği
Uygulama Testi OLTP yanıt sürelerini karşılaştırın
Toplu çalışma sürelerini karşılaştırın
Sürekli akış hızlarını karşılaştırın
Uygulama Simülasyonu Veritabanları için en yüksek depolama IOPS'sini test edin
Veri akışı ortamları için en yüksek depolama verimliliğini test edin.
Mesajlaşma veya diğer tek iş parçacıklı uygulamalar için depolama gecikmesini test edin.
Kıyaslama Veri bozulmasını test etme

Depolama Testlerinde Temel Ölçütler

Depolama sonuçları az sayıda rakam üzerinden raporlanır. Bunlardan herhangi birini tek başına okumak, yanlış bir sonuca ulaşmanın en hızlı yoludur, çünkü bunlar birbirleriyle çelişir.

metrik Neyi ölçer En çok önem taşıdığı yerde
IOPS Boyutundan bağımsız olarak, saniyede tamamlanan okuma ve yazma işlemleri. İşlemsel veritabanları ve küçük rastgele yazma işlemleri
Gecikme Tek bir G/Ç işleminin başlangıcı ve tamamlanması arasındaki süre Mesajlaşma ve tek iş parçacıklı uygulama yolları
çıktı Saniyede taşınan veri hacmi, genellikle MB/s cinsinden ifade edilir. Toplu çalıştırmalar, yedeklemeler ve akışlı iş yükleri
kuyruk derinliği Aynı anda verilen bekleyen talep sayısı Gerçek eşzamanlılığı yansıtması gereken herhangi bir çalıştırma.

Kuyruk derinliği özellikle dikkat edilmesi gereken bir konudur. Tek seferde yalnızca bir istek göndermek, doğru bir tek istek gecikmesi sağlar ancak yapay olarak düşük bir IOPS ve verimlilik değeri üretir; bu nedenle bir cihaz testte yavaş, üretimde hızlı veya tam tersi şekilde görünebilir.

Depolama Testi Nasıl Yapılır?

Bir depolama testi, ancak testin yapıldığı koşullar kadar güvenilirdir. Aşağıdaki sıralama, sonuçların tekrarlanabilir olmasını sağlar.

  • Adım 1) Hedefi tanımlayın. Bu işlemin veritabanının hazır olup olmadığını test etmek, işlem hacminin üst sınırını belirlemek veya iki cihazı karşılaştırmak için mi yapıldığına karar verin. Her hedef farklı bir iş yükü anlamına gelir ve bunları karıştırmak kimsenin üzerinde işlem yapamayacağı sayılar üretir.
  • Adım 2) Veri setinin boyutunu gerçekçi bir şekilde belirleyin. Önbelleğe sığacak kadar küçük bir çalışma veri seti, depolama alanını değil, önbelleği ölçer. Üretim verisi hacmiyle eşleşin veya en azından önbellek boyutunu önemli ölçüde aşın.
  • Adım 3) Okuma/yazma karışımını ve desenini seçin. Aynı cihazda rastgele ve sıralı erişim çok farklı davranır; aynı şekilde %70 okuma/%30 yazma karışımları ve yalnızca yazma patlamaları da farklıdır. Varsayılan ayarlardan değil, üretim izleme verilerinden elde edilen karışım verilerini kullanın.
  • Adım 4) Kuyruk derinliğini ve iş parçacığı sayısını ayarlayın. Bunlar, cihaza ulaşan eşzamanlı işlem sayısını kontrol eder; bu nedenle, her sonuçla birlikte bunları kaydedin; bunlar olmadan verilen bir rakam tekrarlanamaz.
  • Adım 5) Önbellekleri temizleyin ve ısınma işlemini gerçekleştirin. Çalıştırmalar arasında sunucu ve aygıt önbelleklerini temizleyin, ardından ilk aralığı atın, böylece ilk dokunuş değerleri yerine kararlı durum değerleri karşılaştırılır.
  • Adım 6) Yeterince uzun süre koşun. Kısa süreli çalıştırmalar, SSD'nin yazma tamponu tükendiğinde ortaya çıkan yazma uçurumunu gizler. Uzun süreli çalıştırmalar ise bu uçurumu ortaya çıkarır.
  • Adım 7) Tüm yığını izleyin. İşlemci kullanımını, belleği ve ağı, depolama sayaçlarıyla birlikte kaydedin; böylece başka bir yerde oluşan darboğaz, depolama sınırı olarak yanlış yorumlanmasın.
  • Adım 8) Tekrarlayın ve karşılaştırın. Aynı yapılandırmayı birden fazla kez çalıştırın ve kayıtları saklayın; sürümler arasındaki performans sapmaları yalnızca kaydedilmiş bir temel değere göre görülebilir.

Yük odaklı her türlü ölçüm için aynı disiplin geçerli olduğundan, bu çalışmalar genellikle birlikte planlanır. performans testi ve yayın adayı dondurulmadan önce planlandı.

Depolama Test Araçları

Aletler iki gruba ayrılır ve çoğu ekip her ikisine de ihtiyaç duyar.

  • Sentetik giriş/çıkış jeneratörleri. Gibi yardımcı programlar fioIometer ve sysbench, blok boyutu, okuma/yazma karışımı, kuyruk derinliği ve süresi gibi tüm parametreleri içeren, tam olarak tanımlanmış bir iş yükü oluşturur; böylece bir çalıştırma başka bir cihazda aynen tekrarlanabilir.
  • Uygulama düzeyinde yük araçları. Sürücüler gibi JMeter Uygulamanın kendisini çalıştırarak, depolama alanının gerçek kullanıcıların oluşturduğu erişim modelini görmesini sağlar; bu, sentetik bir aracın yeniden üretemeyeceği sorgu planlarını ve indeks davranışını da içerir.

OperaSistem sayaçları resmi tamamlıyor. Yükü oluşturan araç ne olursa olsun, depolama rakamları işlemci, bellek ve ağ sayaçlarının yanında okunmalıdır; bu da çeşitli depolama test tekniklerini içerir. kıyaslama testi hem de hacim testiSonucu doğru yorumlamak için bu tam kapsamlı bakış açısına ihtiyaç duyulur.

Depolama Testi Yapılırken Yapılan Hatalar

Geçersiz depolama sonuçlarının çoğu tracÖnlenebilir hataların sayısını küçük bir sayıya indirgeyebiliriz.

  • Yanlış sunucunun performansını izliyoruz, bu nedenle rakamlar test edilmeyen bir makineyi tanımlıyor.
  • Sunucu önbelleğini önceden temizlemeden depolama aygıtlarını karşılaştırmak, disk yerine belleği ölçer.
  • Test sırasında işlemci kullanımını izlemeyi unutmak, işlemci kaynaklı bir darboğazı depolama alanı kaynaklı bir belirti gibi gizler.
  • Tek iş parçacıklı, önbellek destekli ve tekrarlanabilir olmayan dosya kopyalama komutlarıyla depolama performansını test etme.

SSS

Hacim testi Bir uygulamanın tuttuğu veri miktarı arttıkça, uygulamanın performansının da bozulduğunu gözlemler. Depolama testi, uygulamanın altındaki aygıt katmanını hedef alarak, verilerin ne kadar hızlı yazılıp okunabildiğini ölçer.

Uygulamanın dosya yazdığı her konum: veri dizinleri, günlük ve geçici klasörler, yükleme hedefleri ve arşiv yolları. Her birinde dosyanın doğru yere kaydedildiğinden ve boş alanın doğru şekilde bildirildiğinden emin olmak için kontrol yapılması gerekir.

Ölçümler aynı kalır, ancak tahsis edilmiş IOPS limitleri, ani artış kredileri ve gürültülü komşular eklenir. Ani artış kredisi tükenene kadar yeterince uzun süre çalıştırın, aksi takdirde ölçülen rakam kararlı durum yerine geçici bir izni yansıtır.

Makine öğrenimi modelleri, normal IOPS ve gecikme eğrilerini temel alır ve bir eşik aşılmadan önce sapma gösteren çalıştırmaları işaretler. Aynı modeller kapasite büyümesini de tahmin eder, böylece disk tükenmesi üretimde keşfedilmek yerine önceden tahmin edilir.

GitHub Yardımcı Pilotu İş dosyalarının taslaklarını, önbellek temizleme sarmalayıcılarını ve sonuç ayrıştırma komut dosyalarını hızlı bir şekilde oluşturur. Test cihazı, blok boyutunu, kuyruk derinliğini ve süresini yine de kendisi sağlar, çünkü bunlar bir şablondan değil, üretim izleme sisteminden gelir.

Bu geçerli bir test senaryosu, bir kaza değil. Uygulama, sonlanmak yerine uyarı vermeli, sorunsuz bir şekilde çalışmaya devam etmeli ve durumu kaydetmelidir. Disk dolu durumundan kurtarma işlemi, ilgili bölüme aittir. kurtarma testi.

Genellikle önbellek durumu, kuyruk derinliği veya çalışma süresi aralarında farklılık gösterirdi. Cihazın durumu da önemlidir; yeni biçimlendirilmiş bir SSD, birkaç kez doldurulup yeniden yazılmış bir SSD'ye göre daha hızlı yazar.

Genellikle performans test uzmanları tarafından yürütülür; altyapı veya veritabanı yöneticileri ise cihaz yapılandırmasını ve üretim erişim modellerini sağlar. Sonuç, ancak her iki taraf da iş yükünün gerçekçi olduğu konusunda hemfikir olduğunda savunulabilir.

Bu yazıyı şu şekilde özetleyin: