2015-06-27 15 views
5

Heroku'da Rails uygulamasında yük altında, Quill'in (New Relic tarafından bildirildiği gibi), CPU kullanımının% 100'ün çok altında olmasına ve bellek kullanımının önemli ölçüde artmasına rağmen, dramatik olarak arttığını görüyoruz. Dynos'un kapasitesi içinde.Heroku'daki Rails uygulaması için büyük istek bekleme süreleri

Bu noktada sorunları aramayı düşündüğüm yerler, kaynak çekişme (örneğin veritabanı bağlantıları) ve dış hizmetlerden gelen yanıtları beklemenin engellenmesidir.

Sorunu sıralamaya nasıl yaklaşacağınız konusunda yardım arıyorum. Başka nelerden bahsetmiş olabileceğinizden başka ne var? Verilere ulaşmak ve anlamlandırmak için hangi araçları kullanırsınız?

Önerileriniz için teşekkür ederiz.

+0

Ne tür bir etkinlik alıyorsunuz (eşzamanlı kullanıcılar)? Günlük dosyalarında herhangi bir hata var mı? – InbetweenWeekends

+0

Örneğin, günümüzde bir yük testi sırasında, 600 rpm'de 10 dakika boyunca çalışıyor (100 kullanıcı her 10 saniyede bir istekte bulunur), cpu kullanımı sadece% 52'ye ulaştı, istek bekletme istek başına 3260 ms'ye ulaştı ve toplamda 4000 ms'ye çıktı middleware, Ruby ve pg dahil olmak üzere istek. Cevapların 105'i 503 oldu. Bunlardan başka, günlüklerde hiçbir hata yoktu. – potter

+0

Bu çok belirsiz gelecektir, ancak herhangi bir sayı olabilir. Bildiğiniz gibi, 503'ler kötü sunucu özelliklerinden, çok fazla eşzamanlı bağlantıdan, uzun süren görevlerden gelebilir ... ama bunlar başlangıç ​​için bazı yerler. Sunucu platformunuzu belirtmediniz, ancak (kodla ilgili sorun olmadığını varsayarak) işletim sistemiyle ilgili sorunları aramaya başlamak isteyebilirsiniz. – InbetweenWeekends

cevap

0

WebBrick, Rails uygulamalarının varsayılanıdır ve kötü bağlantıları olan kullanıcılardan gelen tüm isteklerin, isteklerinizi karşıdan yükleme isteği yavaş olan kullanıcı için bekleyen kullanıcıların isteklerini sıraya sokması anlamına gelen tek bir iş parçacığı sunucudur. Puma veya Phusion Yolcu kullanmıyorsanız, muhtemelen bu sorunu görmeye devam edeceksiniz.

+0

Referans için bu bağlantıya bakın: https://www.speedshop.co/2015/07/29/scaling-ruby-apps-to-1000-rpm.html –

İlgili konular