成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提高 Linux上socket 性能的技巧 動態優化 GNU/Linux TCP/IP 棧

運維 系統運維
如何提高Linux上socket的性能,從而加速網絡應用程序,你可以通過使用API來開發客戶機和服務器之間的應用程序。本文分節介紹了Linux上提高socket性能的技巧。

  本文內容包括Linux下對于 Sockets API 的使用、兩個可以提高性能的 socket 選項以及 GNU/Linux 優化。為了能夠開發性能卓越的應用程序,請遵循以下技巧:最小化報文傳輸的延時;最小化系統調用的負載;為 Bandwidth Delay Product 調節 TCP 窗口;動態優化 GNU/Linux TCP/IP 棧。

動態優化 GNU/Linux TCP/IP 棧:

  標準的 GNU/Linux 發行版試圖對各種部署情況都進行優化。這意味著標準的發行版可能并沒有對您的環境進行特殊的優化。

  解決方案

  GNU/Linux 提供了很多可調節的內核參數,您可以使用這些參數為您自己的用途對操作系統進行動態配置。下面我們來了解一下影響 socket 性能的一些更重要的選項。

  在 /proc 虛擬文件系統中存在一些可調節的內核參數。這個文件系統中的每個文件都表示一個或多個參數,它們可以通過 cat 工具進行讀取,或使用 echo 命令進行修改。清單 3 展示了如何查詢或啟用一個可調節的參數(在這種情況中,可以在 TCP/IP 棧中啟用 IP 轉發)。

  清單 3. 調優:在 TCP/IP 棧中啟用 IP 轉發

  1.   [root@camus]# cat /proc/sys/net/ipv4/ip_forward  
  2.  
  3.   0  
  4.  
  5.   [root@camus]# echo "1" > /poc/sys/net/ipv4/ip_forward  
  6.  
  7.   [root@camus]# cat /proc/sys/net/ipv4/ip_forward  
  8.  
  9.   1  
  10.  
  11.   [root@camus]# 

  表 1 給出了幾個可調節的參數,它們可以幫助您提高 Linux TCP/IP 棧的性能。

可調節的參數

默認值

選項說明

     

/proc/sys/net/core/rmem_default

   

"110592"

定義默認的接收窗口大小;對于更大的 BDP 來說,這個大小也應該更大。

/proc/sys/net/core/rmem_max

"110592"

定義接收窗口的***大小;對于更大的 BDP 來說,這個大小也應該更大。

/proc/sys/net/core/wmem_default

"110592"

定義默認的發送窗口大小;對于更大的 BDP 來說,這個大小也應該更大。

/proc/sys/net/core/wmem_max

"110592"

定義發送窗口的***大小;對于更大的 BDP 來說,這個大小也應該更大。

/proc/sys/net/ipv4/tcp_window_scaling

 
 

"1"

啟用 RFC 1323 定義的 window scaling;要支持超過 64KB 的窗口,必須啟用該值。

/proc/sys/net/ipv4/tcp_sack

"1"

啟用有選擇的應答(Selective Acknowledgment),這可以通過有選擇地應答亂序接收到的報文來提高性能(這樣可以讓發送者只發送丟失的報文段);(對于廣域網通信來說)這個選項應該啟用,但是這會增加對 CPU 的占用。

/proc/sys/net/ipv4/tcp_fack

"1"

啟用轉發應答(Forward Acknowledgment),這可以進行有選擇應答(SACK)從而減少擁塞情況的發生;這個選項也應該啟用。

/proc/sys/net/ipv4/tcp_timestamps

"1"

以一種比重發超時更精確的方法(請參閱 RFC 1323)來啟用對 RTT 的計算;為了實現更好的性能應該啟用這個選項。

/proc/sys/net/ipv4/tcp_mem

"24576 32768 49152"

確定 TCP 棧應該如何反映內存使用;每個值的單位都是內存頁(通常是 4KB)。***個值是內存使用的下限。第二個值是內存壓力模式開始對緩沖區使用應用壓力的上限。第三個值是內存上限。在這個層次上可以將報文丟棄,從而減少對內存的使用。對于較大的 BDP 可以增大這些值(但是要記住,其單位是內存頁,而不是字節)。

