2016-05-18 21 views
9

Sadece uygulamam karşı bir yük testi çalıştırdım. İki özdeş istek için gecikme bazı çok büyük değişkenlik fark ettim: 3 s vs 30 s. izleriniApp Engine isteklerinde Yüksek Olmayan Zamanın yüksek değişkenliğine neden olabilir?

|      | Traced (ms) | Untraced (ms) | 
|----------------------+-------------+---------------| 
| High-latency Request |   193 |   29948 | 
| Low-latency Request |   305 |   2934 | 
İşte

olan ekran görüntüleri: Ben izleri kazıldı zaman aşağıdaki buldum

Düşük genel gecikmeyi

Low-latency Request

Yüksek genel gecikme

Çalışma zamanı performansında 10 ile 1 arasındaki farkı anlamıyorum.

Bu yüksek gecikme isteklerini yalnızca yük altında görüyorum. Kodumda bu değişkenliği hesaba katan bir şey olabilir (kod aracılığıyla aynı yolun her iki istek için de izlendiğini varsayarak)?

+0

Hala bu sorunu görüyor musunuz? Aynı kod yolunun olduğundan emin misin? Söz konusu kod nedir? –

cevap

1

Deneyimlerime göre, olağanüstü derecede yüksek gecikmeler, yeni bir başlatmaya neden oluyor. https://groups.google.com/d/msg/google-appengine/MBveo1KSTyY/mkYdyCmfAgAJ

İki şeyi yapabileceğiniz:

  1. bu uygulama genel boyutunu azaltarak başlamak örneğini gereken süreyi azaltmak (kod, benzer sorunlar hakkındadır AppEngine Google Grubundaki bir tartışma yapıldı kütüphaneler, varlıklar) ve tembel başlatmaların yoğun kullanımı. Daha yüksek bir örnek sınıfının kullanılması da yardımcı olabilir (daha güçlü örneklerin daha hızlı önyükleme yapması)
  2. Ölçekleme seçeneklerinizi düzeltin: her zaman bir (veya iki) boşta bekleyen örnek var; bu nedenle, trafik tepe noktaları sırasında bir örneğin önyükleme için beklemenize gerek kalmadan

Bu yardımcı olur umarım. Benim durumumda, daha yüksek bir örnek sınıfı kullanmak zaten çok yardımcı oldu!

+0

IMHO, söz konusu istek için geçerliyse, iz, yeni çağrının başlatılmasından sonra (**) sonra, tüm çağrıların yapılacağı gibi, ~ 30s zaman çizelgesinin sonuna doğru "sıkıştırılmış" RPC çağrılarını gösterir. örnek etkilemeden etkilenenler, bu etki için bir bilgi günlüğü mesajı içerdikçe istek günlüklerinden bariz olur. Ancak iz RPC çağrıları dağıtım şekli, düşük gecikme durumunda olana çok benziyor, yani istek işlemesi sadece tekdüze yavaş ... –

0

Bu sorunu da yaşadım, google destekleri max_concurrent_requests'u düşürmeyi önerdi. O zamandaki hipotez, CPU kısıldı. Düştükten sonra, gecikme genel olarak daha iyi hale geldi. Neler olduğundan emin değildim çünkü uygulamanın bu kadar CPU kullanmasını beklemiyordum. Ne yazık ki, GPE üzerindeki CPU'yu, CPU yoğun bölümünün tam olarak nerede bulunduğunu işaret edecek bir araç yok

İlgili konular