預發部署時機器總是重啟兩次的“簡單”排查
這是2023年的第82篇文章
( 本文閱讀時間:15分鐘 )
01
02
01:41 時停止應用,然後銷燬容器,創新新容器 01:43 時開始啟動應用,啟動成功 01:50 時又開始停止應用、重啟應用了,但此時並沒有新的部署記錄。
cat magellan_deploy.log |grep -E "INFO: magellan try to stop...|INFO: magellan try to start..." -C 1
03
手動重啟應用會不會也有這個問題呢?
04
有沒有定時任務
05
沒啥思路,看看有沒有有用的報錯資訊吧
Pandoraboot 可以類比於 Springboot
06
修復 JDK 版本判斷錯誤的邏輯
看了下這個 update_setenv.sh 的程式碼,發現已經沒用了,而且判斷 JDK 版本的程式碼邏輯也寫的很有問題,可以直接刪除。
07
是執行時問題?
08
諮詢 Aone 同學是否存在重複排程的可能性
09
全方位對比線上和預發機器
對比應用部署日誌:無異常
使用的 java 路徑不一樣:線上是/opt/taobao/install/ajdk-8_2_4-b52/bin/java,預發是 /opt/taobao/java/bin/java 預發環境的機器開啟了 Debug 埠: -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 預發環境的機器掛載了一個 Java Agent: -javaagent:/home/admin/remote-debug/libs/remote-debug-agent.jar
10
看看 remote-debug Agent 是幹啥的
既然是 Java Agent,而應用程式碼裡又沒有 Agent 部署的相關程式碼,那麼這個 Agent 應該是透過運維外掛下發的,這樣應用才是無感的。
在預發、測試、日常、專案環境下,如果 remote-debug-agent.jar 不存在,就從 oss 下載到 /home/admin 目錄下 如果 remote-debug-agent 已經被掛載了,就啥也不幹 如果 remote-debug-agent 沒有被掛載,就修改 setenv.sh 指令碼里的 JVM 引數,追加 Agent 引數,然後重啟應用
11
觀察應用的兩次重啟
第一次重啟後,趕緊觀察:
12
找外掛負責人確認
13
最後
先給 magellan 預發環境摘除了外掛,保證開發體驗,等外掛邏輯修復好了再重新掛載
在設計上,運維容器和主容器在同一個 Pod 內,共享磁碟,運維容器的確有許可權操作主容器裡的程式,那麼在架構上要如何防範呢?我還沒有答案,不知各位是否有,有的話,請留言告知。 如果非要說本次排查過程有什麼深刻體會的話,那就是“不要放過任何一個可疑的地方”!
14
補:如果程式碼搜尋沒找到,是否還有其他方法
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2995801/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記一次 Kafka 重啟失敗問題排查Kafka
- 除錯asp的元件時,不需重啟機器的方法 (轉)除錯元件
- Python 臨時啟動簡單的 HTTP 伺服器PythonHTTP伺服器
- 利用js獲取伺服器時間的兩個簡單方法JS伺服器
- 異常重啟怎麼破?多方排查後,原因竟然是。。。
- 關於Mac重啟之後桌布總是恢復預設的解決辦法Mac
- 簡單幾行程式碼看兩個機器人尬聊行程機器人
- 一次排查線上介面偶發異常耗時引起的思考!
- Apollo啟動配置排查,超時時間的配置
- Linux下簡單部署伺服器Linux伺服器
- win10總是藍屏重啟怎麼解決_win10總是藍屏重啟如何修復Win10
- 故障排查工具-strace,tcpdump的簡單使用TCP
- Mac 設定定時關機、重啟、睡眠Mac
- 如何在 Linux 系統查詢機器最近重啟時間Linux
- 一次線上介面超時的排查過程
- 簡單介紹MySQL開啟事務的兩種方式MySql
- 兩個流程鏈路問題的排查和總結
- 登入啟動shell時候呼叫的幾個配置檔案簡單總結
- uniapp接入微信分享iOS總是跳轉兩次APPiOS
- VUE簡單的定時器實時重新整理Vue定時器
- 記一次簡單的異機恢復操作
- JavaWeb開發之什麼時候重啟Tomcat伺服器JavaWebTomcat伺服器
- 兩臺linux機器時間同步Linux
- iOS-簡單易用的GCD計時器iOSGC
- 記一次排查Flutter中預期外rebuild的過程FlutterRebuild
- 兩次pta題目總結
- win10總是藍色畫面重啟怎麼解決_win10總是藍色畫面重啟如何修復Win10
- 實現簡單元件到部署伺服器——react元件伺服器React
- 簡單機器語言的模擬 (轉)
- 什麼是雙重預防體系?系統開發是如何預防安全事故的
- 關於VMware 虛擬機器使用時,一開啟虛擬機器就重啟問題-Win11虛擬機
- 為何軟體開發的實際週期總是比預期的要長兩三倍?
- 開發和部署一個簡單的Clojure Web應用Web
- linux 程式監控和自動重啟的簡單實現Linux
- Java專案部署到雲伺服器最簡單的方法Java伺服器
- MySQL兩種儲存引擎: MyISAM和InnoDB 簡單總結MySql儲存引擎
- 單機是最好的架構之一集中部署架構
- 一次線上問題排查所引發的思考