增大Linux的socket最大串連數

來源:互聯網
上載者:User

最近接的項目是類比多個socket 用戶端與伺服器進行通訊。由於Linux 系統的限制,在/usr/include/linux/posix_types.h檔案中有如下的宏定義:

#undef __FD_SETSIZE

#define __FD_SETSIZE 1024

這個宏是對最大檔案描述符的定義為1024。當需要1024個以上的fd時,例如select()函數就會偵聽出錯。因此需要將1024改成需要的數目,但最多不能超過65535。但僅僅修改這個是不夠的。

第二步就需要修改一個進程最大開啟的檔案數。其具體步驟是:

1、cd /usr/src/linux-2.4/include/linux

2、vi limits.h 編輯檔案:

#define NR_OPEN 90240 原值為1024

#define OPEN_MAX 10240 原值為1024

3、vi fs.h

#define INR_OPEN 10240 原值為1024

#define NR_FILE 65536 原值為8192,這個值為記憶體64/1M的比率計算,1G記憶體計算為:64*1024

#define NR_RESERVED_FILES 128 原值為10.

4、cd /usr/src/linux-2.4/include/net

5、vi tcp.h

#define TCP_LHTABLE_SIZE 128 原值為32.便於listen偵聽隊列,設大。

設定最大開啟檔案數與記憶體相關,太大系統會變慢。

第三步就是編譯核心,其具體步驟是:

1. make clean

2. make

3. make dep

4. make bzImage

將bzImage 匯入/boot 重啟系統即可!

用 1024個以上用戶端與伺服器進行串連,在伺服器的終端用netstat |wc 命令可以統計出當前建立的socket的串連數。

 

來自:http://www.360doc.com/content/10/0617/16/61151_33617404.shtml

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.