Yazılım ölçeklenebilirliği nasıl ölçülür?


21

Özel uygulama ölçeklenebilirliği hakkında bazı küçük teknik sunumlar yapmam istendi. Uygulama Java, Bahar MVC, Hibernate kullanılarak geliştirilmiştir. Uygulama kaynak koduna erişimim var.

Yazılım ölçeklenebilirliğini nasıl ölçebilirim (kaynakları kullanarak) ve yazılım ölçeklenebilirliğini ölçerken hangi ölçümlere dikkat etmem gerekir?

Yanıtlar:


8

Konuyla ilgili Wikipedia makalesini okumaya başlardım .

Kısacası, ölçeklenebilirlik, daha fazla kaynak ekleyerek sistem performansının nasıl arttığını veya alternatif olarak, kaynak kullanımının artan yükle nasıl büyüdüğünü göstermektedir . Örneğin, siteniz yanıt süresi 0,3 saniyenin üzerine çıkana kadar eş zamanlı olarak kaç kullanıcı yönetebilir? Aynı soruyu kullandıktan sonra kullanılabilir RAM / disk / CPU / etc. Muhtemelen hangi parametrelerin kontrol edilmeye değer olduğuna karar vermek için uygulama içindekiler hakkındaki bilginizi kullanabilirsiniz.

Bir sunucu makinesi ve bir veya daha fazla istemci makinesi ile bir test tezgahı kurun. Sunucuya sunulan kaynak miktarını sınırlamak için bazı araçlar kullanın (örn. ulimit) Veya sunucuda bazı enterferans uygulamalarını çalıştırın. Sunucunun müşteri istekleriyle nasıl ilgilendiğini ölçün. Yukarıdaki kademeli olarak artan / azalan girişim yükü / mevcut kaynakları azaltın. Sonunda içinde noktalar olan n boyutlu bir boşluk elde edersiniz. Diğerlerini bazı tipik değerlerde (veya birkaç değerde) sabitlerken bir seferde yalnızca bir parametreyi değiştirmek daha kolay olabilir. Bu durumda, sonucu bir eksende sunucu performansı (örneğin, kullanıcı / istek sayısı) ve diğer yandan kaynak kullanımı / kullanılabilirliği ile birlikte 2B grafikler olarak temsil edebilirsiniz.

Uygulamanızın uygulamanın bir kısmı için birkaç sunucu kullandığı ve bunların miktarını ve oranlarını değiştirebileceğiniz daha karmaşık senaryolar vardır, ancak sanırım bu sizin durumunuz değil. En önemlisi, eğer muhtemelen önemliyse, iş parçacığı / işlem sayısını değiştirmek isteyebilirsiniz.

Uygulamanın tamamını ölçüyorsanız, genellikle kaynak kod erişimine ihtiyacınız yoktur. Ancak, kodun belirli bir bölümünü ölçmede ilginç olabilirsiniz (örneğin, yalnızca DB veya UI). Ardından, kaynak kodunu yalnızca ölçümler için bu modülü ortaya çıkarmak ve testlerinizi çalıştırmak için kullanabilirsiniz. Buna bir mikroböcek noktası denir .

Örnekler arıyorsanız, akademik makalelerden birçoğu var. Performans değerlendirmesi + tercih ettiğiniz terimler için google aliminde arama yapın.


1

Ölçeklenebilirlik, gerçek uygulamalar için gerçekten ölçülebilir bir özellik değildir.

Pratik açıdan, ölçeklenebilirlik, çeşitli boyutlarda artan iş yüklerini destekleyebilmektir.

Uygulamaya başlamak, mevcut donanım kaynaklarıyla artan iş yüklerini destekleyecektir. Ancak sınırlara çarptığınız çeşitli noktalar var; örneğin, hafıza miktarı, çekirdek sayısı, veri yapılarında çekişme, veri tabanı performansı vb. Bu sınırlardan birine her ulaştığınızda, artan iş yüklerini desteklemek için farklı bir yaklaşım izlemelisiniz. Ölçeklenebilirlik, aşılmaz bir sınıra ulaşmadan önce iş yükünü ne kadar uzun süre tutabileceğiniz veya büyük bir yeniden tasarım yapmanız gerekmesiyle ilgilidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.