tcp_mem अधिक महत्वपूर्ण है क्योंकि यह परिभाषित करता है कि मेमोरी उपयोग के लिए tcp स्टैक को कैसे व्यवहार करना चाहिए। IMO भेजने और प्राप्त करने वाला बफर tcp_mem का एक बहु होना चाहिए। यहाँ बफर प्राप्त करने के लिए एक सूत्र का लिंक दिया गया है: http://www.acc.umu.se/~maswan/linux-netperf.txt । संक्षेप में:
ओवरहेड है: विंडो / 2 ^ tcp_adv_win_scale (tcp_adv_win_scale डिफ़ॉल्ट 2 है) इसलिए रिसीव विंडो (tcp_rmem) के लिए लिनक्स डिफॉल्ट मापदंडों के लिए: 87380 - (87380/2 ^ 2) = 65536. एक ट्रांसअटलांटिक लिंक को देखते हुए (150 टीटी) अधिकतम प्रदर्शन यहां समाप्त होता है: 65536 / 0.150 = 436906 बाइट्स / s या लगभग 400 kbyte / s, जो आज वास्तव में धीमा है। बढ़े हुए डिफ़ॉल्ट आकार के साथ: (873800 - 873800/2 ^ 2) / 0.150 = 4369000 बाइट्स / s, या लगभग 4Mbytes / s, जो एक आधुनिक नेटवर्क के लिए प्रतिध्वनि है। और ध्यान दें कि यह डिफ़ॉल्ट है, अगर प्रेषक को एक बड़े विंडो आकार के साथ कॉन्फ़िगर किया गया है, तो यह खुशी से 10 गुना (8738000 * 0.75 / 0.150 = ~ 40Mbytes / s) तक स्केल करेगा, एक आधुनिक नेटवर्क के लिए बहुत अच्छा है।
यहाँ लेख tcp_mem के बारे में क्या कहता है:
आप जो निकालते हैं वह tcp प्रदर्शन की एक कृत्रिम सीमा है, उस सीमा के बिना आप उपलब्ध एंड-टू-एंड बैंडविड्थ और हानि से बंधे होते हैं। इसलिए आप अपने अपलिंक को अधिक प्रभावी ढंग से संतृप्त कर सकते हैं, लेकिन इसे संभालने में tcp अच्छा है।
IMO एक बड़ा मध्य tcp_mem मूल्य कम सुरक्षा के नुकसान पर कनेक्शन को गति देता है और मेमोरी यूसेज को थोड़ा बढ़ाता है।
आप नेटवर्क स्टैक की निगरानी कर सकते हैं:
grep skbuff /proc/slabinfo