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

MemoryThrashing:抖音直播解決內存抖動實踐

原創 精選
移動開發 移動應用
直播 OOM 問題比較棘手難以定位,主要體現在涉及的業務很多,從定位到解決花費時間比較久。為了提前觸達問題,提高定位的效率,也是對現有工具的補充,提出直播內存抖動解決方案- MemoryThrashing。

作者 | 王海超

背景介紹

直播 OOM 問題比較棘手難以定位,主要體現在涉及的業務很多,從定位到解決花費時間比較久。為了提前觸達問題,提高定位的效率,也是對現有工具的補充,提出直播內存抖動解決方案- MemoryThrashing。

為什么要提出這個方案 ?

  • 現有的 “MemoryGraph” 工具可以通過抓取的“MemoryGraph” 文件分析 OOM 成因,比如內存泄漏、內存占用過高導致的 OOM 問題,但因為性能開銷很大,所以是采樣上報且采樣率很低,不容易觸達問題, 只能定向對已知用戶開啟才行。期望自研一個工具,在內存增長時可以發現問題,也能用于 OOM 發生后的分析,同時具備性能開銷小、全采樣的能力;
  • “MemoryGraph” 生成時可能不是內存高位,比如設備內存是 4G,生成的“MemoryGraph” 可能是 1G,會影響 OOM 分析;

什么是 Thrashing(抖動) ?

維基百科中 thrashing 定義: 

  • In computer science, thrashing occurs when a computer's virtual memory resources are overused, leading to a constant state of paging and page faults, inhibiting most application-level processing.([1]) This causes the performance of the computer to degrade or collapse.

從業務視角定義內存 thrashing:

通俗講就是性能數據有大的波動,拿內存來講,當內存短時間從 600M 漲到 800M 叫作一個抖動。希望通過自研工具找出這 200 M 內存增長來自于哪里,在實際的 OOM 案例中因內存突增導致的 OOM 是比較常見的,具體現象如下:

  • 內存未回落:內存突增一般發生在一兩分鐘內,內存從 1G 漲到 3G,這部分內存會一直滯留在內存中不會被釋放掉或者沒有機會釋放掉直接 OOM,同時助高了內存水位很容易發生 OOM 問題;
  • 內存回落:內存突增到一定水位開始回落未形成 OOM,這種現象通常是內存問題不夠劣化,或者機器本身內存足夠大不容易 OOM,雖然沒有造成 OOM 但也是一個潛在的問題;

圖片

以臨時對象、內存堆積為例來闡述如何定位該類問題,通過“AllocTime Summary” 描述臨時對象分配次數,通過 “Memory Summary” 描述內存堆積。

臨時對象

臨時對象:短時間分配大量對象,導致直播穩定性波動較大,可能使內存、CPU 負載變高。這類問題通常表現為短時間內存沖高或者直接 OOM,或之后開始迅速回落到正常水位,這類對象不會駐留內存過久,通過監控 “臨時對象” 可以提前發現這類問題。

圖片

以上是按分配次數(AllocTime Summary)統計的 TOP 臨時對象,“AllocTime Summary 1” 代表第一次采樣 Class 的分配次數其它依次類推。舉例:通過 diff “AllocTime Summary 2” 與 “AllocTime Summary 1” 差值可知 “LivexxxA” 在采樣周期分配了 7803 次,由于未采集到 “Memory Summary” 信息,可認為未有內存駐留。

內存堆積

內存堆積:內存駐留了大量對象,而且這類對象短時間不會釋放掉,導致內存水位居高不下,很容易觸發 OOM 問題。

圖片

以上是按內存駐留統計的 TOP 實例,“Memory Summary 1” 代表第一次采樣實例數量的內存駐留信息其他依次類推。舉例:通過 diff “Memory Summary 2” 與 “Memory Summary 1” 可知 “LivexxxA” 在采樣周期內增長了 56791 個,根據最后一次采樣可知內存駐留了總共 69904 個實例,通過采樣可知“LivexxxA” 每次都是遞增的。

