[Apache] अब लोड परीक्षण


Answers

कृपया इसे समझने के लिए मुझे चलने वाले आदेशों के माध्यम से चलें।

सबसे सरल परीक्षण आप कर सकते हैं 1000 अनुरोध करने के लिए, एक समय में 10 (जो लगभग 10 समवर्ती उपयोगकर्ताओं को प्रत्येक 100 पृष्ठों को अनुक्रमित करता है - परीक्षण की लंबाई से अधिक)।

ab -n 1000 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/

-n 1000 बनाने के अनुरोधों की संख्या है।

-c 10 समवर्ती आगंतुकों (बनाम अनुक्रमिक आगंतुकों) को बेहतर अनुकरण करने के लिए, एक समय में 1 अनुरोध के बजाय, एक समय में 10 अनुरोध करने के लिए एबी को बताता है।

-k KeepAlive शीर्षलेख भेजता है, जो वेब सर्वर से प्रत्येक अनुरोध के बाद कनेक्शन बंद नहीं करने के लिए कहता है, लेकिन इसके बजाय इसे पुन: उपयोग करना जारी रखें।

मैं अतिरिक्त हेडर Accept-Encoding: gzip, deflate रहा हूं Accept-Encoding: gzip, deflate क्योंकि mod_deflate लगभग हमेशा टेक्स्ट / एचटीएमएल आउटपुट को संपीड़ित करने के लिए उपयोग किया जाता है 25% -75% - जिसके प्रभाव को समग्र प्रदर्शन पर इसके प्रभाव के कारण खारिज नहीं किया जाना चाहिए वेब सर्वर का (यानी, 2x डेटा को उसी समय में स्थानांतरित कर सकता है, आदि)।

परिणाम:

Benchmarking www.example.com (be patient)
Completed 100 requests
...
Finished 1000 requests


Server Software:        Apache/2.4.10
Server Hostname:        www.example.com
Server Port:            80

Document Path:          /
Document Length:        428 bytes

Concurrency Level:      10
Time taken for tests:   1.420 seconds
Complete requests:      1000
Failed requests:        0
Keep-Alive requests:    995
Total transferred:      723778 bytes
HTML transferred:       428000 bytes
Requests per second:    704.23 [#/sec] (mean)
Time per request:       14.200 [ms] (mean)
Time per request:       1.420 [ms] (mean, across all concurrent requests)
Transfer rate:          497.76 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:     5   14   7.5     12      77
Waiting:        5   14   7.5     12      77
Total:          5   14   7.5     12      77

Percentage of the requests served within a certain time (ms)
  50%     12
  66%     14
  75%     15
  80%     16
  90%     24
  95%     29
  98%     36
  99%     41
 100%     77 (longest request)

सबसे सरल व्याख्या के लिए, सबकुछ अनदेखा करें लेकिन इस पंक्ति को:

Requests per second:    704.23 [#/sec] (mean)

60 से गुणा करें, और आपके पास प्रति मिनट आपके अनुरोध हैं।

वास्तविक दुनिया के परिणाम प्राप्त करने के लिए, आप कुछ स्थैतिक HTML या index.php फ़ाइल के बजाय वर्डप्रेस का परीक्षण करना चाहेंगे क्योंकि आपको यह जानने की आवश्यकता है कि सबकुछ एक साथ कैसे कार्य करता है: जटिल PHP कोड और एकाधिक MySQL क्वेरीज़ सहित ...

उदाहरण के लिए यहां एक ही सिस्टम और WAMP पर्यावरण पर वर्डप्रेस के ताजा इंस्टॉल का परीक्षण करने का परिणाम है (मैं वैंप डेवलपर का उपयोग कर रहा हूं, लेकिन Xampp, WampServer और अन्य भी हैं) ...

Requests per second:    18.68 [#/sec] (mean)

यह 37x धीमा है!

लोड टेस्ट के बाद, कुल प्रदर्शन (प्रति सेकंड अनुरोध) को बेहतर बनाने के लिए आप कई चीजें कर सकते हैं, और वेब सर्वर को अधिक लोड के तहत अधिक स्थिर बना सकते हैं (उदाहरण के लिए, -n और the -c को क्रैश करना पड़ता है अपाचे), कि आप यहां के बारे में पढ़ सकते हैं:

एबी (अपाचे बेंच) के साथ लोड टेस्टिंग अपाचे

Question

क्या कोई मुझे अपाचे बेंच टूल ( ab ) का उपयोग करके अपनी वेबसाइट का परीक्षण कैसे लोड कर सकता है इस प्रक्रिया के माध्यम से मुझे चल सकता है?

मैं निम्नलिखित जानना चाहता हूं:

साइट प्रति मिनट कितने लोग संभाल सकते हैं?

कृपया इसे समझने के लिए मुझे चलने वाले आदेशों के माध्यम से चलें।

मैंने हर ट्यूटोरियल की कोशिश की, और वे उलझन में हैं।




बस एबी का उपयोग कर अपने एपीआई का परीक्षण लोड पर्याप्त नहीं है। हालांकि, मुझे लगता है कि यह एक अच्छा विचार है कि आपको एक मूल विचार दें कि आपकी साइट कैसा प्रदर्शन करती है।

यदि आप विभिन्न एपीआई एंडपॉइंट्स का परीक्षण करने के लिए एबी कमांड का उपयोग करना चाहते हैं, तो अलग-अलग डेटा के साथ, पृष्ठभूमि में एक ही समय में, आपको "नोहुप" कमांड का उपयोग करने की आवश्यकता है। जब आप टर्मिनल बंद करते हैं तब भी यह कोई भी आदेश चलाता है।

मैंने एक साधारण स्क्रिप्ट लिखी है जो पूरी प्रक्रिया को स्वचालित करती है, इसका उपयोग करने में http://blog.ikvasnica.com/entry/load-test-multiple-api-endpoints-concurrently-use-this-simple-shell-script न करें: http://blog.ikvasnica.com/entry/load-test-multiple-api-endpoints-concurrently-use-this-simple-shell-script स्क्रिप्ट