精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我的系統有bug?你可得有證據!

系統
要想解決問題,就得通過不斷的試錯。試錯并不是盲目的,我們必須要有各種證據的支持。手機證據最有效的是通過日志,尤其是有一定規律的日志信息。除了分析正常的業務邏輯,數據問題或者多線程問題,同樣是常見的bug引起原因。

[[422707]]

本文轉載自微信公眾號「小姐姐味道」,作者小姐姐養的狗。轉載本文請聯系小姐姐味道公眾號。

你要知道,在線下、在測試開發環境能夠發現的bug,都是些小兒科。只有到了線上才發生的bug,你才會知道它的兇殘。數據錯亂,邏輯中斷,進程死亡。處在如此問題場景下的你,are you ok?

問題頻繁發生,故障難以定位,CTO怒而呵斥,“你們難道不能在線上調試一下問題的發生根本么?要形成一套可行的方法論!”

從這種訓話可以看出,CTO的技術水準一般,但太極修養十分了得。在平常的表達中,在一篇報告中,不要出現技術術語,不要把話說的太死,是一個CTO基本的素養。

但是活兒總是要有人干的,公司所有人都打太極,最后將形成一個虛幻的世界,不利于整個組織的健康發展。今天,我們就簡單的聊一下線上程序,要留下哪些證據。

1. 證據

問題之所以成為問題,是因為它留下了證據。沒有證據的問題,你雖然看到了影響結果,但是你無法找到元兇。比如,某個同學在辦公室的飲水機里放了巴豆,讓所有同事都暢快淋漓的發泄了一下。但由于沒有安裝監控,你也就無法找到這個可惡的同學。

而且問題通常都具有人性化,當它發現無法發現它的時候,它總會再次出現。就如同罪犯發現了漏洞,還會再次嘗試利用它。

所以,要想處理線上問題,你需要留下問題發生的證據,這是重中之重。如果沒有這些東西,你的公司,絕對會陷入無盡的扯皮之中。

1.1 日志證據

日志是最常見的作法。通過在程序邏輯中進行打點,配合Logback等日志框架,可以快速定位到發生問題的代碼行。我們需要看一下bug的詳細發生過程,對可能發生問題的邏輯進行詳細的日志記錄,進行更加細致的日志輸出,在發生問題的時候,就可以切換到debug進行調試。

在SpringBoot中,可以通過actuator來動態調整相應類的日志級別。在下面的路徑中,可以看到日志級別的具體信息。

  1. localhost:8080/actuator/{loggers} 

通過發送POST請求到具體的日志控制器,就可以實現動態更改。

  1. curl -X POST \ 
  2.   http://localhost:8080/actuator/loggers/<Package/Class> \ 
  3.   -d '{"configuredLevel":"<LEVEL>"}' 

但bug的發生頻率可能很小,我們開啟了debug后,可能等了好幾天,同樣的問題也沒有再次復現,這是最讓人頭疼的事情。

接入一些APM平臺是非常有必要的。最新的opentelemetry,同時記錄了Traces, Metrics, Logs等三種格式的數據,對問題的分析支持非常大。

記錄詳細的監控信息也是非常有必要的,可以看到監控指標的歷史時序,輔助我們查找排查問題。

1.2 JVM證據

在事故出現的時候,通常并不是那么溫柔。你可能在半夜里就能接到報警電話,這是因為很多定時任務都設定在夜深人靜的時候執行。

這個時候,再去看 jstat 已經來不及了,我們需要保留現場。這個便是看門狗的工作,看門狗可以通過設置一些 JVM 參數進行配置。

Java8的gc日志配置和8以后的版本差異很大,下面直接給出相應的配置示例。

java8:

  1. -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps  
  2. -XX:+PrintGCApplicationStoppedTime -XX:+PrintTenuringDistribution  
  3. -Xloggc:/tmp/logs/gc_%p.log -XX:+HeapDumpOnOutOfMemoryError  
  4. -XX:HeapDumpPath=/tmp/logs -XX:ErrorFile=/tmp/logs/hs_error_pid%p.log  
  5. -XX:-OmitStackTraceInFastThrow 

