Linux連接信息維護

  • 2020 年 3 月 29 日
  • 筆記

近期由於客戶端機器連接過多,導致程序報錯,詳見:《Spark異常:address》。這裡總結下該如何查看和維護Linux機器。首先查看機器的連接數統計:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  TIME_WAIT 61  CLOSE_WAIT 5  FIN_WAIT2 5  ESTABLISHED 717

狀態定義:

狀態:描述  CLOSED:無連接是活動的或正在進行  LISTEN:服務器在等待進入呼叫  SYN_RECV:一個連接請求已經到達,等待確認  SYN_SENT:應用已經開始,打開一個連接  ESTABLISHED:正常數據傳輸狀態  FIN_WAIT1:應用說它已經完成  FIN_WAIT2:另一邊已同意釋放  ITMED_WAIT:等待所有分組死掉  CLOSING:兩邊同時嘗試關閉  TIME_WAIT:另一邊已初始化一個釋放  LAST_ACK:等待所有分組死掉

查看某一進程對應的詳細信息:

通過 ps -ax|grep "執行文件名",獲得進程ID  使用:cd /proc/進程ID  使用:ll -rt|grep cwd,即可獲得執行文件的所處路徑

也可以直接使用命令查詢概覽:

ss -s 

分析進程佔用端口號:

ps -ef | grep t_dwd_evt_user_bounce_tag  mqq       25891 194072 27 12:46 ?        00:01:20 /data/opt/jdk1.8.0_111/bin/java -cp /data/opt/spark-2.3.1-bin-hadoop2.7//conf/:/data/opt/spark-2.3.1-bin-hadoop2.7/jars/* -Xmx8g org.apache.spark.deploy.SparkSubmit --conf spark.sql.shuffle.partitions=600 --class com.tencent.th.dwd.t_dwd_evt_user_bounce_tag --total-executor-cores 300 SparkV2-1.0.1.jar repartition_num=100  mqq       41742 149384  0 12:51 pts/52   00:00:00 grep t_dwd_evt_user_bounce_tag    netstat -anpo | grep 25891 | awk '{print $4}' | sort -u  (Not all processes could be identified, non-owned process info   will not be shown, you would have to be root to see it all.)  ]