Kullanışlı bir depolama testi, işlem boyutunu, erişim desenini, eşzamanlılığı ve dayanıklılık gereksinimlerini uygulamayla eşleştirir. Test koşullarını ve gecikme dağılımını kaydedin, ardından sonucu uygulama ölçümleriyle doğrulayın.
Bir puanla değil, bir depolama sorusuyla başlayın
Bir kıyaslama çalıştırmadan önce ne bilmeniz gerektiğine karar verin. Yavaş veritabanı işlemelerini, dosya dağıtım aktarım hızını veya çok sayıda küçük dosya oluşturan bir derleme sürecini araştırıyor olabilirsiniz. Bu iş yükleri diskten aynı şeyi istemez. Büyük bir sıralı kopyalama etkileyici görünebilir, ancak küçük rastgele okumalar yapan bir hizmetin yaşadığı gecikme hakkında çok az şey söyler.
NVMe, kalıcı ortamlar ve verimli paralel G/Ç için tasarlanmıştır, ancak protokol adı barındırılan bir depolama yolunun her parçasını tanımlamaz. Sanallaştırma, dosya sistemi, kaynak çekişmesi ve uygulama hâlâ önemlidir. Tüm sunucunun hızlı olduğunu kanıtlayan bir sayı üretmeye çalışmak yerine, depolama gecikmesinin belirli bir işlemi yavaşlatıp yavaşlatmadığı gibi bir test hipotezi yazın.
İş yükünü yeniden üretilebilir terimlerle tanımlayın
İşlem boyutunu, sıralı veya rastgele deseni, okuma-yazma karışımını, iş sayısını ve kuyruk derinliğini kaydedin. Veri kümesi boyutunu ve test süresini ekleyin. fio belgeleri bu iş yükü kontrollerini ve mevcut G/Ç motorlarını açıklar. Amaçlanan derinlik her motor veya kurulum tarafından elde edilemeyebilir; bu nedenle istediğiniz yapılandırmanın yanı sıra bildirilen davranışı da okuyun.
Test açıklamasının bir kopyasını sonucun yanında tutun. İşletim sistemini, dosya sistemini, bağlama seçeneklerini, hizmet etkinliğini ve kullanılabilir kapasiteyi not edin. Yapılandırmaları karşılaştırırsanız, her seferinde ilgili bir koşulu değiştirin. Farklı bir erişim deseni veya eşzamanlılık içeren bir test, yalnızca depolama ortamı değişmiş gibi adil biçimde sunulamaz.
| Uygulama deseni | Tanımlanacak test boyutu | İncelenecek sonuç |
|---|---|---|
| Büyük dosya teslimi | Sıralı okumalar ve eşzamanlı istemciler | Sürdürülen aktarım hızı ve CPU kullanımı |
| Kayıt arama | Küçük rastgele okumalar ve temsili eşzamanlılık | Gecikme dağılımı ve tamamlanan işlemler |
| Dayanıklı işlem | Yazma ve eşitleme gereksinimleri | Yalnızca arabellekli yazma hızı değil, işlemeyle ilgili gecikme |
| Derleme veya çıkarma | Karışık küçük dosya işlemleri | Uçtan uca iş süresi ve G/Ç beklemeleri |
Önemli değilmiş gibi davranmadan önbelleği kontrol edin
Belleğe sığan bir veri kümesi, ilk geçişten sonra çoğunlukla önbellek davranışını ölçebilir. Uygulama normalde aynı önbellekten yararlanıyorsa bu yararlı olabilir, ancak ham aygıt performansı olarak etiketlenmemelidir. Testin sıcak bir uygulama yolunu, daha soğuk bir veri kümesini veya işletim sisteminin arabellekleme etkisini azaltmayı amaçlayan bir G/Ç modunu inceleyip incelemeyeceğine bilinçli olarak karar verin.
Doğrudan G/Ç desteği ve hizalama, platforma ve motora bağlıdır. Ayrıca uygulamanın dayanıklılık gereksinimlerini otomatik olarak ifade etmez veya yığındaki her önbelleği ortadan kaldırmaz. Seçilen modu açıkça belirtin ve arabellekli bir testi arabelleksiz bir testle aynı işi temsil ediyormuş gibi karşılaştırmaktan kaçının. Yorumlamaya yardımcı olduğunda ısınma ve ölçülen aralıkları ayrı tutun.
Gecikme kuyruklarını aktarım hızıyla birlikte okuyun
Ortalama gecikme, gerçek istekleri etkileyen yavaş işlemleri gizleyebilir. Bildirilen yüzdelik dilimleri ve arkalarındaki örnek sayısını inceleyin. Yüksek bir yüzdelik dilim, o test sırasında gözlemlenen işlemlerin belirtilen bir bölümünün altına düştüğü sınırı tanımlar; kalıcı bir hizmet garantisi değildir. Kısa veya temsili olmayan çalıştırmalar, yoğun üretim dönemleri hakkında sınırlı kanıt sağlar.
Daha yüksek kuyruk derinliği, tamamlanan aktarım hızını iyileştirirken bekleme süresini artırabilir. Bu ödünleşim toplu işlemeye uygun olabilir ve etkileşimli bir hizmete zarar verebilir. Sonuçları uygulamaya benzeyen eşzamanlılıkta karşılaştırın ve aynı anda CPU ile G/Ç baskısını izleyin. Test, ortamı paylaşan başka bir iş yükü için gereksiz kesinti yaratmadan önce durdurun.
Testi yetkili ve yıkıcı olmayan biçimde tutun
Yeterli boş alana ve açık bir temizleme planına sahip, ayrılmış bir test dizini veya hazırlanmış tek kullanımlık bir birim kullanın. Yazma kıyaslamasını asla doğrulanmamış ham bir aygıta veya üretim veri kümesine yöneltmeyin. Başlamadan önce aracın hedefini ve yazma davranışını kontrol edin ve sınırlı bir çalıştırmayla başlayın. Sentetik G/Ç, yararlı dosyaların üzerine yazmasa bile kapasite tüketebilir ve hizmetlere müdahale edebilir.
Üretim benzeri bir değerlendirme için bir bakım penceresi üzerinde anlaşın ve uygulama izlemeyi sürdürün. Mümkün olduğunda uydurma veri kullanın. Depolama güvenilirliğini bir hız testinden çıkarsamayın: bütünlük kontrolleri, yedeklemeler ve geri yükleme ayrı görevlerdir. Bir kıyaslamayı tamamlayan bir aygıt, silme, yazılım hataları veya makinenin kaybı için yine de bir kurtarma stratejisine ihtiyaç duyar.
Döngüyü uygulama kanıtıyla kapatın
Bir raporlama hizmetinin zamanının çoğunu rastgele okumaları bekleyerek geçirdiğini varsayalım. Ekip temsili bir okuma desenini test eder, ardından gerçek raporu karşılaştırılabilir verilerle yineler. Rapor iyileşirken diğer işleri sabit kalırsa, sonuç depolama hipotezini destekler. İyileşmezse, daha geniş sentetik testleri yinelemek yerine sorgu tasarımını, belleği veya başka bir bağımlılığı araştırın.
Pulse NVMe ve seçili özel yapılandırmalar, SwissOctet kataloğunda NVMe depolamayı listeler. Etiketleri teknik özelliklerdir, yayımlanmış uygulama kıyaslamaları değildir. Sunulan ortamı değerlendirmek için kontrollü bir yöntem kullanın ve koşulları bulgularla birlikte saklayın. Depolama ölçümü ile kullanıcı tarafından görülen sonuç aynı soruyu yanıtladığında karar güçlenir.
Pratik kontrol listeniz.
- Önce uygulama sorusunu tanımlayın.
- Deseni, blok boyutunu, eşzamanlılığı ve süreyi kaydedin.
- Önbellek ve G/Ç modu varsayımlarını belirtin.
- Aktarım hızının yanı sıra gecikme yüzdelik dilimlerini de inceleyin.
- Doğrulanmış tek kullanımlık bir hedef ve sınırlı başlangıç yükü kullanın.
- Bulguyu bir uygulama testiyle doğrulayın.
Önemli olan ayrıntılar.
Veritabanı depolamasını karşılaştırmak için sıralı kopyalama yeterli mi?+
Genellikle hayır. Veritabanı erişimi küçük rastgele okumalar, yazmalar ve eşitleme içerebilir. İlgili deseni modelleyin ve gerçek uygulamayı doğrulayın.
Doğrudan G/Ç dayanıklı yazmaları kanıtlar mı?+
Hayır. Arabellekleme ve dayanıklılık ayrı konulardır. Uygulamanın gerektirdiği eşitleme davranışıyla eşleştirin.
Bir testi garantili plan hızı olarak yayımlayabilir miyim?+
Hayır. Koşullarını ve kapsamını yayımlayın. Tek bir çalıştırmadan ölçülen sonuç, hizmet düzeyi veya gelecekteki performans garantisi değildir.
Kaynağa gidin.
Bu kaynaklar, bu kılavuzdaki teknik kavramları destekler. Bir üretim sistemini değiştirmeden önce güncel belgeleri izleyin.
- fio: Esnek G/Ç test aracı belgeleri fio.readthedocs.io
- NVM Express: Spesifikasyon genel bakış ve SSS nvmexpress.org
- Linux çekirdeği: Baskı Duraklama Bilgisi docs.kernel.org
SwissOctet tarafından editoryal rehberlik. Örnekler açıklayıcıdır. Hizmet spesifikasyonları, mevcut seçenekler ve sözleşme koşulları ayrıca doğrulanmalıdır.