java8+:

  1. -verbose:gc -Xlog:gc,gc+ref=debug,gc+heap=debug,gc+age=trace:file 
  2. =/tmp/logs/gc_%p.log:tags,uptime,time,level -Xlog:safepoint:file=/tmp 
  3. /logs/safepoint_%p.log:tags,uptime,time,level -XX:+HeapDumpOnOutOfMemoryError  
  4. -XX:HeapDumpPath=/tmp/logs -XX:ErrorFile=/tmp/logs/hs_error_pid%p.log  
  5. -XX:-OmitStackTraceInFastThrow 

2. 分析

問題分析是最困難的一環。有了證據環節,我們就避免了靠猜去找問題的現狀,但如何在這些分散的信息和復雜的路徑中,找到問題的根本原因,是非常有挑戰的。

如果是大范圍的bug,那么強烈建議直接在線上進行調試。不太推薦使用Arthas等工具動態的修改字節碼進行測試,當然也不推薦IDEA的遠程調試。相反,推薦使用類似金絲雀發布的方式,導出非常小的一部分流量,構造一個新的版本進行測試。如果你沒有金絲雀發布平臺,類似Nginx的負載均衡工具也可以通過權重做到類似的事情。

在這個新的小版本中,你可以盡情的輸出日志,把所有的輸入輸出都打印到日志里。大多數情況下,你能夠通過日志很快發現這個問題。

緩存會是bug產生非常重要的一個影響因素。因為緩存和db通常不在一個基礎設施中,通常會存在一致性問題。即使選用了cache aside pattern,實現了延時雙刪,在某些情況下,數據仍然會發生一致性問題。這種偶發的不一致問題,因為發生頻率低,觸發條件苛刻,一點發生會非常難以發現。所以一些非常關鍵的業務,通常會提供一鍵刪除緩存的功能。如果清掉緩存之后,問題消失,那大可不必浪費時間花費在這種小概率事件上。

多線程是另外一個容易出現問題的地方,每個邏輯都必須仔細的進行評估。因為多線程是異步的,有些邏輯只能通過手工去推理,灰度的線上程序可能永遠沒有條件走到這一步。這個時候,給線程起一個合適的名字,是非常有必要的,這通常是由ThreadFactory去做的。

