在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Android開發中如何解決典型場景缺通用日志的問題

麥辣雞腿堡 ? 來源:OPPO內核工匠 ? 作者:marc ? 2023-11-23 17:39 ? 次閱讀

下面針對一些典型場景缺通用日志(android/kernel)的問題,一一列舉如下,希望可以讓大家關注到缺日志的真實原因。如下問題也提醒各位工程師:謹慎添加日志,不要隨意添加,否則即容易造成自己的日志缺失也會導致其他業務模塊丟失日志。

通用日志丟失目前有如下情況會出現:

(1)liblog通過socket傳輸日志時失敗,此時在event日志中會記錄類似上圖中tag=liblog的埋點。具體見4.1、4.2節內容。

(2)其它進程通過socket讀取logd的日志時,此時由于日志打印速度過快,讀取速度跟不上寫入速度,造成了部分歷史日志被丟棄的情況,此時在event日志中會記錄tag=chatty的埋點。此種情況遇到較少。

(3) logd buffer中日志內存超過buffer大小了,則會按照每次裁剪日志的行數等于日志總行數的10%,并且會大于等于4行,小于256行。環形buffer大小超過了,會不斷循環裁剪。

(4) 文件存儲問題,導致日志內容無法落盤至日志文件。具體見4.3節內容。

(5) 低內存查殺日志進程,導致日志內容無法落盤。具體見4.4節內容。

日志丟失的問題可能不止以上原因,基本分析思路是首先了解問題發生場景及時間點,然后通過日志抓取和落盤場景進行分析,參考業務日志打印頻率、logd的狀態(logd的cpu負載、運行狀態)、系統的異常狀態(嚴重低內存、整機CPU負載高、文件系統異常、溫度過高限頻限核)等綜合原因,得出問題分析結論。往往日志缺失和系統狀態聯系較為緊密,所以分析此類問題,就要具備開闊的視野,能夠及時聯想到有關整機各個狀態,推測和佐證自己的分析原因和得出的結論。具體分析過程,也可以參考思維導圖。

圖片

下面針對以上內容,列舉如下幾個典型案例,僅供大家參考。

4.1 業務日志輸出頻率太高

(1) events日志出現大量丟棄日志打印

(2) 查看android日志,發現sensor日志打印量非常大,基本達到刷屏的程度

(3) android日志輸出頻率達4229條/秒,日志輸出頻率非常大,sensor日志打印處于top1,達到2418條/s。

總結:sensor日志打印頻率太高,超過了socket的處理能力,不能及時處理只能先行丟掉。故導致部分日志丟失。

4.2 整機負載高

(1) 輸出的日志出現大量的日志丟失內容

(2) 查看日志打印頻率,發現日志輸出頻率較低

(3) 查看systrace發現整機負載高達90%以上,logd一直處于runanble狀態,整機溫度也較高導致觸發了限頻限核。

總結:logd一直處于runnable狀態,導致logd無法獲得cpu時間片執行日志操作,容易出現socket通信失敗,故導致部分日志丟失。

4.3 存儲異常導致

(1) 查看日志發現mmap異常

(2) 由于沒有過多日志打印,故本地使用adb logcat抓取日志分析

總結:文件存儲出現問題,日志無法輸出到對應的文件中,日志信息無法得到落盤,故出現日志內容大量丟失。

4.4 低內存導致

(1) 日志文件為空

圖片

(2) kernel日志中發現打印日志進程被殺

圖片

(3) 查看內存,已經處于低內存狀態

圖片

總結:低內存導致日志進程被殺,出現日志文件無對應的日志信息落盤,故出現日志內容丟失。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3938

    瀏覽量

    127529
  • 文件
    +關注

    關注

    1

    文章

    568

    瀏覽量

    24767
  • 日志
    +關注

    關注

    0

    文章

    138

    瀏覽量

    10655
