問題描述:
tomcat 重啟時候 遇到這個情況,出現60080埠被占用而無法啟動,非得等該埠釋放後才啟動成功。
問題分析:
60080埠被該伺服器上的客戶端(dubbo motan)隨機選取源埠給占用掉了。
解決方案:
使用net.ipv4.ip_local_port_range引數,規劃出一段埠段預留作為服務的埠,這種方法是可以解決當前問題,但是會有個問題,埠使用量減少了,當伺服器需要消耗大量的埠號的話,比如反代伺服器,就存在瓶頸了。
最好的做法是將服務監聽的埠以逗號分隔全部新增到ip_local_reserved_ports中,tcp/ip協議棧從ip_local_port_range中隨機選取源埠時,會排除ip_local_reserved_ports中定義的埠,因此就不會出現埠被占用了服務無法啟動。
# vim /etc/sysctl.confnet.ipv4.ip_local_reserved_ports = 18080-18087, 60080-60087
# sysctl -p
注意:核心版本要大於2.6.18-164,否則不支援該引數。 ubuntu12.04 核心版本3.8.0-29 所以ubuntu12.04以上版本是支援的
Linux核心引數修改
由於linux的核心引數資訊都存在記憶體中,因此可以通過命令直接修改,並且修改後直接生效。但是,當系統重新啟動後,原來設定的引數值就會丟失,而系統每次啟動時都會自動去 etc sysctl.conf檔案中讀取核心引數,因此將核心的引數配置寫入這個檔案中,是乙個比較好的選擇。首先開啟 etc sysc...
Linux修改核心引數
linux proc sys kernel 和 proc sys vm下的檔案控制核心的執行,可以通過修改引數的方式來改變核心功能 立即生效 修改引數方法 方法一 echo value proc sys path root lulijuan hostname helloworld root luli...
Linux核心引數修改方法
由於linux的核心引數資訊都存在記憶體中,因此可以通過命令直接修改,並且修改後直接生效。但是,當系統重新啟動後,原來設定的引數值就會丟失,而系統每次啟動時都會自動去 etc sysctl.conf檔案中讀取核心引數,因此將核心的引數配置寫入這個檔案中,是乙個比較好的選擇。首先開啟 etc sysc...