比如,有些同學,喜歡將字符串拼接起來直接打印成日志。

  1. logger.debug("the request info: userId:{} tel:{},role:{},timeCost:{}"

這二種方式不是說不好,但在你處理問題的時候,就會遇到很多障礙,日志的輸出不應該太隨意。

  1. logger.debug("the request info$ userId{}|tel:{}|role:{}|timeCost:{}"

通過這種方式,我們可以很容易的利用各種Linux工具,比如sed、awk、grep進行分析。在日志輸出的時候,要有一定的技巧,否則你就只能使用肉眼去分析。

3. 總結

要想解決問題,就得通過不斷的試錯。試錯并不是盲目的,我們必須要有各種證據的支持。手機證據最有效的是通過日志,尤其是有一定規律的日志信息。除了分析正常的業務邏輯,數據問題或者多線程問題,同樣是常見的bug引起原因。

日志系統與監控系統,對硬件的需求是比較大的,尤其是你的請求體和返回體比較大的情況下,對存儲和計算資源的額要求更是高。它的硬件成本,在整個基礎設施中,占比也是比較高的。但這些證據信息,對分析問題來說,是非常有必要的。所以即使比較貴,很多公司依然會有很大的投入在這上面,包括硬件投入和人力投入。

如果你想要這樣的功能但是沒錢也沒人?其實那也沒關系,雇一個會扯皮的CTO,你的這些問題和bug,都會在你面前消失不見的。 

作者簡介:小姐姐味道 (xjjdog),一個不允許程序員走彎路的公眾號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高并發世界,給你不一樣的味道。

 

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2019-11-26 09:45:27

軟件設計設計模式

2019-06-14 08:48:46

Tomcat日志SpringBoot

2016-12-13 10:57:22

Bug程序員錯誤報告

2024-05-20 08:25:55

2009-07-27 14:11:22

硅谷動力

2021-10-15 11:12:43

GoJava語言

2014-05-27 09:13:07

2020-03-06 12:20:52

SpringGitHub項目

2021-01-29 08:09:32

Service接口表現層

2021-03-08 09:27:43

Linux 系統 數據

2014-07-30 09:40:30

Android

2011-12-30 22:12:35

iOS

2022-12-27 14:45:55

量子計算

2019-05-13 09:25:07

大數據數據分析隱私

2019-05-13 09:01:13

程序員職責產品經理

2022-08-08 20:33:12

VolatileJVM

2015-02-10 11:15:46

Android 5.1Google

2015-02-05 09:29:25

Android 5.1

2010-08-25 10:27:35

代碼

2010-08-25 11:29:07

代碼
點贊
收藏

51CTO技術棧公眾號

丝袜熟女一区二区三区| www.18av.com| 无码人妻av免费一区二区三区| 99riav视频一区二区| 日韩精品丝袜美腿| 色哟哟精品一区| 免费看av软件| 天天干在线观看| 久久国产精品第一页| 亚洲精品自在久久| 911福利视频| 麻豆免费版在线观看| 国产欧美日韩在线| 成人在线观看网址| 在线观看色网站| 国产日韩欧美一区二区三区在线观看| 日韩亚洲欧美一区二区三区| 老太脱裤让老头玩ⅹxxxx| 成人18在线| 不卡av在线免费观看| 欧美成人精品不卡视频在线观看| 亚洲欧美日韩一级| aa视频在线观看| 成人欧美一区二区三区在线播放| 国产精品久久在线观看| 黄网站免费在线| 久久久国产精品| 日本久久一区二区| 欧美精品尤物在线| 精品人妻伦一区二区三区久久| 综合一区在线| 影音先锋日韩有码| 爱爱免费小视频| 亚洲综合影院| 午夜伊人狠狠久久| 熟女视频一区二区三区| 尤物网在线观看| 国产片一区二区三区| 久久久精彩视频| 麻豆成人免费视频| 亚洲经典在线看| 欧美国产日韩精品| 国产三级国产精品| 超碰成人在线观看| 日韩欧美不卡在线观看视频| 亚洲精品免费一区亚洲精品免费精品一区| 亚洲精品久久久狠狠狠爱| 日韩不卡一区二区三区| 人人澡人人澡人人看欧美| 纪美影视在线观看电视版使用方法| 国产激情视频在线观看| 国产亚洲精品超碰| 九色91在线视频| 欧洲免费在线视频| 久久人人97超碰com| 国产欧美日韩视频一区二区三区| 国产免费一区二区三区四区五区| 日本午夜一区| 欧美日韩国产一级片| 精品久久久久久中文字幕2017| 亚洲AV无码精品色毛片浪潮| 精一区二区三区| 成人精品视频久久久久| 国产免费黄色大片| 夜夜嗨网站十八久久| 韩国一区二区电影| av资源免费观看| 美女日韩在线中文字幕| 国产精品白丝jk喷水视频一区 | 国产激情精品一区二区三区| 欧美精品久久一区| 少妇高潮一69aⅹ| 成人午夜大片| 国产亚洲欧美日韩精品| 久久久久麻豆v国产| 欧美成熟视频| 97国产精品视频人人做人人爱| 波多野结衣家庭教师在线观看| 日本久久伊人| 欧美日韩国产一区二区三区| 国产无限制自拍| xxxxx性欧美特大| 亚洲最新在线观看| 亚洲熟妇av日韩熟妇在线| 老司机在线视频二区| 一区二区三区产品免费精品久久75| 日韩aⅴ视频一区二区三区| 国产三区四区在线观看| 亚洲人成网站精品片在线观看| 欧美日韩在线观看一区二区三区| 国产wwwxxx| 99久久精品免费| 亚洲aⅴ天堂av在线电影软件| 四虎免费在线观看| 国产色产综合色产在线视频| 99热都是精品| 成人美女大片| 日韩欧美美女一区二区三区| 久久精品老司机| 亚洲成av人片乱码色午夜| 国内免费久久久久久久久久久 | 亚洲国产欧美日韩另类综合 | 青青草成人免费视频| 日韩大片在线播放| 国内伊人久久久久久网站视频| 久久高清内射无套| 欧美精选一区二区三区| 欧美刺激性大交免费视频| 久久久久久久久久久影院| 麻豆精品一区二区综合av| 日韩av不卡在线| 国产美女主播在线观看| 久久久www免费人成精品| 精品免费久久久久久久| 一区在线影院| 欧美专区亚洲专区| 亚洲av成人片无码| 91视频综合| 国产成人精品一区二区三区| 无码人妻精品一区二区蜜桃色欲| 宅男噜噜噜66国产日韩在线观看| 欧美成年人视频| 激情五月婷婷在线| 免费成人美女在线观看| 欧美极品日韩| 午夜欧美激情| 亚洲国产精品久久久久秋霞不卡| 国产一区视频免费观看| 日韩精品一区国产| 久久九九精品99国产精品| 欧美一区二区三区久久久| 成人爱爱电影网址| 成人午夜免费在线视频| a一区二区三区亚洲| 一区二区三区日韩在线| 五月天婷婷激情| 91蝌蚪porny九色| 男人添女人荫蒂免费视频| 成人自拍视频| 久久亚洲成人精品| 亚洲一区精品在线观看| 中文字幕乱码日本亚洲一区二区| 欧美少妇一区二区三区| 日韩黄色碟片| 久久精品小视频| 中文天堂在线视频| 久久精品夜色噜噜亚洲aⅴ| 亚洲欧洲一区二区在线观看| 三上悠亚国产精品一区二区三区| 一区二区三区美女视频| 亚洲18在线看污www麻豆| 日韩黄色大片网站| 国产精品视频一| av影片在线看| 欧美二区在线观看| 欧美毛片在线观看| 成人激情校园春色| 亚洲熟女乱色一区二区三区| 亚洲区小说区图片区qvod按摩| 日韩专区中文字幕| 97精品人妻一区二区三区在线 | 丁香六月天婷婷| 一区二区三区视频在线看| 女人扒开腿免费视频app| 国产精品激情电影| 国产一级特黄a大片99| 亚洲v.com| 在线a欧美视频| 97人妻精品一区二区三区软件| 国产成人av福利| www.射射射| 乱亲女h秽乱长久久久| 亚洲香蕉在线观看| 中文字幕欧美人妻精品| 亚洲女厕所小便bbb| 91黄色小网站| 成人羞羞网站入口| 亚洲一区中文字幕| 国产免费拔擦拔擦8x在线播放| 欧美日韩色一区| 日韩激情小视频| av激情综合网| 丰满少妇在线观看| 希岛爱理一区二区三区| 国产在线播放一区二区| 456成人影院在线观看| 久久av资源网站| 青青草免费在线| 555www色欧美视频| 婷婷色一区二区三区| 国产一区二区三区精品视频| 亚洲欧洲日韩精品| 97久久亚洲| 国产一区二区视频在线观看| 国产美女福利在线观看| 中文字幕欧美视频在线| 欧美视频一二区| 亚洲久本草在线中文字幕| 亚洲中文字幕无码av| 黄色亚洲精品| 亚洲v国产v在线观看| 91精品啪在线观看国产手机| 国产精品国模在线| 暧暧视频在线免费观看| 日韩在线视频观看| 暖暖视频在线免费观看| 精品欧美黑人一区二区三区| 伊人精品一区二区三区| 狠狠躁天天躁日日躁欧美| 午夜国产福利一区二区| 国产人妖乱国产精品人妖| 欧美双性人妖o0| 国产乱码精品一区二区三区五月婷| 欧美第一黄网| 伊人久久亚洲| 国产欧美久久一区二区| 视频二区不卡| 欧美亚洲一区在线| 波多野在线观看| yellow中文字幕久久| 超碰免费在线| 亚洲欧美制服综合另类| 国产jzjzjz丝袜老师水多| 欧美日韩大陆一区二区| 日韩久久久久久久久久| 色综合天天狠狠| 日韩少妇裸体做爰视频| 亚洲制服丝袜av| 动漫性做爰视频| 国产精品电影院| 毛片久久久久久| 日本一区免费视频| 国产成人无码精品久久二区三| 免费高清视频精品| 黄色一级二级三级| 视频一区中文字幕国产| 免费无码av片在线观看| 亚洲成色精品| 蜜桃999成人看片在线观看| 日韩精品99| 欧美一级黄色网| 激情黄产视频在线免费观看| 国语自产精品视频在线看| 欧美14一18处毛片| 日韩精品极品在线观看播放免费视频| 九九热精品视频在线| 亚洲高清视频在线| 久久精品免费在线| 亚洲福利视频三区| xxxxxx国产| 婷婷国产v国产偷v亚洲高清| 国产精品a成v人在线播放| 亚洲黄色免费电影| 国产在线视频你懂的| 亚洲成人动漫精品| 在线精品免费视| 色婷婷精品久久二区二区蜜臂av| 少妇久久久久久被弄高潮| 成人欧美一区二区三区白人| √天堂中文官网8在线| 亚洲乱码国产乱码精品精98午夜| 亚洲精品视频大全| 久久久99精品久久| 特级西西人体高清大胆| 亚洲视频免费在线观看| 久久久精品国产sm调教| 亚洲午夜免费电影| 综合 欧美 亚洲日本| 中文字幕欧美一区| 青娱乐国产在线视频| 天天综合网 天天综合色| 亚洲av中文无码乱人伦在线视色| 亚洲精品午夜久久久| 国产一级视频在线观看| 欧美性生活大片免费观看网址| 四虎精品免费视频| 亚洲国产精品一区二区久久 | 日本不卡免费播放| 国产亚洲欧洲在线| 自拍亚洲图区| 日本亚洲精品在线观看| 色噜噜成人av在线| 国产美女99p| 人人狠狠综合久久亚洲婷| 欧美 日韩 国产精品| 久热re这里精品视频在线6| 国产永久免费网站| 成人亚洲精品久久久久软件| 欧美图片第一页| 亚洲人精品一区| 在线观看免费av片| 5858s免费视频成人| 天堂a中文在线| 久久久成人av| 国产免费不卡| 成人综合电影| 欧美激情黄色片| 69堂免费视频| 国产精品主播直播| 亚欧精品视频一区二区三区| 亚洲国产视频一区二区| 最近中文字幕在线免费观看| 精品99999| 黄色免费在线观看| 国产成人在线一区二区| 国产精品对白| 中文字幕av导航| 久久婷婷久久| 182在线视频| 亚洲精品高清在线观看| 久久这里只有精品9| 亚洲激情视频在线播放| av免费在线免费| 国产精品视频一区二区高潮| a级日韩大片| 精品一区二区成人免费视频| 天堂在线亚洲视频| 给我免费观看片在线电影的| 亚洲蜜臀av乱码久久精品| 在线免费观看一区二区| 亚洲天堂成人在线视频| 国产在线天堂www网在线观看| 777午夜精品福利在线观看| 欧美性aaa| 亚洲精品成人三区| 老司机亚洲精品| av在线网站观看| 欧美日韩中文字幕在线| 欧美综合视频在线| 欧美大片在线看| 欧洲大片精品免费永久看nba| 精品国产一二| 国模吧视频一区| 91精产国品一二三产区别沈先生| 国产成人免费视频网站高清观看视频| 久久久久国产免费| 大胆亚洲人体视频| 日本老熟俱乐部h0930| 欧美福利视频一区| 毛片激情在线观看| 国内精品中文字幕| 97青娱国产盛宴精品视频| 穿情趣内衣被c到高潮视频| 麻豆精品在线视频| 亚洲 欧美 国产 另类| 欧美日本一区二区在线观看| 成年人在线观看网站| 国产精品高清免费在线观看| 欧美中文一区二区| 九九热精品在线播放| 中文字幕在线观看一区| 97人妻精品一区二区三区| 欧美成人午夜剧场免费观看| 韩国一区二区三区视频| 国产激情片在线观看| 成人免费视频一区| 欧美特黄aaaaaa| 亚洲色图17p| 成人久久网站| 天天综合五月天| 成人性生交大片免费看中文| 久久不卡免费视频| 一本色道久久88精品综合| 国产精品久久久久久妇女| 中文字幕99| 成人免费av在线| 精品成人无码久久久久久| 亚洲男人天堂网站| 日本美女久久| 成年丰满熟妇午夜免费视频| 99久久精品费精品国产一区二区 | 亚洲一区在线播放| 人妻无码中文字幕免费视频蜜桃| 色婷婷成人综合| 精品成人18| 日本阿v视频在线观看| 91免费观看在线| 在线观看中文字幕码| 欧美国产日本在线| 欧美**vk| 日本黄色三级网站| 日韩欧美999| av网站免费在线观看| 蜜桃视频成人| 国产一区二区中文字幕| 日韩欧美高清在线观看| 在线观看亚洲区| 久久精品色播| 特黄视频免费观看| 精品女同一区二区三区在线播放 | www.成人网.com| 亚洲午夜无码久久久久| 欧美日韩成人精品| 欧美裸体在线版观看完整版| 国产不卡的av| 欧洲另类一二三四区| 久草在线资源站资源站| 亚洲精品一区国产精品| av欧美精品.com| 国产黄色大片网站|