收藏 人收藏

    評論

    相關推薦

    Android基礎及典型案例開發指南》--創新移動開發系列

    `《Android基礎及典型案例開發指南》--創新移動開發系列 Android基礎篇+經典開發
    發表于 08-07 22:18

    推薦一本書《android應用程序開發典型案例》完整版PDF下載

    android應用程序開發典型案例》圖書簡介:共23章,內容包含兩大部分。第一部分是android程序設計基礎,在介紹android環境
    發表于 09-28 10:29

    消息隊列的應用場景

    、流量削鋒  流量削鋒也是消息隊列的常用場景,一般在秒殺或團搶活動中使用廣泛!  應用場景:秒殺活動,一般會因為流量過大,導致流量暴增,應用掛掉。為解決這個問題,一般需要在應用前端加入消息隊列
    發表于 06-23 10:19

    簡潔易用的日志系統 ulog 日志

    ulog 日志ulog 簡介日志的定義:日志是將軟件運行的狀態、過程等信息,輸出到不同的介質(例如:文件、控制臺、顯示屏等),并進行顯示和保存。為軟件調試、維護過程
    發表于 03-29 06:40

    Android基礎及典型案例開發指南》--創新移動開發系列

    Android基礎及典型案例開發指南》--創新移動開發系列
    發表于 02-08 00:32 ?11次下載

    Android系統的日志模式選擇機制

    在寫磁盤的過程如果意外掉電或系統崩潰很有可能導致文件系統中用戶數據和元數據不一致,現有文件系統主要采取寫前日志或寫時拷貝等一致性技術來解決該問題,但均沒有考慮目錄對可靠性需求的差異性。針對現有
    發表于 01-03 14:46 ?0次下載
    <b class='flag-5'>Android</b>系統的<b class='flag-5'>日志</b>模式選擇機制

    fireflyCORE-3399PRO主板JD4--Android開發

    Android開發 ADB 使用 前言 adb,全稱 Android Debug Bridge,是 Android 的命令行調試工具,可以完成多種功能,如跟蹤系統
    的頭像 發表于 12-17 16:30 ?1694次閱讀

    基于時間卷積網絡的通用日志序列異常檢測框架

    基于循環神經網絡的日志序列異常檢測模型對短序列有較好的檢測能力,但對長序列的檢測準確性較差。為此,提出一種基于時間卷積網絡的通用日志序列異常檢測框架。將日志模板序列建模為自然語言序列,
    發表于 03-30 10:29 ?8次下載
    基于時間卷積網絡的<b class='flag-5'>通用</b><b class='flag-5'>日志</b>序列異常檢測框架

    基于Android開發的ADT獲取內存的敏感信息

    Eclipse上的開發工具。目前Android開發所用的開發工具主要有Android Studio 、intellij idea、Eclip
    的頭像 發表于 09-06 15:22 ?1203次閱讀

    Android異常日志快速定位分析小技巧

    Android異常日志快速定位分析小技巧
    的頭像 發表于 08-09 10:06 ?2852次閱讀
    <b class='flag-5'>Android</b>異常<b class='flag-5'>日志</b>快速定位分析小技巧

    C++異步日志實踐

    文件,在日志產生不頻繁的場景下沒什么問題 可是,如果日志打印很頻繁,同步日志有什么問題? 一方面,大量的日志打印陷入等量的write系統調用
    的頭像 發表于 11-09 10:29 ?692次閱讀
    C++異步<b class='flag-5'>日志</b>實踐

    Android開發日志接口介紹

    、LOG_ID_RADIO、LOG_ID_EVENTS、LOG_ID_SYSTEM、 LOG_ID_CRASH。 1.1.1 日志緩沖區簡介 Android日志記錄系統守護進程logd維護的一組結構化環形緩沖區,這組可用的緩沖區
    的頭像 發表于 11-23 16:27 ?1125次閱讀
    <b class='flag-5'>Android</b><b class='flag-5'>開發</b><b class='flag-5'>中</b>的<b class='flag-5'>日志</b>接口介紹

    Android日志與logd交互過程

    2.2.3 Android日志與logd交互過程 2.2.3.1 Android日志傳遞給logd Android app層或framewo
    的頭像 發表于 11-23 17:06 ?962次閱讀
    <b class='flag-5'>Android</b><b class='flag-5'>日志</b>與logd交互過程

    鴻蒙OS開發典型頁面場景【一次開發,多端部署】(功能開發

    應用開發至少包含兩部分工作: UI頁面開發和底層功能開發(部分需要聯網的應用還會涉及服務端開發)。前面章節介紹了如何解決頁面適配的問題,本章
    的頭像 發表于 05-28 17:32 ?609次閱讀
    鴻蒙OS<b class='flag-5'>開發</b>:<b class='flag-5'>典型</b>頁面<b class='flag-5'>場景</b>【一次<b class='flag-5'>開發</b>,多端部署】(功能<b class='flag-5'>開發</b>)

    日志篇:模組日志總體介紹

    ?今天我們學習合宙模組日志總體介紹,以下進入正文。 一、本文討論的邊界 本文是對合宙 4G 模組, 以及 4G+GNSS 模組的日志功能的總體介紹。通過日志,可以對研發過程,以及模組
    的頭像 發表于 10-24 07:16 ?204次閱讀
    <b class='flag-5'>日志</b>篇:模組<b class='flag-5'>日志</b>總體介紹
    主站蜘蛛池模板: 奇米影视一区| 男女视频在线观看免费高清观看| 在线色资源| 亚洲精品视频在线看| 五月天婷婷丁香| 欧美全免费aaaaaa特黄在线| 国产欧美亚洲精品第二区首页| 久久999| 国产理论| 亚洲dv| 久久草在线免费| 天天干夜夜爽| 交专区videossex另类| 视频在线观看免费网址| h在线网站| 免费h网站在线观看| 亚洲精品国产自在久久出水| 一卡二卡四卡无卡乱免费网页| 美女被网站免费看九色视频 | 99啪啪| 日本特黄视频| 日本69xxxxxxx69| 美女扒开尿口给男人看的让| 香蕉视频在线观看黄| 亚洲一级毛片免费在线观看| 色婷婷综合缴情综六月| 六月婷婷在线| 理论片一区| 99视频网址| 国产精品午夜久久| 日本一级高清不卡视频在线 | 亚洲成a人伦理| 精品无码中出一区二区| 四虎伊人| 日韩美毛片| 色婷婷综合久久久中文字幕| 美女国产一区| 午夜影院免费观看| 天天射天天射天天射| 国产美女久久| 福利视频一区二区|