/proc/sys/net/ipv4/tcp_wmem

"4096 16384 131072"

為自動調優定義每個 socket 使用的內存。***個值是為 socket 的發送緩沖區分配的最少字節數。第二個值是默認值(該值會被 wmem_default 覆蓋),緩沖區在系統負載不重的情況下可以增長到這個值。第三個值是發送緩沖區空間的***字節數(該值會被 wmem_max 覆蓋)。

/proc/sys/net/ipv4/tcp_rmem

"4096 87380 174760"

tcp_wmem 類似,不過它表示的是為自動調優所使用的接收緩沖區的值。

/proc/sys/net/ipv4/tcp_low_latency

"0"

允許 TCP/IP 棧適應在高吞吐量情況下低延時的情況;這個選項應該禁用。

   與任何調優努力一樣,***的方法實際上就是不斷進行實驗。您的應用程序的行為、處理器的速度以及可用內存的多少都會影響到這些參數影響性能的方式。在某些情況中,您認為有益的操作可能恰恰是有害的(反之亦然)。因此,我們需要逐一試驗各個選項,然后檢查每個選項的結果。換而言之,我們需要相信自己的經驗,但是對每次修改都要進行驗證。

  提示:下面介紹一個有關***性配置的問題。注意,如果您重新啟動了 GNU/Linux 系統,那么您所需要的任何可調節的內核參數都會恢復成默認值。為了將您所設置的值作為這些參數的默認值,可以使用 /etc/sysctl.conf 在系統啟動時將這些參數配置成您所設置的值。

【編輯推薦】

  1. 2.1.3 Socket服務器
  2. TCP Socket之linux實現
  3. Linux操作系統下Socket編程地址結構介紹
  4. 16.5.4 socket編程實例(2)
  5. 16.5.4 socket編程實例(1)
責任編輯:zhaolei 來源: 網絡轉載
相關推薦

2011-01-18 11:50:51

Linuxsocket性能

2011-01-18 11:37:59

Linuxsocket性能

2011-01-18 10:35:02

Linuxsocket性能

2010-06-13 14:54:40

TCP IP協議棧linux

2024-10-18 09:05:42

2021-07-09 08:55:23

LinuxTCPIP

2010-01-22 11:06:03

GNUkFreeBSDLinux

2019-09-30 09:28:26

LinuxTCPIP

2010-01-21 11:19:44

TCP Socketlinux

2020-01-06 11:22:06

TCPLinux內核

2019-09-18 08:53:55

2017-02-05 17:33:59

前端優化Web性能

2013-08-16 10:31:55

2011-03-11 15:52:57

LAMP優化

2021-06-10 09:52:33

LinuxTCPAccept

2020-10-10 07:00:16

LinuxSocketTCP

2019-07-01 08:51:49

TCPIPLinux

2011-01-13 09:44:19

Linuxsudo技巧

2010-09-08 15:11:36

TCP IP協議棧

2019-10-22 08:41:09

TCPIPLinux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品视频在线 | 亚洲视频在线看 | 亚洲成人日韩 | 国产又色又爽又黄又免费 | 日韩视频在线免费观看 | 国产激情免费视频 | 日一区二区三区 | 午夜影视 | 日韩视频在线观看一区二区 | 日韩在线欧美 | 精品一区二区三区中文字幕 | 老司机久久 | 91在线看视频 | 日韩免费网站 | 久久人操| 国产一级一片免费播放 | 亚洲视频精品在线 | 久久69精品久久久久久国产越南 | 国产黄色大片 | xnxx 日本免费| 91精品国产综合久久福利软件 | 成人精品视频在线观看 | 亚洲欧洲精品在线 | 国产精品成人69xxx免费视频 | 99视频在线免费观看 | 五月婷婷在线视频 | 午夜精品一区二区三区在线视频 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 一区二区三区视频免费看 | 91在线免费视频 | 伊人久久综合 | 在线毛片网 | 亚洲精品一区二区二区 | 99热这里只有精品8 激情毛片 | 亚洲福利 | 一区二区三区在线 | 国产精品久久久久久影院8一贰佰 | 欧美激情一区二区三级高清视频 | 91精品一区二区三区久久久久 | 中文字幕高清av | 日韩一区精品 |