客戶端頻繁的連
伺服器,由於每次連線都在很短的時間內結束,導致很多的time_wait,以至於用光了可用的端 口號,所以新的連線沒辦法繫結埠,即「cannot assign requested address」。是客戶端的問題不是伺服器端的問題。通過netstat,的確看到很多time_wait狀態的連線。
從網上找了解決辦法:
執行命令修改如下2個核心引數
sysctl -w net.ipv4.tcp_timestamps=1 開啟對於tcp時間戳的支援,若該項設定為0,則下面一項設定不起作用
sysctl -w net.ipv4.tcp_tw_recycle=1 表示開啟tcp連線中time-wait sockets的快速**
有關核心級別的keepalive和time_wait的優化調整 vi /etc/sysctl net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_fin_timeout = 30 net.core.netdev_max_backlog =8096 修改完記的使用sysctl -p 讓它生效 以上引數的註解 /proc/sys/net/ipv4/tcp_tw_reuse 該檔案表示是否允許重新應用處於time-wait狀態的socket用於新的tcp連線。
修改核心引數,快速**time_wait sockets:
[root@centos ~]# echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
# 表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;
[root@centos ~]# echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
# 表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。
[root@centos ~]# sysctl -p
關於常用Linux核心引數的優化 持續更新
vim etc sysctl.conf 每乙個埠最大監聽佇列長度,最大檔案開啟數量以及盡可能使用記憶體,swap值越大,越會積極使用交換分割槽 net.core.somaxconn 65535 fs.file max 655360 生效sysctl p 配置最大檔案開啟數量,修改儲存後立即生效 帳號...
關於核心引數的處理
今天無意中想到,我們在bootload中新增到核心中的引數是如何在核心中處理的 比如console ttys0 root dev nfs nfsroot opt nfsroot 等等 原來,這些引數是通過 setup與early param 來實現的 比如核心nfsroot.c中的 setup nf...
Linux核心引數的優化(Nginx)
深入理解nginx 陶輝 由於預設的linux核心引數考慮的是最通用的場景,這明顯不符合用於支援高併發訪問的web伺服器的定義,所以需要修改linux核心引數,使得nginx可以擁有更高的效能。在優化核心時,可以做的事情很多,不過,我們通常會根據業務特點來進行調整,當nginx作為靜態web內容伺服...