मेरे पास मेरे मिंट/डेबियन बॉक्स पर कॉच डीबी का सुंदर सीधा सेटअप है। मेरा जावा वेबपैच कॉच डीबी से पूछताछ करने में काफी देरी कर रहा था, इसलिए मैंने कारणों की तलाश शुरू कर दी।कॉच डीबी/मोचीवेब: लगातार कनेक्शन का नकारात्मक प्रभाव
EDIT: क्वेरी पैटर्न बहुत छोटे प्रश्न और छोटे JSON ऑब्जेक्ट्स (जैसे 300 बाइट्स ऊपर/1 किलोबाइट नीचे) है।
वायरशर्क डंप बहुत अच्छे हैं, जो अधिकतर 3-5 मिलिस अनुरोध-प्रतिक्रिया टर्नअराउंड दिखाते हैं। जेवीएम फ्रेम नमूना ने मुझे दिखाया कि सॉकेट कोड (सोफे के लिए क्लाइंट साइड प्रश्न) कुछ हद तक व्यस्त है, लेकिन कुछ भी उल्लेखनीय नहीं है। फिर मैंने अपाचेबेन्च और ओप्स के साथ इसे प्रोफाइल करने की कोशिश की: मैं वर्तमान में देखता हूं कि जीवित रहने वाले गैर-लगातार सेटअप पर अतिरिक्त अतिरिक्त 3 9 एमएमएस देरी पेश करते हैं।
क्या कोई यह जानता है कि इसे कैसे समझाया जाए? हो सकता है कि लगातार कनेक्शन टीसीपी परत पर भीड़ खिड़की को बढ़ाएं और फिर टीसीपी_डब्ल्यूआईटी और छोटे अनुरोध/प्रतिक्रिया आकार, या ऐसा कुछ होने के कारण बाहर निकल रहे हैं? क्या यह विकल्प (TCP_WAIT) को कभी भी लूपबैक टीसीपी कनेक्शन के लिए चालू किया जाना चाहिए?
[email protected] ~ $ uname -a
Linux mint 2.6.39-2-486 #1 Tue Jul 5 02:52:23 UTC 2011 i686 GNU/Linux
[email protected] ~ $ curl http://127.0.0.1:5984/
{"couchdb":"Welcome","version":"1.1.1"}
अनुरोध
[email protected] ~ $ ab -n 1024 -c 1 -k http://127.0.0.1:5984/
>>>snip
Server Software: CouchDB/1.1.1
Server Hostname: 127.0.0.1
Server Port: 5984
Document Path: /
Document Length: 40 bytes
Concurrency Level: 1
Time taken for tests: 41.001 seconds
Complete requests: 1024
Failed requests: 0
Write errors: 0
Keep-Alive requests: 1024
Total transferred: 261120 bytes
HTML transferred: 40960 bytes
Requests per second: 24.98 [#/sec] (mean)
Time per request: 40.040 [ms] (mean)
Time per request: 40.040 [ms] (mean, across all concurrent requests)
Transfer rate: 6.22 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1 40 1.4 40 48
Waiting: 0 1 0.7 1 8
Total: 1 40 1.3 40 48
Percentage of the requests served within a certain time (ms)
50% 40
>>>snip
95% 40
98% 41
99% 44
100% 48 (longest request)
नहीं keepalive प्रति जिंदा, औसत 40 मिली सेकंड के रखने के लिए, और देखा के साथ चल रहा है - अनुरोध के अनुसार 1 एमएस, ज्यादातर।
[email protected] ~ $ ab -n 1024 -c 1 http://127.0.0.1:5984/
>>>snip
Time taken for tests: 1.080 seconds
Complete requests: 1024
Failed requests: 0
Write errors: 0
Total transferred: 236544 bytes
HTML transferred: 40960 bytes
Requests per second: 948.15 [#/sec] (mean)
Time per request: 1.055 [ms] (mean)
Time per request: 1.055 [ms] (mean, across all concurrent requests)
Transfer rate: 213.89 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1 1 1.0 1 11
Waiting: 1 1 0.9 1 11
Total: 1 1 1.0 1 11
Percentage of the requests served within a certain time (ms)
50% 1
>>>snip
80% 1
90% 2
95% 3
98% 5
99% 6
100% 11 (longest request)
ठीक है, अब जीवित रहने के साथ ही http शीर्षलेख के माध्यम से कनेक्शन को बंद करने के लिए भी कहें। प्रति अनुरोध या तो 1 एमएस भी।
[email protected] ~ $ ab -n 1024 -c 1 -k -H 'Connection: close' http://127.0.0.1:5984/
>>>snip
Time taken for tests: 1.131 seconds
Complete requests: 1024
Failed requests: 0
Write errors: 0
Keep-Alive requests: 0
Total transferred: 236544 bytes
HTML transferred: 40960 bytes
Requests per second: 905.03 [#/sec] (mean)
Time per request: 1.105 [ms] (mean)
Time per request: 1.105 [ms] (mean, across all concurrent requests)
Transfer rate: 204.16 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1 1 1.2 1 14
Waiting: 0 1 1.1 1 13
Total: 1 1 1.2 1 14
Percentage of the requests served within a certain time (ms)
50% 1
>>>snip
80% 1
90% 2
95% 3
98% 6
99% 7
100% 14 (longest request)
निम्नलिखित के लिए धन्यवाद। मैंने तुरंत 'नोडेले' के बारे में सोचा लेकिन मुझे यकीन नहीं था कि यह सही था या इसकी पुष्टि कैसे करें। – JasonSmith