精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

中文字幕亚洲欧洲| 精品在线视频一区二区| 99热6这里只有精品| 精品午夜av| 亚洲电影在线播放| 热re99久久精品国产99热| 中文字幕永久在线观看| 欧美国产免费| 亚洲欧美成人网| 久热精品在线播放| 国产高清在线a视频大全| 久久久久久久久久久久久久久99| 91精品国产自产在线老师啪 | 久久精品视频中文字幕| 男女视频在线观看网站| 国产精品电影| 中文字幕在线一区| 国产综合精品一区二区三区| 久久久久精彩视频| 国产精品黄色| 在线视频日本亚洲性| 绯色av蜜臀vs少妇| 国产极品一区| 欧美日韩在线免费观看| 欧美精品在欧美一区二区| 国产日本在线视频| av亚洲精华国产精华| 91色p视频在线| 中文字幕一区二区人妻视频| 影音国产精品| 久久成年人视频| 国产一二三av| 猛男gaygay欧美视频| 日韩精品一区二区三区在线| 亚洲久久中文字幕| 美女一区网站| 欧美日韩国产限制| 精品少妇人欧美激情在线观看| 在线观看免费高清完整| 久久久午夜电影| 久久综合久久综合这里只有精品| 亚洲第一精品网站| 国产精品996| 91久久精品一区| 一级α片免费看刺激高潮视频| 羞羞答答国产精品www一本| 久久国产精品99国产精| 免费一级特黄3大片视频| 久久精品国产亚洲5555| 欧美一区二区三区啪啪| 成年人观看网站| 17videosex性欧美| 一区二区三区自拍| 欧美 日韩 国产 在线观看| 精品三级久久久久久久电影聊斋| 成人听书哪个软件好| 91色在线观看| 一级日韩一级欧美| 青草av.久久免费一区| 欧美一级淫片播放口| 免费观看一级视频| 国精品一区二区| 欧美美最猛性xxxxxx| 成人自拍小视频| 精品美女久久| 亚洲天堂av高清| 90岁老太婆乱淫| 天堂在线精品| 日韩电视剧免费观看网站| 国产精品一区二区在线免费观看| 亚洲成av人片在线观看www| 91精品婷婷国产综合久久竹菊| 天天影视综合色| 成人影院在线免费观看| 欧美色涩在线第一页| 亚洲最大综合网| 欧美高清影院| 91麻豆精品国产自产在线观看一区| 成人久久久久久久久| 在线免费观看污| 亚洲欧洲色图综合| 天天成人综合网| 性国产高清在线观看| 亚洲精品乱码久久久久久黑人| 亚洲高潮无码久久| 日本在线视频www鲁啊鲁| 一区二区三区日韩| 欧美日韩成人免费视频| 电影一区二区三区| 欧美性一二三区| av亚洲天堂网| 日韩影片在线观看| 亚洲国产精彩中文乱码av| 成人网站免费观看| 国产99亚洲| 麻豆成人在线看| 欧美黄色免费在线观看| 亚洲在线电影| 国产伦精品免费视频| 国产成人毛毛毛片| 97久久超碰精品国产| 日韩精品久久久| 国产调教视频在线观看| 午夜欧美大尺度福利影院在线看| 37pao成人国产永久免费视频| 久久久久黄色| 精品裸体舞一区二区三区| 永久免费看mv网站入口78| 免费国产自久久久久三四区久久| 亚洲天堂av在线免费| 国语对白在线播放| 国产亚洲综合精品| 成人观看高清在线观看免费| www.综合色| 久久久综合激的五月天| 做爰高潮hd色即是空| 男人久久天堂| 欧美男男青年gay1069videost| 日韩女优在线视频| 91亚洲一区| 欧美一区三区三区高中清蜜桃| 91丨porny丨在线中文 | 欧美日一区二区三区| 777xxx欧美| aa一级黄色片| 日韩免费视频| 欧美一区二区三区免费观看| 国产露脸国语对白在线| 国产丝袜美腿一区二区三区| 久久福利一区二区| 麻豆久久久久| 亚洲欧美中文日韩在线v日本| av成人免费网站| 久久久久久婷| 福利视频一区二区三区| aiai在线| 一本大道久久a久久精二百| 日本wwww色| 五月天综合网站| 6080yy精品一区二区三区| 亚洲第一页在线观看| 国产精品久久久久久久久免费相片 | 青青青伊人色综合久久| 国产原创精品| 欧美边添边摸边做边爱免费| 色网综合在线观看| 一级欧美一级日韩片| 欧美日韩岛国| 国产精品日韩一区| 免费一级毛片在线观看| 午夜在线成人av| 精产国品一区二区三区| 99久久夜色精品国产亚洲96| 国产精品日韩专区| 国产剧情在线观看| 色综合久久久久网| 亚洲AV无码国产精品| 夜夜夜久久久| 亚洲aaa激情| 中文字幕日本在线观看| 在线观看一区不卡| 欧美大波大乳巨大乳| 奶水喷射视频一区| 精品无人乱码一区二区三区的优势| 精品一性一色一乱农村| 精品剧情v国产在线观看在线| 亚洲不卡在线播放| 韩国午夜理伦三级不卡影院| 日韩欧美a级成人黄色| 精品国产一区二区三区麻豆小说| 欧美人与牲禽动交com| 日韩三级av在线播放| 国产精品1区2区3区4区| 国产真实乱子伦精品视频| 国产又爽又黄ai换脸| 成人动漫视频在线观看| 美女精品视频一区| 午夜精品久久久久久久爽| 亚洲蜜臀av乱码久久精品| 亚洲av毛片在线观看| 欧美日韩专区| 精品国产_亚洲人成在线| 在线女人免费视频| 亚洲开心激情网| 亚洲国产成人精品女人久久| 国产精品人成在线观看免费| 在线免费看v片| 伊人久久婷婷| 日本成人看片网址| 91精品福利观看| 九色91av视频| 天堂网2014av| 欧美综合欧美视频| 日韩在线一卡二卡| 国产激情视频一区二区在线观看 | 亚洲国产精品一区二区久久| 手机在线成人av| 石原莉奈一区二区三区在线观看| 一本久道久久综合| 国产91欧美| 久久久久久香蕉网| 第一页在线观看| 日韩欧美123| 日本一区二区免费电影| 中文字幕日韩一区| 亚洲啪av永久无码精品放毛片 | 九九热最新视频//这里只有精品| 特黄aaaaaaaaa真人毛片| 欧美视频在线一区二区三区| 日本青青草视频| 国产亚洲综合av| 午夜视频在线观| 日韩和欧美的一区| 99久久99久久精品| 奇米狠狠一区二区三区| 5566av亚洲| 乱子伦一区二区| 国产成人精品亚洲日本在线观看| 色老头一区二区三区在线观看| 国产极品久久久| 在线亚洲人成电影网站色www| jizz亚洲少妇| 久久精品人人做人人爽97| 在线a免费观看| 玖玖玖国产精品| 青草视频在线观看视频| 成人综合久久| 国产精品区一区二区三在线播放 | 欧美孕妇孕交xxⅹ孕妇交| 欧美日韩免费在线视频| 日韩一区二区视频在线| 亚洲激情六月丁香| 日韩一级片在线免费观看| 波多野结衣中文一区| 中文字幕55页| 久久精品国产成人一区二区三区| 日本a级片免费观看| 亚洲视频一区| 一区二区日本| 欧美艳星介绍134位艳星| 99在线视频免费观看| 日韩不卡在线| 欧美亚洲激情视频| 超免费在线视频| 欧美高清在线观看| 直接在线观看的三级网址| 最新69国产成人精品视频免费| 青梅竹马是消防员在线| 亚洲福利在线看| www.国产黄色| 日韩欧美国产wwwww| 国产精品视频a| 欧美日韩黄色一区二区| 中文字幕黄色片| 五月激情丁香一区二区三区| 久久久精品人妻一区二区三区四| 亚洲色图20p| 国产视频精品免费| 亚洲欧美在线视频| 999精品在线视频| 国产精品国产自产拍在线| 免费视频91蜜桃| 国产无遮挡一区二区三区毛片日本| 在线观看国产免费视频| 97精品久久久午夜一区二区三区| 午夜男人的天堂| ww亚洲ww在线观看国产| 中文字幕一区二区三区人妻不卡| 国产美女久久久久| 野战少妇38p| av在线不卡电影| 欧美在线观看网址综合| 亚洲天堂五月天| 一本大道av一区二区在线播放| 久久久久99精品成人片我成大片| 欧美性猛交xxxx富婆弯腰| 日本中文字幕第一页| 色狠狠综合天天综合综合| 无码人妻丰满熟妇区bbbbxxxx| 91国产视频在线观看| 欧美日韩a v| 日韩欧美一区二区三区在线| 亚洲第一页综合| 亚洲精品在线视频| lutube成人福利在线观看| 久久精品夜夜夜夜夜久久| av官网在线播放| 91av在线播放视频| av成人免费看| 91精品国产一区二区三区动漫| 亚洲超碰在线观看| 99re国产| 精品国产一区二区三区噜噜噜 | aaa国产精品视频| 久久av一区二区三区亚洲| 精品视频亚洲| 成人在线免费观看网址| 亚洲国产片色| 欧美精品aaaa| 国产·精品毛片| 少妇真人直播免费视频| 国产亚洲一区二区三区| 亚洲不卡在线播放| 欧美视频一区二区三区…| 亚洲视频久久久| 亚洲精品成人免费| 午夜视频在线看| 992tv成人免费影院| 人人鲁人人莫人人爱精品| 国产欧美va欧美va香蕉在| 操欧美女人视频| 日本一区视频在线观看| 欧美国产专区| 日韩精品一区二区三区不卡 | 日韩高清在线一区二区| 91亚洲精华国产精华精华液| 中文字幕人妻一区二区三区在线视频| 日韩理论片中文av| 欧美精品韩国精品| 91精品国产一区二区| 色网站在线免费观看| 久久亚洲精品网站| 蜜桃精品在线| 国产精品三区在线| 亚欧美无遮挡hd高清在线视频 | 天堂av在线| 欧美女孩性生活视频| 国产成人综合一区| 精品一区二区在线免费观看| 巨胸大乳www视频免费观看| 亚洲愉拍自拍另类高清精品| 91黑人精品一区二区三区| 日韩一区二区在线播放| 国产中文字幕在线看| 久久久亚洲成人| 亚洲网站三级| 欧美日韩精品免费观看视一区二区| 国产精品sm| 天堂av.com| 亚洲日本成人在线观看| 中文字幕一区二区免费| 亚洲二区在线播放视频| 日本在线视频www鲁啊鲁| 国产精品swag| 牛牛国产精品| 91热视频在线观看| 国产精品久久久久久久久动漫 | 亚洲精品久久久久avwww潮水| 最近2019中文免费高清视频观看www99| 两个人看的在线视频www| 国产高清在线一区二区| 婷婷综合激情| 中文久久久久久| 国产日韩精品一区二区三区在线| 日本三级视频在线| 亚洲国产精品久久| 999精品网| 国产欧美韩日| 亚洲最黄网站| 99riav国产精品视频| 一区二区三区日本| 亚洲欧美强伦一区二区| 九九久久综合网站| 色妞ww精品视频7777| 300部国产真实乱| 国产精品资源在线| 免费三片在线播放| 宅男在线国产精品| 性网站在线观看| 鬼打鬼之黄金道士1992林正英| 国产在线欧美| 中文字幕免费高清视频| 疯狂做受xxxx欧美肥白少妇| 欧美女v视频| 国产精品丝袜高跟| 欧美1级片网站| 无码人妻一区二区三区一| 亚洲成人免费视频| 香蕉视频免费在线看| 青青久久av北条麻妃海外网| 精品国产一区一区二区三亚瑟| 亚洲精品久久久久久宅男| 国产精品进线69影院| 国产精品久久久久精| 蜜臀久久99精品久久久无需会员| 免费一区二区三区在线视频| 国内少妇毛片视频| 91社区在线播放| 中文字幕福利视频| 欧美成人中文字幕| 四虎国产精品永久在线国在线| 日韩精品在线视频免费观看| wwwwxxxxx欧美| 国产精品2018| 日韩视频一二区| 成人免费观看cn| 国产日产精品1区| 国产精品无码在线播放| 色综合91久久精品中文字幕 | 日产欧产美韩系列久久99|