MemoryThrashing 方案

方案調研

方案思路是做內存差值找出增長,通過采樣多個時刻的內存信息(目前主要監控 Class 的實例個數), Diff 出內存信息找出 TOP 增長,達到歸因的目的。

  • 內存區:通過內存節點遍歷統計 Class 實例個數;
  • Runtime:通過 alloc、dealloc 計數實現統計實例存活數量;

內存區

通過內存節點遍歷與已注冊的 Class 比較統計實例個數,該方案的優點是可以監控整個 APP 的 OC 對象實例個數,面對直播業務場景需不需監控整個 APP 的對象,目前看暫時用不到,需求出發點是監控直播場景且滿足一定條件。比如:直播觀播一段時間后內存的大幅波動,場景比較聚焦。另一個考慮是如果當前內存比較大,遍歷 zone 會比較耗時,如果不掛起線程會有潛在的崩潰問題、以及數據不準問題。

圖片

RunTime

通過 Hook 的方式,統計 Class 實例的分配、釋放次數,達到記錄實例存活個數的目的,可監控固定場景的 OC 實例增長情況,如直播間內的內存突增,范圍比較小不需要統計過多的無用對象。該方案相對內存區遍歷耗時小,且不會有野指針問題。但需要注意的是監控對象時對性能的影響,目前采用的是 RunTime 方案,從線下直播間測試情況看對主線程的影響忽略不計。

圖片

方案設計

在實際開發過程中發現對象的創建、釋放處于復雜的多線程環境中,處理不當會對業務產生潛在的影響,影響到業務執行效率或者造成穩定性問題:

  • 容器置于多線程下會有線程安全問題;
  • 過度的使用鎖會阻塞業務代碼執行,也可能觸發 Watchdog 機制導致 APP 被 kill;

經過優化采用多級緩存方案解決主線程的性能開銷問題,達到主線程幾乎零開銷。

圖片

監控流程

在進入直播間一段時間后開啟監控,通過監控內存值變化來區分是否開啟采樣功能,開啟采樣后會進入連續多次采樣階段,多次采樣完成后進行數據上報,上報完成后會繼續監控內存。

圖片

數據展示

在高熱直播間多次采樣的內存快照,采集 TOP 100 數據,以 “LivexxxA” 為例兩次采樣中第二次增長了 4125 個實例,可以簡單歸因 “LivexxxA” 相關業務導致 “MemoryThrashing”,可以從 “LivexxxA” 相關業務入手排查。

圖片

方案優缺點

方案

優點

缺點

“MemoryThrashing”

可以多次采樣,對比內存增長趨勢;性能開銷小,可線上全量;提前感知內存問題;上手簡單,通過對象數量就可以排查問題;

不支持多語言,只限于 oc 語言;不具備通過內存節點關系分析內存泄漏問題,只能找出堆積的對象;不具備分析多個內存區的能力;Hook 方式影響方法緩存;

“MemoryGraph”

問題發現能力強:可以通過內存節點關系分析內存泄漏導致的 OOM 問題;可以統計內存區的內存占用情況;適用多語言;上手復雜,需要梳理內存節點引用關系;

線程掛起會影響業務執行,用戶感知明顯;內存使用越高,內存區遍歷越耗時;只能少量采樣;

實踐案例

圖片

目前 “MemoryThrashing” 已經部署了,可以監控測試環境,后續將部署到線上。通過線下看提前暴露了很多問題,相對以往方式只有問題發生了或者產生了明顯影響才能感知到,需要 QA 反饋到 RD,通過“MemoryThrashing”大大提升了排查效率,很好的將劣化問題前置發現,以下抽取其中兩個案例。

內存堆積

