2012-04-16 12 views
8

क्या किसी निश्चित जावा प्रक्रिया की बैंडविड्थ को सीमित करने का कोई प्रभावी तरीका है?जावा प्रक्रिया के नेटवर्क बैंडविड्थ को सीमित करना

मैं रन टाइम

sudo trickle -s -d 1024 /path/to/app.sh 

पर एक निश्चित प्रक्रिया के बैंडविड्थ सीमित करने के लिए trickle तरह समाधान से परिचित हूँ लेकिन जब जावा के साथ काम प्रक्रियाओं यह एक चुनौती है क्योंकि आवेदन एक JVM या कुछ में शुरू की बनाता है एक WRAPPER सेवा जो JVM शुरू करती है - इसका मतलब है कि 'ट्रिकल' जैसे समाधान काम नहीं करेंगे।

मैं पूरी जावा प्रक्रिया (/usr/bin/java s.link के साथ लपेटकर/गड़बड़ करके) - UGLY के द्वारा कोशिश कर सकता हूं (trickle का उपयोग कर)। क्या कोई जावा प्रक्रिया (JVM) की बैंडविड्थ को सीमित करने के लिए बेहतर समाधान के बारे में जानता है?

धन्यवाद!

+2

जांचें कि यह किसी भी उपयोग का है http://stackoverflow.com/questions/3246345/making-a-reliable-web-service-unreliable-but-in-a-controlled-way/3247133#3247133 – Kennet

उत्तर

3

दुर्भाग्यवश मुझे नहीं लगता कि ट्रिकल ऐसा कर सकता है। मेरे पास एक ही समस्या है और मैंने इसे किसी विशेष पोर्ट पर थ्रॉटलिंग बैंडविड्थ के माध्यम से हल किया है। उदाहरण के लिए आप संवाद करने के लिए पोर्ट 34567 खोलते हैं, फिर आप फ़ायरवॉल सेटिंग लागू कर सकते हैं और इसे थ्रॉटल कर सकते हैं।

Mac पर मैं "ipfw" का उपयोग कर रहा है, उदाहरण के:

sudo ipfw pipe 1 config bw 5KByte/s 
sudo ipfw add 2 pipe 1 src-port 6666 

linux पर मैं "टीसी" उपयोग कर रहा हूँ, उदाहरण & स्रोत: http://www.cyberciti.biz/faq/linux-traffic-shaping-using-tc-to-control-http-traffic/

एक अंतिम समाधान के रूप में, आप पार्टी बना सकते हैं स्क्रिप्ट जो प्रक्रियाओं पर नज़र रखता है और आपको जिस चीज की आवश्यकता होती है उसे चुनौती देता है और उस पर पोर्ट थ्रॉटलिंग फेंकता है।

0

प्रश्न वास्तव में स्पष्ट नहीं है। क्या आपके पास जावा कोड का नियंत्रण है? अन्यथा, क्या आप सिस्टम प्रशासक हैं?

क्या आप सॉकेट प्रतिमान इस्तेमाल कर सकते हैं और उसके बाद निम्न विधि का उपयोग कर प्रत्येक सॉकेट कनेक्शन की सीमा एक जावा कोड का उपयोग कर रहे हैं: setPerformancePreferences (पूर्णांक connectionTime, पूर्णांक विलंबता, पूर्णांक बैंडविड्थ)। अन्य मामले में, बैंडविड्थ सीमा क्षमता ओएस और जावा अनुप्रयोगों के तरीके के आधार पर निर्भर करती है।

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