在我的基於局域網的應用程序中,增加發送和接收緩衝區對性能有很大影響。在Linux中增加SO_RSVBUF超過262142字節
在Linux下,我可以將發送和接收緩衝區增加到262142字節。
是否有可能繞過此限制而不進行內核更改? 我正在使用ubuntu服務器,如果我編譯自定義內核,我擔心如果應用更新,我會發生更改。當機器啓動時,我可以在shell腳本中以某種方式設置限制嗎?
編輯:我忘了指出我正在使用UDP。
在我的基於局域網的應用程序中,增加發送和接收緩衝區對性能有很大影響。在Linux中增加SO_RSVBUF超過262142字節
在Linux下,我可以將發送和接收緩衝區增加到262142字節。
是否有可能繞過此限制而不進行內核更改? 我正在使用ubuntu服務器,如果我編譯自定義內核,我擔心如果應用更新,我會發生更改。當機器啓動時,我可以在shell腳本中以某種方式設置限制嗎?
編輯:我忘了指出我正在使用UDP。
有關如何使用/etc/sysctl.conf
和/etc/sysctl.d/
配置改變net.core.rmem_max
和net.core.rmem_default
詳見sysctl.conf(5)
。
感謝這有所作爲。但是,奇怪的是使用setsockopt我沒有得到我所要求的,現在我得到了一個更大的緩衝區。這是一個錯誤?我將它設置爲1048576,然後用getsockopt檢查它返回緩衝區現在是2097150? – Matt 2011-03-23 21:47:42
還發現man udp和man tcp提供了一些細節。 – Matt 2011-03-23 22:03:54
嘿,任何運氣與巨大的套接字緩衝區?我還沒有聽說過內核在大小上有如此大的差異;對於快速調整的內部數據結構來說,一些小的內容是有意義的,但是要求的大小翻倍似乎很奇怪。 :) – sarnold 2011-03-23 23:53:43
cat/proc/sys/net/core/rmem_max? – Damon 2011-03-23 21:26:12