Veritabanı performansını ölçmek için?

4 Cevap php

Ben erişmek ve bir MySQL veritabanı içinde büyük miktarda veri, bir sözlük / eş anlamlılar gibi bir şey ile çalışacak bir web uygulaması geliştiriyorum. Ben onun büyüklüğü arttıkça DB performansını test etmek gerekir, bu yüzden ben her isteği gelecekte nasıl olacağını yavaş biliyorum.

Herhangi bir fikir? Gibi belirli bir sorgu, vb DB performansını denetlemek için özel araçlar var?

4 Cevap

Sen query profiler MySQL performansları veri miktarının etkisini ölçmek için Maatkit 'nin kullanabilirsiniz.

Ve generatedata.com sizin app test için gereken verileri oluşturmak.

Ayrıca HTTP test araçlarını gibi kullanarak uygulama yanıt test edebilirsiniz:

Özellikle ne, test biliyor musun? Eğer istediğiniz tam olarak ne olduğunu bilmiyorsanız "performans" Ölçme, almsot her zaman işe yaramaz.

Örneğin, sorgu sonuç alma düşük gecikme arıyorsun? Tarih alma, belki yüksek verim? Belki hızlı sorgu sonuçları hakkında veritabanına hızlı eklemeler hakkında daha fazla ve daha az bakım? Belki de (aslında, neredeyse her durumda) farklı masalarda farklı şeyler umurumda.

Benim tavsiyem muhtemelen göz ardı edilecektir, ama ben yine de söyleyeceğim:

Eğer ne istediğinizi biliyorsanız önce Don't optimize.

Eğer kod yazmak gibi Don't optimize.

Eğer veritabanı optimize etrafında olsun yaptığınızda, doğru şeyler için optimize emin olun. Gerçekçi verileri kullanın - Metnin sözlük ölçekli hunks test ediyorsanız, (örneğin) ikili veri ile test yok.

Her neyse, ben muhtemelen bir daha teknik bir cevap aradılar farkında, ama hey ...

kullanmak için iyi bir araçtır apache httpd sunucusu ile birlikte standart olarak gelen apache ab vardır. Bu araç, bir web sunucusu ve kriter performans için birden fazla bağlantı yapabilirsiniz. kundakçı ne sipariş vb her öğe yüklemek için ne kadar uzun şeyler lod, görmek için iyi bir yol ise, sadece bir kullanıcı deneyimini görüyoruz. yüksüz bir test sunucusu karşı, bu bilgi sadece bugüne kadar götürebilir. ab bağlanan birden kullanıcıları taklit ve belirli bir sayfa eşzamanlı kullanıcıyı nasıl işleyeceğini daha gerçekçi bir görüntü verecektir.

bana hangi ab bir sınırlama yol açar: bu sadece bir URL sınar. i test etmek istediğiniz önceden tanımlanmış URL bir listeden rastgele bir seçim yapar basit bir test web sayfası kadar kırbaçlanan tarafından genellikle bu çevrede olsun. böylece giriş sayfası, bir arama sonucu, bir yorum göndererek, ve örneğin:. ab test sayfasını vurur ve test sayfası sadece deneme URL (muhtemelen bir randomize Paramtre ile) birini çağırır ve o sayfayı döndürür. Bu şekilde, sizin tüm site eşzamanlı kullanıcıyı nasıl işleyeceğini daha iyi bir fikir olsun.

PS: OS çözümsüz. Eğer uygulama nasıl yazıldığını dayalı kendinizi anlamaya gerekecek, vb veri düzeni, web sunucusunun configuraiton ve veritabanı sunucusu,