部分瀏覽器連結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用於進程間通訊的方法。
建議設置:250 32000 100 128
第一列,表示每個信號集中的最大信號量數目。
第二列,表示系統範圍內的最大信號量總數目。
第三列,表示每個信號發生時的最大系統操作數目。
第四列,表示系統範圍內的最大信號集總數目。
所以,(第一列)*(第四列)=(第二列)

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

用戶打開最大進程數,全局配置的參數