Java架構師線上問題排查,這些命令程序員必定用獲得!

Java架構師線上問題排查,這些命令程序員必定用獲得!
Java架構師線上問題排查,這些命令程序員必定用獲得!程序員

線上問題排查,如下場景,你遇到過嗎?web

1、瞭解機器鏈接數狀況tomcat

問題:1.2.3.4的sshd的監聽端口是22,如何統計1.2.3.4的sshd服務各類鏈接狀態(TIME_WAIT/ CLOSE_WAIT/ ESTABLISHED)的鏈接數。 常見方法:服務器

· netstat -n | grep 1.2.3.4:22 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’網絡

· netstat -lnpta | grep ssh | egrep 「TIME_WAIT | CLOSE_WAIT | ESTABLISHED」架構

· n [僅限於阿里雲]less

說明:netstat是追查網絡鏈接問題經常使用工具,和grep/awk結合更是神器,固然若是在阿里雲上,還有更方便的方法。ssh

2、從已經備份好的日誌中查詢數據tcp

問題:從已備份的suyun.2019-06-26.log.bz2日誌中,找出包含關鍵字1.2.3.4的日誌有多少條。 常見方法:ide

· bzcat suyun.2019-06-26.log.bz2 | grep '1.2.3.4' | wc -l

· bzgrep '1.2.3.4' suyun.2019-06-26.log.bz2 | wc -l

· less suyun.2019-06-26.log.bz2 | grep '10.37.9.11' | wc -l

說明:線上日誌文件通常以bz2 壓縮以後保留,若是解壓查詢,很是耗空間與時間,bzcat和bzgrep是研發同窗必須掌握的工具。

3、備份服務的技巧

問題:打包備份/opt/web/suyun_web目錄,排除掉目錄中的logs和目錄,打包好的文件存放在/opt/backup目錄下。 常見方法:tar -zcvf /opt/backup/shenjian.tar.gz \ -exclude /opt/web/suyun_web/logs \ /opt/web/suyun_web 說明:這個命令線上應用較爲頻繁,在項目須要打包遷移時,經常須要排除掉日誌目錄,exclude是須要掌握的參數。

4、查詢線程數

問題:查詢服務器運行服務的總線程數,當機器線程數超報警閥值時,能快速查出相關進程及線程信息。 參考答案:

· ps -eLf | wc -l

· pstree -p | wc -l

5、磁盤報警,清空最大文件

問題:找出服務器上,某個正在運行的tomcat產生的大量異常日誌,找出該文件,並釋放空間。不妨設該文件包含log關鍵字,而且大於1G。 常見方法:第一步,找到該文件

· find / -type f -name "log" | xargs ls -lSh | more

· du -a / | sort -rn | grep log | more

· find / -name 'log' -size +1000M -exec du -h {} \;

第二步,將文件清空假設找到的文件爲a.log正確的狀況方式應該爲:echo "">a.log文件空間會馬上釋放。
不少同窗會使用:rm -rf a.log這樣文件雖然刪除,可是因tomcat服務仍在運行,空間不會馬上釋放,須要重啓tomcat才能將空間釋放。

6、顯示文件,過濾註釋

問題:顯示server.conf 文件,屏蔽掉#號開頭的註釋行 常見方法:

· sed -n '/^[#]/!p' server.conf

· sed -e '/^#/d' server.conf

· grep -v "^#" server.conf

·

7、磁盤IO異常排查

問題:磁盤IO異常如何排查,相似寫入慢或當前使用率較高,請查出致使磁盤IO異常高的進程ID。

常見方法:

第一步:iotop -o查看當前正在寫磁盤操做的全部進程ID信息。

第二步:若是此時各項寫入指標都很低,基本沒有大的寫入操做,則須要排查磁盤自身。能夠查看系統dmesg或cat /var/log/message看看是否有相關的磁盤異常報錯,同時能夠在寫入慢的磁盤上touch一個空文件看看,是否磁盤故障致使沒法寫入。

但願對常常進行線上操做的同窗有幫助,若是有更好的實踐,也歡迎分享。



專一於Java架構師技術分享,撩我免費送Java全套架構師晉級資料

(Java架構師交流企Q鵝裙/:445-820-908 )

相關文章
相關標籤/搜索