2009-02-23 13 views
179

अपने ही जिज्ञासा के लिए कुछ लोड परीक्षण करने के लिए, अपने सर्वर पर मैं भाग गया:लोड टेस्टिंग

ab -kc 50 -t 200 http://localhost/index.php 

यह 200 के लिए 50-रखें कनेक्शन को खोलता है सेकंड और बस index.php

के लिए अनुरोध के साथ अपने सर्वर ज़ोर से बंद

मेरे परिणाम में, मैं मिलता है:

Concurrency Level:  50 
Time taken for tests: 200.007 seconds 
Complete requests:  33106 
Failed requests:  32951 
    (Connect: 0, Receive: 0, Length: 32951, Exceptions: 0) 
Write errors:   0 
Keep-Alive requests: 0 
Total transferred:  1948268960 bytes 
HTML transferred:  1938001392 bytes 
Requests per second: 165.52 [#/sec] (mean) 
Time per request:  302.071 [ms] (mean) 
Time per request:  6.041 [ms] (mean, across all concurrent requests) 
Transfer rate:   9512.69 [Kbytes/sec] received 

नोट 32951 "विफल" अनुरोध। मैं इसे समझ नहीं सकता।

जैसे ही परीक्षण चल रहा था, मैं अपने वेब कंप्यूटर से पूरी तरह से अपनी वेबसाइट तक पहुंचने में सक्षम था, हालांकि पृष्ठ के निचले हिस्से में पृष्ठ लोड समय सामान्य के बजाय .5 के रूप में रिपोर्ट किया गया था .02। हालांकि मैंने कभी एक असफल अनुरोध नहीं किया था।

तो एबी रिपोर्ट क्यों कर रहा है कि कनेक्शन का आधा असफल हो जाता है? और उस संदर्भ में "लंबाई:" का क्या अर्थ है?

धन्यवाद

+0

क्या आपकी वेबसाइट में लोड बैलेंसर है? [ब्लॉग बैलेंसर्स के साथ लोड परीक्षण] पर मेरा ब्लॉग पोस्ट देखें (http://blog.browsermob.com/2009/02/tips-for-testing-with-load-balancers/) जो "यह मेरे लिए काम करता है" लोड परीक्षण में स्थिति। –

उत्तर

312

कभी नहीं। "लंबाई विफलता" केवल इंगित करती है कि लगभग आधा समय प्रतिक्रिया की लंबाई अलग थी।

चूंकि सामग्री गतिशील हैं, इसलिए शायद यह सत्र पहचानकर्ता या ऐसा कुछ है।

+6

अरे, मैं बस एक ही "समस्या" में भाग गया और मुझे खुशी है कि यह जवाब यहां था। Thanx! –

+1

मुझे भी! क्या वे इसे "विफलता" के अलावा कुछ नहीं कह सकते हैं !? – scotts

+2

उत्तर के लिए धन्यवाद, मुझे बिल्कुल वही संदेह था। – Saiyine

97

दूसरे शब्दों में समस्या का वर्णन करने के लिए:

अपाचे बेंच मार्किंग उपकरण (ab) मानता है कि प्रतिक्रिया सामग्री की लंबाई पूरे परीक्षण के दौरान ही हो जाएगा। यह पहली प्रतिक्रिया की सामग्री लंबाई स्टोर करता है। यदि किसी भी प्रतिक्रिया में अलग-अलग सामग्री की लंबाई होती है, तो परिणामस्वरूप "लंबाई विफलता" होती है।

अपाचे बग रिपोर्ट के बाद कि पुष्टि करने के लिए लगता है: ASF Bug 42040

सारांश: आप चर लंबाई की किसी भी सामग्री को परोस रहे हैं, तो आप शायद अब अनुरोध विफलताओं इस तरह की उपेक्षा करना चाहिए।

संपादित: मैं हाल ही में देखा है कि ab आदेश एक नया (कम से कम मेरे लिए) का विकल्प है:

-l Accept variable document length (use this for dynamic pages) 

मैं अब संस्करण में देख सकते हैं 2.3 < $ संशोधन: 1,528,965 $ > लेकिन इसे एबी संस्करण 2.3 < $ संशोधन में नहीं देख सकता है: 655654 $ >, इसलिए शायद यह अपेक्षाकृत हाल ही में जोड़ा गया था।

+2

विकल्प "-l" संकेत के लिए धन्यवाद! – gue

+3

किसी मैक पर किसी के लिए, संभावना है कि आपका संस्करण अब पीछे है और -एल नहीं लेगा। आप स्रोत से या होमब्री के माध्यम से स्थापित कर सकते हैं, लेकिन "ब्रू इंस्टॉल एबी" काम नहीं करता है क्योंकि यह अपाचे पैकेज का हिस्सा है - आप "ब्रू इंस्टॉल होमब्रू/अपाचे/एबी" के साथ इंस्टॉल कर सकते हैं। – netpoetica

5

एक पुराना प्रश्न पुन: स्थापित करने के लिए खेद है, लेकिन यह Google में पहली बार पॉप अप किया गया था। कभी-कभी एबी द्वारा रिपोर्ट की गई त्रुटि त्रुटि वास्तविक समस्या के कारण हो सकती है: यदि सामग्री-लंबाई शीर्षलेख में घोषित बाइट्स की कुल मात्रा क्लाइंट द्वारा प्राप्त नहीं की गई है, तो कनेक्शन सर्वर-साइड बंद है। ऐसा तब हो सकता है जब क्लाइंट और सर्वर के बीच अन्य पार्टियां हों, उदाहरण के लिए, बेवकूफ हैंडकार्ड लोड बैलेंसर्स (मेरा मामला)।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^