如下,多個采樣周期內出現了大量對象的分配問題,且這些對象未釋放,并且導致了內存明顯上漲,采樣周期 3 比采樣周期 2 多分配了 234024 個對象,且最后內存駐留了 238800 個 “LivexxxBigDataRead” 對象,占用內存 10.9M。

圖片

臨時對象

如下,是開播場景抓到的問題,在主播端開啟彈幕狂歡時,過 Effect 認出人臉后,就會創建一個對應的輪廓模型給到中臺去畫輪廓,頻率會很高,每 5 秒周期(實際時間更小)臨時對象增量高峰可到 6w 個(后兩次采樣差值),由于未生成 “Memory Summary” 信息可認為未駐留內存 ,累計過百萬次對象分配,對開播性能會產生直接影響:

圖片

未來規劃

歸因能力

只統計 OC 對象數據在某些情況下可能不夠,比如公共基礎對象異常增長,則沒有辦法追蹤到具體成因,如果帶有對象引用關系可以進一步鎖定問題。當然這些都是對 “Memory Graph” 能力的補充,如果“Memory Graph” 已經抓到了數據,可以結合“Memory Graph” 鎖定對象引用鏈路繼而找到業務。

  • “MemoryThrashing” 可以加上對象引用關系計算,從效率上講沒必要對所有的對象查找其引用關系,查找引用關系是比較耗時的。只需查找 TOP 增長點的關鍵對象引用關系,實測可能只需要查找幾個對象的引用關系。
  • 通過線程堆棧采樣記錄信息;

CPU 監控

根據以往案例如:OOM、ANR 有不少會伴隨著高 CPU 使用率,比如某次案例由大量數據處理導致的 OOM 問題,經排查發現負責該業務處理的線程 CPU 使用率很高,所以通過監控線程 CPU 使用率,來補充監控顯得很有必要,可以通過線程名字、堆棧, 鎖定懷疑的業務。

圖片

責任編輯:未麗燕 來源: 字節跳動技術團隊
相關推薦

2023-11-03 17:02:18

抖音直播畫質優化

2022-06-06 12:19:08

抖音功耗優化Android 應用

2020-10-12 19:06:06

微信直播快手

2024-12-25 15:42:39

視頻數據實時直播

2025-07-30 09:36:47

2024-06-13 17:10:16

2022-07-06 13:02:00

高延時電商直播主播互動

2024-03-12 17:13:51

2022-03-29 13:27:22

Android優化APP

2020-09-17 18:31:54

戴爾

2024-10-31 08:22:56

2022-06-23 11:19:14

抖音春節發券

2023-03-03 15:43:23

抖音世界杯畫質優化

2023-03-28 08:28:34

2023-11-03 16:56:00

抖音直播編碼器

2021-06-28 05:19:32

抖音電腦

2024-11-13 08:47:24

2022-08-26 16:24:19

抖音體系化建設項目

2022-08-02 07:56:53

反轉依賴反轉控制反轉

2023-02-06 17:38:34

低延遲
點贊
收藏

51CTO技術棧公眾號

