2011-03-23 42 views
1

在我的基於局域網的應用程序中,增加發送和接收緩衝區對性能有很大影響。在Linux中增加SO_RSVBUF超過262142字節

在Linux下,我可以將發送和接收緩衝區增加到262142字節。

是否有可能繞過此限制而不進行內核更改? 我正在使用ubuntu服務器,如果我編譯自定義內核,我擔心如果應用更新,我會發生更改。當機器啓動時,我可以在shell腳本中以某種方式設置限制嗎?

編輯:我忘了指出我正在使用UDP。

+0

cat/proc/sys/net/core/rmem_max? – Damon 2011-03-23 21:26:12

回答

0

有關如何使用/etc/sysctl.conf/etc/sysctl.d/配置改變net.core.rmem_maxnet.core.rmem_default詳見sysctl.conf(5)

+0

感謝這有所作爲。但是,奇怪的是使用setsockopt我沒有得到我所要求的,現在我得到了一個更大的緩衝區。這是一個錯誤?我將它設置爲1048576,然後用getsockopt檢查它返回緩衝區現在是2097150? – Matt 2011-03-23 21:47:42

+0

還發現man udp和man tcp提供了一些細節。 – Matt 2011-03-23 22:03:54

+0

嘿,任何運氣與巨大的套接字緩衝區?我還沒有聽說過內核在大小上有如此大的差異;對於快速調整的內部數據結構來說,一些小的內容是有意義的,但是要求的大小翻倍似乎很奇怪。 :) – sarnold 2011-03-23 23:53:43