部分瀏覽器連結navigate會一片空白問題解決方式
於navigate log中會出現connection timeout,前端瀏覽器是空白頁,部段的重新整理有機會可以看到頁面,但在整理又看不到。經判斷為OS層處理TCP 預設方式需要做調整。
調整方式為修改 /ect/sysctl.conf,加入以下內容
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fastopen = 3
fs.file-max = 5049800
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.netfilter.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
編輯完後執行sysctl -p
如出現錯誤信息如下
sysctl: cannot stat /proc/sys/net/netfilter/nf_conntrack_max: No such file or directory
可能是conntrack沒有加載
執行如下
lsmod |grep conntrack
如何返回是空的,沒有加載,那執行如下命令加載
modprobe ip_conntrack
再重新執行驗證
sysctl -p
sysctl設定說明可以參考以下資訊
參數名稱 | 設置值 | 參數說明 |
kernel.shmmax | 185757335552 | 表示單個共享內存段的最大值,以字節爲單位,此值一般爲物理內存的一半,不過大一點也沒關係,這裏設定的爲173G,即"185757335552/1024/1024/1024=173G" |
kernel.shmmni | 8092 | 表示單個共享內存段的最小值,一般爲4kB,即4096bit,也可適當調大,一般爲4096的2-3倍 |
kernel.shmall | 185757335552 | 表示可用共享內存的總量,單位是頁,一般此值與kernel.shmmax相等 |
kernel.sem | 1000 10240000 400 10240 | 該文件用於控制內核信號量,信號量是System VIPC用於進程間通訊的方法。 |
kernel.sysrq | 1 | 內核系統請求調試功能控制,0表示禁用,1表示啓用 |
kernel.core_uses_pid | 1 | 這有利於多線程調試,0表示禁用,1表示啓用 |
kernel.msgmnb | 65536 | 該文件指定一個消息隊列的最大長度(bytes)。缺省設置:16384 |
kernel.msgmax | 65536 | 該文件指定了從一個進程發送到另一個進程的消息的最大長度(bytes)。進程間的消息傳遞是在內核的內存中進行的,不會交換到磁盤上,所以如果增加該值,則將增加操作系統所使用的內存數量。缺省設置:8192 |
kernel.msgmni | 2048 | 該文件指定消息隊列標識的最大數目,即系統範圍內最大多少個消息隊列。 |
net.ipv4.tcp_syncookies | 1 | 表示開啓SYN Cookies,當SYN等待隊列溢出時,啓用cookies來處理,可以防範少量的SYN攻擊,默認爲0,表示關閉。1表示啓用 |
net.ipv4.ip_forward | 0 | 該文件表示是否打開IP轉發。0:禁止 1:轉發 缺省設置:0 |
net.ipv4.conf.default.accept_source_route | 0 | 是否允許源地址經過路由。0:禁止 1:打開 缺省設置:0 |
net.ipv4.tcp_tw_recycle | 1 | 允許將TIME_WAIT sockets快速回收以便利用。0表示禁用,1表示啓用 |
net.ipv4.tcp_max_syn_backlog | 4096 | 增加TCP SYN隊列長度,使系統可以處理更多的併發連接。一般爲4096,可以調大,必須是4096的倍數,建議是2-3倍 |
net.ipv4.conf.all.arp_filter | 1 | 表示控制具體應該由哪塊網卡來回應arp包,缺省設置0, 建議設置爲1 |
net.ipv4.ip_local_port_range | 1025 65535 | 指定端口範圍的一個配置,默認是32768 61000,可調整爲1025 65535 |
net.core.netdev_max_backlog | 10000 | 進入包的最大設備隊列.默認是1000,對重負載服務器而言,該值太低,可調整到16384/32768/65535 |
net.core.rmem_max | 2097152 | 最大socket讀buffer,可參考的優化值:1746400/3492800/6985600 |
net.core.wmem_max | 2097152 | 最大socket寫buffer,可參考的優化值:1746400/3492800/6985600 |
vm.overcommit_memory | 2 | Linux下overcommit有三種策略,0:啓發式策略,1:任何overcommit都會被接受。2:當系統分配的內存超過swap+N%*物理RAM(N%由vm.overcommit_ratio決定)時,會拒絕commit,一般設置爲2 |
vm.swappiness | 1 | 當物理內存超過設置的值是開始使用swap的內存空間,計算公式是100-1=99%表示物理內存使用到99%時開始交換分區使用 |
kernel.pid_max | 655360 | 用戶打開最大進程數,全局配置的參數 |