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.) ]