2010-02-05 13 views
7

से कनेक्शन की संख्या पता करें मेरे पास जावा/जावा ईई वेब एप्लिकेशन टॉमकैट सर्वर 5.5.17 पर तैनात है। मैं सर्वर से जुड़े क्लाइंट की संख्या जानना चाहता हूं। हम इसे कैसे ढूंढ सकते हैं?टॉमकैट सर्वर

+0

"कनेक्ट" से आपका क्या मतलब है? जब तक आप उन्हें "जीवित रखने" नहीं देते, HTTP कनेक्शन लगातार नहीं होते हैं। –

उत्तर

15

सबसे विश्वसनीय तरीका netstat में ip.addr.of.srv:port के लिए खोज करने के लिए होगा: नीचे प्रविष्टि मैं जोड़ा का एक उदाहरण है। यहाँ विंडोज आधारित उदाहरण है (क्षमा करें, कोई लिनक्स गुरु यहाँ;))

netstat -np tcp | find "12.34.56.78:80"

आईपी जहां बिलाव पर सुनता है और 80 बंदरगाह से जहां बिलाव पर सुनता द्वारा 12.34.56.78 बदलें।

यह वास्तव में प्रोग्रामिंग समस्या नहीं है, इसलिए मैंने इस प्रश्न को serverfault.com पर माइग्रेट करने के लिए वोट दिया।

+0

मैं अपाचे गेरोनिमो का उपयोग करता हूं और यह वेब कंसोल में वर्तमान व्यस्त थ्रेड (सत्र नहीं) की संख्या प्रदर्शित करता है, इसलिए यह प्रोग्राम करने योग्य है। आपके समाधान के लिए, आपके पास netstat -np tcp होना चाहिए "12.34.56.78:80" खोजें "स्थापित" ढूंढें ताकि आप गैर-स्थापित राज्यों जैसे FIN_WAIT, SYN_SENT, आदि शामिल न हों – ericp

+0

गिनती (धागे)! = गिनती (कनेक्शन)। थ्रेडपूल और/या धागे के अन्य उद्देश्यों के लिए उपयोग किए जा सकते हैं (डेमन्स, बैकग्राउंडटास्क, क्लीनअप इत्यादि)। आपके नेटस्टैट सुझावों के अनुसार, यह वास्तव में अधिक समझ में आता है। – BalusC

+5

मैंने सेंटोस में '' '' netstat -an के साथ इसे पूरा किया। grep: 80 | wc -l'''' जैसा कि इस आलेख में वर्णित है (https://www.exchangecore.com/blog/find-number-active-connections-linux-using-netstat/) – AntonioOtero

2

वेबपैप में सत्रों की गणना करने के उदाहरण के लिए Tomcat Manager के तहत अनुभाग देखें।

कनेक्शन की संख्या की गणना करना शायद थोड़ा कठिन है। टोमकैट अधिकतम "अधिकतम प्रोसेसर" तक आने वाले प्रत्येक अनुरोध के लिए एक नया धागा शुरू करता है। इस संख्या से परे, अनुरोध अधिकतम "स्वीकाउंट" तक कतारबद्ध हैं। इस संख्या से परे की मांगों को अस्वीकार कर दिया गया है (या क्रैश, मुझे यकीन नहीं है)। JConsole - steps here का उपयोग करके गुणों की निगरानी की जा सकती है। ऊपर वर्णित विशिष्ट गुण HTTP Connector के गुण हैं।

संपादित करें 1: कोयोटकनेक्टर और एजेपी कनेक्टर के स्रोत कोड को देखने के बाद, curProcessors नामक एक निजी संपत्ति है जो वर्तमान में उपयोग में प्रोसेसर की संख्या को ट्रैक करती है। हालांकि, कनेक्टर्स के लिए mbeans फ़ाइल में curProcessors चर जोड़ने को JConsole डिस्प्ले में वर्तमान मान प्रदर्शित नहीं होता है।
नोट: मैंने जो एमबीएन एक्सएमएल फ़ाइल संशोधित की है वह tomcat \ server \ lib \ catalina.jar में था और जार में संगठन \ apache \ catalina \ connector निर्देशिका में है।
<attribute name="curProcessors" description="the number of processors currently in use" type="int"/>

+0

क्या आप मुझे सत्रों और कनेक्शन की संख्या के बीच अंतर बता सकते हैं? मुझे लगता है कि मुझे टॉमकैट सर्वर से कनेक्शन की संख्या जानने की जरूरत है। – Thunderhashy

+1

मैं एपीआई दस्तावेज़ों से उद्धृत कर रहा हूं- सत्र - एक से अधिक पृष्ठ अनुरोध में उपयोगकर्ता की पहचान करने या किसी वेबसाइट पर जाने और उस उपयोगकर्ता के बारे में जानकारी संग्रहीत करने का एक तरीका प्रदान करता है। सत्र एक निर्दिष्ट समय अवधि के लिए जारी रहता है, एक से अधिक कनेक्शन या उपयोगकर्ता से पृष्ठ अनुरोध। मूल रूप से, उपयोगकर्ता के पास विभिन्न अनुरोधों के लिए 1 सत्र और एकाधिक कनेक्शन हो सकते हैं। या, यदि आप एक पृष्ठ पर विचार करते हैं जो AJAX अनुरोधों का उपयोग करके अलग-अलग अनुभाग लोड कर रहा है, तो प्रत्येक सेक्शन लोड करना उसी सत्र (यदि कोई हो) का उपयोग करते समय सर्वर से एक अलग कनेक्शन बनाएगा। – Thimmayya

2

और अगर आप क्या प्रत्येक कनेक्शन जा रहे कार्य की कल्पना करने की जरूरत है, लिनक्स पर इस का उपयोग

netstat -an | grep :8080 | awk '{print $6}' 

अगर वहाँ तीन कनेक्शन हैं, तो आप

सुनें देखेंगे TIME_WAIT TIME_WAIT

और यदि आप केवल कनेक्शन को गिनना चाहते हैं जो TIME_WAIT स्थिति

netstat -an | grep :8080 | grep TIME_WAIT | wc -l 
में हैं