लिनक्स यूडीपी का अधिकतम आकार बफर प्राप्त करता है? मैंने सोचा कि यह केवल उपलब्ध रैम द्वारा सीमित है, लेकिन जब मैं rmem_max के लिएलिनक्स यूडीपी अधिकतम आकार प्राप्त बफर
5GB सेट:
gen_udp:listen(Port, [{recbuf, 4000000000}])
जब मैं उपाय: वास्तविक सॉकेट बफर (Erlang में) के लिए
echo 5000000000 > /proc/sys/net/core/rmem_max
और 4GB बफर उपयोग, यह दिखाता है:
# netstat -u6anp | grep 5050
udp6 1409995136 0 :::5050 :::* 13483/beam.smp
मैं इस 1.4 जीबी से अधिक नहीं हो सकता। छोटे बफर आकारों के लिए, उदा। 500 एमबी, वास्तविक बफर आकार कॉन्फ़िगर किए गए मान से मेल खाता है। मेरा सिस्टम डेबियन 6.0 है, मशीन में 50 जीबी रैम उपलब्ध है।
कहां कहता है कि यह केवल उपलब्ध रैम द्वारा ही सीमित है? और आपको क्यों लगता है कि आपको 4 जीबी बफर चाहिए? – EJP
यह नहीं करता है। यह नहीं कहता कि यह किसी भी अन्य तरीके से सीमित है। मुझे लंबे समय तक नेटवर्क यातायात की चोटी के दौरान डेटा हानि से बचने के लिए ऐसे बफर की आवश्यकता है। इसके विपरीत –
। यह कहता है कि कर्नेल आपके द्वारा ऊपर या नीचे दिए गए मूल्य को समायोजित कर सकता है, और आपको यह देखने के लिए 'getockopt()' को कॉल करने की सलाह देता है कि वास्तव में कौन सा मूल्य आवंटित किया गया था। मुझे विश्वास करना मुश्किल लगता है कि आपको ट्रैफिक चोटियों को संभालने के लिए 4 जीबी की जरूरत है। शायद आपको बस तेज़ी से पढ़ना चाहिए। – EJP