ipv4指令優化以及Invalid argument錯誤解析

 ipv4指令優化以及Invalid argument錯誤解析linux

2017年08月11日 11:34:05nginx

閱讀數:399網絡

爲了使nginx中ipv4優化參數長久生效,能夠將參數設置追加到/etc/sysctl.conf文件中。併發

net.core.netdev_max_backlog參數

net.core.netdev_max_backlog = 262144
  • 1

用於設置內核沒法及時處理網絡接口收到的數據包時容許發送到隊列的最大數據包數目,默認爲128(不一樣linux系統會存在差別)。tcp

net.core.somaxconn參數

net.core.somaxconn = 262144
  • 1

用於設置系統同時發起的TCP鏈接數,數值較小時,沒法應付高併發情形,致使鏈接超時、重傳等問題。函數

net.ipv4.tcp_max_orphans參數

net.ipv4.tcp_max_orphans = 262144
  • 1

用於設置最多容許多少TCP套接字不被關聯到用戶文件句柄。一旦超過該數值,沒有關聯到文件句柄的TCP套接字將會被複位,同時給出警告信息。在系統內存充足的狀況下可增大該值。高併發

net.ipv4.tcp_max_syn_backlog參數

net.ipv4.tcp_max_syn_backlog = 262144
  • 1

用於設置還沒有收到客戶端確認信息的鏈接請求的最大值,在系統內存充足的狀況下可增大該值。大數據

net.ipv4.tcp_timestamps參數

net.ipv4.tcp_timestamps = 0
  • 1

用於設置時間戳,賦值爲0意味着禁用TCP時間戳的支持。優化

net.ipv4.tcp_synack_retries參數

net.ipv4.tcp_synack_retries = 1
  • 1

用於設置內核放棄TCP鏈接以前向客戶端發送SYN+ACK包的數量,設置的是TCP三次握手中的第二次握手,通常設置爲1.spa

net.ipv4.tcp_syn_retries參數

net.ipv4.tcp_syn_retries = 1
  • 1

與net.ipv4.tcp_synack_retries參數相似,用於設置內核放棄TCP鏈接以前向客戶端發送SYN包的數量。

更新生效

/sbin/sysctl -p
  • 1

使用上述指令,將會是/etc/sysctl.conf中的修改生效。不過此時會提示一個問題:「sysctl: setting key ‘net.core.somaxconn’: 無效的參數」,產生這個錯誤的緣由在於net.core.somaxconn參數的值在inet_listen()函數中設置爲不該該超過USHRT_MAX,即65535,而上述配置中使用的262144遠遠超過了上限,於是提示問題,解決方法以下:

net.core.somaxconn = 65535
  • 1

指令生效後,會提示以下信息:

root@**-VirtualBox:/home# /sbin/sysctl -p
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 65535
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
相關文章
相關標籤/搜索