日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个小米SRE的日常问题排查记录

發布時間:2024/4/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个小米SRE的日常问题排查记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 日常巡檢發現新擴容的一臺web轉發服務器負載異常。比原來的稍高仍然在正常范圍內,but作為一個SRE是不能放過任何異常。
  • 安排好其他日常工作開始排查。

    • 新增服務器系統版本跟原來不一致。(原來為centos6.x,異常服務器為centos7.x) ,異常服務器從lvs下線重裝,保證系統版本都為6.x依然沒有恢復。(論:保持環境統一重要性。)為什么要重新裝centos6.x呢?當時懷疑線上nginx是在centos6.x環境下編譯的,運行在centos7.x下面,可能會是這個原因。

    • 仔細對比下環境,確認系統版本nginx版本nginx配置完全一樣。

  • 通過火焰圖分析大部分cpu占用為https握手階段函數(bn_sqr8x_interna,mul4x_internall),查看log發現問題服務器及正常服務器https及http請求數量相同。(此路不通。)
  • 既然軟件環境一樣來看硬件及驅動。通過監控確定新增一批服務負載都比原來的稍高,新增服務器及原來服務器從cpu,內存硬盤配置一樣。確定新增服務器沒有節能沒開,cpu內存頻率正常硬盤讀寫正常,找系統同事查看未見硬件故障。部分驅動版本信息不同,進行了替換驗證,整個過程是痛苦的,感謝系統及dell同學。(大家一個team一起背鍋)
  • 通過找不同沒有解決問題了。但是我們還是要繼續,現在我們很好奇很想知道答案。繼續分析我們發現了問題服務器cpu很不均衡。為什么不均衡了,strace一下發現大量的(Resourcetemporarilyunavailable)cpu在空轉。

    來看下nginx對請求分配的模型。master進程監聽端口號(例如80),所有的nginx worker進程開始用epoll_wait來處理新事件(linux下),如果不加任何保護,一個新連接來臨時,會有多個worker進程在epoll_wait后被喚醒然后只有一個線程處理這個請求其他的則會失敗。cpu空轉負載升高。這就是所謂epoll_wait驚群效應。當然nginx會有辦法處理這個問題:加鎖。

  • 剩下的就簡單了。對問題服務器手動配置上鎖(accept_mutex),然后負載正常了(每把鎖都是雙刃劍,加不加要具體問題具體分析)。但是,你可能會有疑問版本是一樣的啊,正常的服務器也沒手動加鎖啊。偉大福爾摩斯說過:When you have eliminated the impossibles,whatever remains,however improbable,must be the truth真相就是線上nginx根本不是一個版本(一臉懵逼)。手動查看下線上運行的nginx文件被刪除了,線上運行了一個不存在的版本,存在的版本是更新了的。原來正常的而服務器上線是reload新版nginx不會生效,新增的服務器是start運行的是新版nginx。
  • 下面的問題就是tengine2.1跟tengine2.2accept_mutex參數由默認的on改為了off為什么要改呢。與時俱進。當初這個參數是為了避免在epoll_wait所出現驚群效應。可以參考(https://www.jianshu.com/p/21c3e5b99f4a)新版內核已經有了處理這個方法不再需要nginx單獨配置。
  • 總結:反思并完善整個運維流程,以避免相關問題再次發生,對SRE來說永遠是最重要的。

    一些啟示:

    • 線上環境盡量完全一致(容器化可以很好的解決這一點);

    • 每次變更都要謹慎及測試。

    總結

    以上是生活随笔為你收集整理的一个小米SRE的日常问题排查记录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。