2009-09-26 17 views
7

मैंने एक ऐसा एप्लीकेशन विकसित किया है जो बहुत सारे पीडीएफ बनाएगा और उन फाइलों की सेवा करेगा। (इसकी सामान्य सर्वलेट-बफरिंग सेवा)।मेरे आवेदन की स्केलेबिलिटी को कैसे जांचें

यह सुनिश्चित करने के लिए कि मेरा एप्लिकेशन एकाधिक अनुरोध के साथ कुशलतापूर्वक काम करता है? लोड/स्केलेबिलिटी/दक्षता का परीक्षण करने के लिए कोई उपकरण उपलब्ध है और वर्तमान कोड कॉन्फ़िगरेशन के साथ मेरे कोड को कितने समानांतर अनुरोध करता है?

उत्तर

1

एक लोड परीक्षक का उपयोग आप grinder या jmeter तरह लोड परीक्षण उपकरण का उपयोग कर विचार करना चाहिए कर सकते हैं। ग्राइंडर स्क्रिप्टिंग का समर्थन करता है जबकि जेएमटर आपको जूनिट को लोड टेस्ट क्लाइंट में बदल देता है। मैं व्यक्तिगत रूप से जूनिट समर्थन और इसके अच्छे गुई नियंत्रण और रिपोर्टिंग के कारण जेएमटर पसंद करता हूं। jmeter समर्थन http और साबुन बॉक्स से बाहर। इसके अतिरिक्त, आप अपनी कस्टम जरूरतों को पूरा करने के लिए अपने स्वयं के प्लगइन लिख सकते हैं।

1

मैं JMeter भी अनुशंसा करता हूं। आप जेएमटर टेस्ट (HTTP Proxy Server) बनाने के लिए अपने ब्राउज़र के पेज अनुरोधों को भी रिकॉर्ड कर सकते हैं।

1

आपके पास यह देखने के लिए निगरानी उपकरण भी होना चाहिए कि एप्लिकेशन लोड के तहत कैसे व्यवहार करता है।

एक अच्छी शुरुआत jvisualvm है जो नवीनतम सूर्य जेडीके में है।

1

सबसे आसान चीज जो आप कर सकते हैं वह है अपाचे बेंचमार्क जो संभवतः पहले से स्थापित है यदि आप यूनिक्स आधारित सिस्टम चला रहे हैं या विंडोज के लिए अपाचे वेबसर्वर 2.x के साथ आता है।

उदाहरण का उपयोग करें;

$ ab -n 1000 -c 20 http://www.google.com/ 

मुझे यह आउटपुट देता है;

This is ApacheBench, Version 2.3 <$Revision: 655654 $> 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
Licensed to The Apache Software Foundation, http://www.apache.org/ 

Benchmarking www.google.com (be patient) 
Completed 100 requests 
Completed 200 requests 
Completed 300 requests 
Completed 400 requests 
Completed 500 requests 
Completed 600 requests 
Completed 700 requests 
Completed 800 requests 
Completed 900 requests 
Completed 1000 requests 
Finished 1000 requests 


Server Software:  gws 
Server Hostname:  www.google.com 
Server Port:   80 

Document Path:  /
Document Length:  218 bytes 

Concurrency Level:  20 
Time taken for tests: 1.826 seconds 
Complete requests:  1000 
Failed requests:  0 
Write errors:   0 
Non-2xx responses:  1000 
Total transferred:  807000 bytes 
HTML transferred:  218000 bytes 
Requests per second: 547.55 [#/sec] (mean) 
Time per request:  36.527 [ms] (mean) 
Time per request:  1.826 [ms] (mean, across all concurrent requests) 
Transfer rate:   431.51 [Kbytes/sec] received 

Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  9 12 14.7  10  337 
Processing: 11 24 26.8  17  306 
Waiting:  11 22 21.1  16  297 
Total:   21 36 30.5  28  350 

Percentage of the requests served within a certain time (ms) 
    50%  28 
    66%  36 
    75%  39 
    80%  41 
    90%  45 
    95%  54 
    98%  93 
    99% 253 
100% 350 (longest request) 
0

Apachebench एक एकल थ्रेड टूल है। इसका मतलब है कि यह एक एसएमपी सर्वर (या तो म्यूट-थ्रेड या बहु-प्रक्रिया) को संतृप्त करने में सक्षम नहीं होगा।

आपको weighttp पर विचार करना चाहिए, जो एबी सिंटैक्स का उपयोग कर रहा है (केवल अंतर यह है कि 4 का मतलब 4-सेकेंड टेस्ट के बजाय 4 कार्यकर्ता धागे का उपयोग करना है)।

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