午夜在线视频免费观看| 国产精品扒开腿做| 性色av蜜臀av色欲av| 久久uomeier| 亚洲三级免费观看| 精品在线一区| 国产免费不卡视频| 99日韩精品| 久久精品国产69国产精品亚洲| 日本一级大毛片a一| 成人欧美magnet| 伊人性伊人情综合网| 欧美重口乱码一区二区| 国产高潮在线观看| 男人的j进女人的j一区| 国内精品久久久久久影视8| 成年人看的免费视频| 国产三级精品三级在线观看国产| 欧美私人免费视频| 国产日韩欧美精品在线观看| 亚洲天天影视| www国产亚洲精品久久麻豆| 91日韩在线播放| 欧美brazzers| 亚洲每日在线| 欧美成人三级视频网站| 91社区视频在线观看| 青青草原在线亚洲| 精品国产免费视频| 在线成人免费av| 成人涩涩视频| 色狠狠综合天天综合综合| 97超碰国产精品| 国内精品久久久久久野外| 久久免费视频一区| 久久国产精品99久久久久久丝袜 | 亚洲精品女人久久久| va天堂va亚洲va影视| 在线视频一区二区三区| 99爱视频在线| a√中文在线观看| 亚洲一区二区三区自拍| 国产三级中文字幕| 欧美一区二区三区在线观看免费| 国产亚洲综合在线| 蜜桃麻豆www久久国产精品| 亚洲经典一区二区三区| 国产精品亚洲视频| 114国产精品久久免费观看| 羞羞色院91蜜桃| 蜜臀av一区二区在线免费观看| 日本一欧美一欧美一亚洲视频| 欧美三级一区二区三区| 欧美激情综合| 欧美国产日韩一区二区三区| 精品人妻伦九区久久aaa片| 久久精品影视| 欧美日本高清一区| 精品少妇theporn| 丁香花五月激情| 草草视频在线| 亚洲国产一区视频| 国产96在线 | 亚洲| 国产网红女主播精品视频| 亚洲一区二区三区三| 波多野结衣综合网| 亚洲黄色中文字幕| 在线观看中文字幕不卡| 一路向西2在线观看| 日日夜夜一区| 日韩精品一区二区三区蜜臀 | 中文字幕免费观看| 日日夜夜精品视频免费| 国产精品吴梦梦| 国产精品无码免费播放| 国产成+人+日韩+欧美+亚洲| 国产一级二级三级精品| 青青草视频免费在线观看| 久久日韩粉嫩一区二区三区| 五月天综合网| 午夜伦理在线视频| 大荫蒂欧美视频另类xxxx| 99久久国产宗和精品1上映| 日韩精品免费观看视频| 欧美狂野另类xxxxoooo| 风韵丰满熟妇啪啪区老熟熟女| 东京久久高清| 亚洲图片欧美日产| 日本a级片视频| 国产精品亚洲综合久久| 国产精品一香蕉国产线看观看| 99视频国产精品免费观看a| 97久久久精品综合88久久| 日韩国产精品一区二区| 99在线视频观看| 色婷婷精品久久二区二区蜜臀av| 涩多多在线观看| 欧美变态挠脚心| 中文字幕亚洲欧美日韩2019| 18岁成人毛片| 丝袜美腿亚洲色图| 99视频免费观看| 高清美女视频一区| 亚洲午夜精品在线| 天天色综合天天色| 九九热hot精品视频在线播放| 国产一区二区欧美日韩| 久久久久久久久久久久久久免费看 | 欧洲成人一区| 337p日本欧洲亚洲大胆精品| 欧美日韩国产一二三区| 99热这里只有成人精品国产| 91日韩在线播放| 成人在线免费观看| 岛国av一区二区三区| 超碰91在线播放| heyzo久久| 5566成人精品视频免费| 国产黄色片网站| 中文字幕精品一区| 欧美黄网站在线观看| 91精品国产乱码久久久竹菊| 少妇高潮久久久久久潘金莲| 亚洲欧美自拍视频| 成av人片一区二区| 特级西西444| 日韩福利影视| 最新国产成人av网站网址麻豆| 日本道在线观看| 国产不卡视频在线观看| 黄色网址在线免费看| 成人在线观看免费播放| 亚洲视频欧美视频| 国产精品美女久久久久av爽| 成人精品小蝌蚪| 人妻互换免费中文字幕| 国产精品视频一区视频二区| 中文字幕精品在线| 成人免费一级片| 国产日韩在线不卡| 乱子伦视频在线看| 亚洲毛片免费看| 57pao国产成人免费| 无码国精品一区二区免费蜜桃| 亚洲综合一区二区精品导航| 国内av免费观看| 欧美激情偷拍| 成人3d动漫一区二区三区91| a在线免费观看| 欧美一区二区三区四区高清| 日韩av手机在线免费观看| 久久精品免费看| 亚洲成人自拍| gogo大尺度成人免费视频| 久久九九国产精品怡红院| 国产精品乱码一区二区| 亚洲视频图片小说| 国产成人强伦免费视频网站| 欧美一区二区三区久久精品茉莉花| 91久久久亚洲精品| 午夜av在线播放| 欧美v日韩v国产v| 日本最新中文字幕| 久久久久久久久99精品| 欧美日韩激情视频在线观看| 岳的好大精品一区二区三区| 国产大片精品免费永久看nba| av在线电影院| 91精品婷婷国产综合久久| 麻豆一区二区三区精品视频| 成人h动漫精品| 成熟老妇女视频| 日本一区二区高清不卡| 91精品视频播放| 成人三级小说| 一区二区三区视频免费在线观看| 中文文字幕一区二区三三| 亚洲精品乱码久久久久久久久 | 黑人糟蹋人妻hd中文字幕| 国产欧美亚洲精品a| 成人春色激情网| 久草在线资源站资源站| 亚洲视频在线播放| 99久久精品国产成人一区二区| 亚洲国产精品久久久男人的天堂| 欧美色图亚洲激情| 久久99精品久久久久| 成人免费在线网| 国产一区二区三区探花| 91久色国产| 中文在线免费二区三区| 久久精品中文字幕电影| 日本免费一区二区三区最新| 欧美精品色综合| 欧美日韩综合在线观看| 亚洲图片你懂的| a视频免费观看| 国产在线乱码一区二区三区| 1024av视频| 亚洲精品a级片| 久久视频在线观看中文字幕| 91精品视频一区二区| 日韩av电影在线免费播放| a黄色片在线观看| 在线免费观看羞羞视频一区二区| www.久久综合| 欧美日韩精品是欧美日韩精品| 国产亚洲精品久久久久久打不开| 国产人成一区二区三区影院| www.com日本| 美国一区二区三区在线播放 | 欧洲美女精品免费观看视频 | 在线观看国产欧美| 色综合视频在线| 欧美一区二区视频在线观看2022| 久久精品视频1| 亚洲一区二区四区蜜桃| 亚洲欧美另类日本| 国产欧美一区二区三区沐欲 | 国产后入清纯学生妹| 欧洲精品在线观看| 青青操免费在线视频| 一区二区免费在线播放| 在线日韩国产网站| 国产精品麻豆欧美日韩ww| 色无极影院亚洲| www.在线成人| 中文字幕99页| 国产精品99久久久久久久女警| 亚洲综合欧美激情| 丝袜亚洲精品中文字幕一区| 日韩a在线播放| 国产日韩欧美一区| 岛国大片在线播放| 欧美日韩亚洲一区| 九一免费在线观看| 亚洲精品一区二区在线看| 亚洲欧洲在线一区| 日韩免费在线| 美女脱光内衣内裤视频久久影院| 欧美一区二区视频在线| 亚洲精品国产setv| 久久久久se| 亚洲图区在线| 欧美一区二区视频17c | 一本色道久久综合亚洲精品婷婷 | 国产亚洲精品bt天堂精选| 日本丰满少妇裸体自慰| 99久久久精品| 国产福利在线观看视频| 99久久精品免费| 野花社区视频在线观看| 久久亚洲综合色一区二区三区| 五月婷婷综合在线观看| 91在线你懂得| 国产伦理片在线观看| 久久久精品免费网站| 日韩乱码人妻无码中文字幕久久| 久久久青草青青国产亚洲免观| 国产成人无码精品久久二区三| 久久精品一级爱片| 日韩在线视频免费看| 一区二区在线观看视频| 国产在线观看免费视频今夜| 午夜精品久久久久久久久久久| www.国产com| 欧美亚洲国产bt| 97精品人妻一区二区三区| 日韩欧美色综合| 三级在线观看网站| 国产午夜精品一区二区三区| 久草中文在线观看| 欧美多人爱爱视频网站| jizz内谢中国亚洲jizz| 国产精品久久久久久久午夜| av在线精品| 久久精品丝袜高跟鞋| 日韩情爱电影在线观看| 黑人巨茎大战欧美白妇| 夜久久久久久| 自拍偷拍 国产| 国产成人综合网站| 在哪里可以看毛片| 亚洲黄网站在线观看| yjizz国产| 欧美日韩一区三区四区| 亚洲成人av综合| 国产偷亚洲偷欧美偷精品| 好操啊在线观看免费视频| 亚洲3p在线观看| 日本a人精品| 久久婷婷开心| 一级欧洲+日本+国产 | 韩日精品视频一区| 完美搭档在线观看| 中文字幕一区二区三区视频| 午夜影院在线看| 在线成人高清不卡| 欧美日韩免费做爰大片| 久久亚洲精品成人| 中文在线资源| 国产不卡一区二区三区在线观看| av中字幕久久| 男人的天堂狠狠干| 久久99热这里只有精品| 中文字幕一区二区久久人妻网站| 成人欧美一区二区三区白人| 欧美一区二区激情视频| 日韩一区二区麻豆国产| 成人精品一区二区三区校园激情| 欧美高清激情视频| 欧美成人福利| 欧美国产一二三区| 亚洲黄网站黄| 在线观看一区二区三区视频| 中文字幕av资源一区| 九九热在线视频播放| 日韩欧美一级二级三级久久久| 中文日本在线观看| 日韩av免费在线| 开心激情综合| 国产精品69久久久| 国产一区福利在线| 殴美一级黄色片| 欧美曰成人黄网| 国产在线观看黄| 欧美有码在线观看| 国产精品自在| 久久亚洲a v| 国产乱子轮精品视频| 久久人妻无码aⅴ毛片a片app | 午夜精品无码一区二区三区| 中文字幕综合在线| 美女色狠狠久久| 日韩欧美在线电影| aⅴ色国产欧美| 黄色网址在线视频| 亚洲成av人片www| 二区三区在线视频| 欧美国产极速在线| 成午夜精品一区二区三区软件| 久久综合亚洲精品| 顶级嫩模精品视频在线看| 真实国产乱子伦对白在线| 欧美一级片在线| 四虎亚洲精品| 成人3d动漫一区二区三区91| 国产精品v亚洲精品v日韩精品 | 91国内免费在线视频| 精品国产影院| 黄色一级视频片| 97超碰欧美中文字幕| 中文字幕在线看人| 永久免费精品影视网站| 国产一区二区色噜噜| 影音先锋欧美在线| 国产精品一二三四区| 国产精彩视频在线观看| 亚洲国产精品va在线看黑人| 欧美aa免费在线| 欧美性大战久久久久| 日韩成人一区二区三区在线观看| 国产欧美一区二区三区在线观看视频| 欧美日韩另类一区| www国产在线观看| 国产精品免费在线| 噜噜噜91成人网| 性少妇xx生活| 日韩精品资源二区在线| 国产va在线视频| 婷婷四月色综合| 国产精品综合一区二区| 国产欧美日韩另类| 国产一区二区黄| 中文久久电影小说| 亚洲熟女乱色一区二区三区| 欧美激情一区在线观看| 国产深喉视频一区二区| 97免费在线视频| 日韩成人免费| 国产真实乱人偷精品| 在线欧美一区二区| 羞羞的视频在线看| 蜜桃成人免费视频| 精品一区二区三区免费播放| 久草视频精品在线| 中文字幕亚洲图片| 动漫视频在线一区| 啊啊啊国产视频| 亚洲一区二区三区美女| 91成人高清| 国产亚洲精品久久飘花| 麻豆精品在线观看| wwwxxx亚洲| 欧美成人精品一区| 精品视频99| 亚洲国产果冻传媒av在线观看| 欧美体内she精视频| 黑森林国产精品av| 免费观看国产视频在线|