2010-07-05 125 views
5

我正在使用JMeter運行一些負載測試,以瞭解我的應用程序在Google App Engine(Java)下的負載情況。Google App Engine - 在負載測試中的高負載下throttle_code = 4

當我打了大約100個虛擬用戶時,我的響應時間開始下降,並且我注意到GAE日誌文件中出現「throttle_code = 4」(見下文)。

有誰知道這意味着什麼?事實是,我正在從同一個IP發出多個請求來實現某種自動DDOS保護?

感謝

 
---- request with"throttle_code=4"; when connecting from JMeter 
07-05 05:11AM 58.917 /market/1234/history?pricebars=240 200 3651ms 19cpu_ms 35kb Java/1.5.0_16,gzip(gfe) 
75.101.226.4 - - [05/Jul/2010:05:12:02 -0700] "GET /market/1234/history?pricebars=240 HTTP/1.1" 200 35566 - "Java/1.5.0_16,gzip(gfe)" "ci-pricehistory.appspot.com" ms=3652 cpu_ms=19 api_cpu_ms=0 cpm_usd=0.004527 pending_ms=3570 throttle_code=4 
I 07-05 05:12AM 02.532 
uk.co.cityindex.CandleServlet fetch: Loading 240 bars from cache... 
I 07-05 05:12AM 02.558 
uk.co.cityindex.CandleServlet fetch: time:47 

---- request without "throttle" log; when connecting from browser 
07-05 06:28AM 10.993 /market/1234/history?pricebars=240 200 69ms 19cpu_ms 7kb Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4,gzip(gfe) 
80.169.172.178 - - [05/Jul/2010:06:28:11 -0700] "GET /market/1234/history?pricebars=240 HTTP/1.1" 200 7572 - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4,gzip(gfe)" "ci-pricehistory.appspot.com" ms=69 cpu_ms=19 api_cpu_ms=0 cpm_usd=0.001423 
I 07-05 06:28AM 11.031 
uk.co.cityindex.CandleServlet fetch: Loading 240 bars from cache... 
I 07-05 06:28AM 11.055 
uk.co.cityindex.CandleServlet fetch: time:45 

回答

3

見(顯然)谷歌官方的回答在這裏,雖然我不知道它完全回答了這個問題。

看起來您的請求需要3500毫秒。只要您保持平均毫秒數/請求1000毫秒或以下(我們建議800毫秒,最短400毫秒爲最佳),我們會自動調整服務您請求的實例數量。如果您運行很多長時間運行的請求,我們不會爲您啓動新的實例,並且會達到縮放上限。

http://osdir.com/ml/GoogleAppEngine/2010-07/msg00165.html

很顯然,他們油門根據您的工作效率,「但它看起來像你原來的請求是僅69ms。由於其他請求,您的應用的平均ms/req可能更高?這似乎是一個奇怪的戰術不旋轉起來,因爲你的應用程序很慢,如果你的應用程序很慢,因爲它還沒有離開...

我注意到的另一件事是,你通過JMeter的測試請求是35kb vs另一個請求的7kb - 測試負載下應用程序的數據是否增加?頭堆積了?