整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Google 出手了!"刪除中國應

          Google 出手了!"刪除中國應用" App 被下架,印度人表示氣憤,并喊話劈柴哥出面

          020 年,魔幻現實主義一次又一次在這個世界上演。

          這一次,我們要說的是印度,與兩個 App 有關。

          第一個 App,名為 Remove China Apps(刪除中國應用),由印度人開發,其目的是刪除來自所有中國公司的 App,它一度躍升至 Google Play 印度下載榜第二名。

          第二個 App,名為 Mitron,它可以說是 TikTok(抖音海外版)的印度克隆產品,它在印度很受歡迎,一度是 Google Play 印度下載榜的第一名。

          不過,目前兩個 App 都被 Google Play 應用商店下架了。

          針對中國的 Remove China Apps

          Remove China Apps,從命名上來看,就是一款用心不良的 App。

          根據志象網報道,這款 App 于 5 月 17 日在 Google Play 應用商店上架,并在兩周的時間里獲得超過 100 萬的下載量,14 萬評論,評分高達 4.9。

          而它的大小只有 3.5MB,只有 Android 版本。

          從功能上來說,這款 App 在安裝之后,可以掃描用戶手機上安裝的所有 App,然后識別出其中由中國廠商開發的 App,比如說 TikTok、阿里速賣通、UC 瀏覽器、WPS Office、AirBrush 等在印度比較常見的應用。

          更奇葩的是,它為用戶提供了卸載選項,一點就可以刪除識別出來的中國產 App。

          而一旦用戶操作成功,它就會表示祝賀,并提醒用戶分享——看起來功能非常簡單,但對于那些對中國產品有抵制意識的印度用戶來說,卻非常具有迎合力。

          雷鋒網注意到,在社交平臺 Twitter 上,能夠看到不少印度用戶表達對這個 App 的狂熱,其中還夾雜著所謂 "抵制中國產品" 的標簽;還有很多用戶分享了已經刪除來自中國的 App 之后的祝賀頁面。

          這些用戶中,甚至還包括來自印度寶萊塢的演員。

          不僅如此,在國外社交平臺上,也有一些網友總結了一些列表,這些列表顯示了可以用哪些 App 來取代來自中國廠商的 App;比如說用 Chrome 或 Firefox 來取代 UC 瀏覽器,用 Mitron 或 YouTube 來取代 TikTok 等。

          雷鋒網了解到,這款名為 Remove China Apps 背后的開發商為一家名為 OneTouch AppLabs 的印度企業,該企業注冊地位于印度的齋普爾(Jaipur)。

          另外,據志象網了解,其背后的開發人員可能是一位曾經在中國企業工作的印度工程師,但他在疫情期間被解雇了。

          如此來看,這款 Remove China Apps 正是印度民間滋生的 "抵制中國" 的社會思潮的衍生品。

          被下架后,印度人開始罵 Google

          然而,Remove China Apps 火了之后,卻被 Google 盯上了。

          6 月 2 日,據外媒 TechCrunch 報道,這款 App 已經被 Google 下架,原因是它違反了 Google Play 應用商店的 "欺騙行為政策"(Deceptive Behaviour Policy)。

          據了解,在這個政策下,Google Play 規定:所有上架的 App 不允許更改用戶的設備設置,也不能在用戶未認知或許可的情況下,進行 App 之外的操作;不僅如此,App 還不能鼓勵或者慫恿用戶來移除或者禁用第三方應用。

          從這個角度來看,Remove China Apps 可以說是多處違反了上述政策——也就是說,它被 Google 移除,一點都不冤枉。

          但是,看到這個 App 被刪除,印度人不樂意了;不僅如此,他們把矛頭指向了 Google 官方。

          一位名為 Pushp Raj 的網友質疑稱:

          Google Play Store 似乎只為中國服務,因為 Google 不僅刪除了針對 TikTok 的 800 多萬個負面評價來提升 TikTok 的評分,還從 Play Store 中刪除了 Remove China Apps。

          一位名為 Debapriya 的網友表示對 Remova China Apps 被從 Play Store 中刪除表示強烈抗議,該網友還在線圈起了身為印度裔的 Google CEO Sundar Pichai,表示:

          身為一個印度人,這是(我們)期待你做的最后一件事情。你可以下架這個 App,但是你能下架我內心的愛國主義情結嗎?請把這個 App 恢復上架。

          對此,不知道身為印度裔的 Sundar Pichai 會怎么看。

          還有網友稱,在 Google 刪除這個 App 的情況下,無法再期待任何人中立了,每個人都有自己的立場,Google 也展示了它的立場——選擇與十億潛在用戶站在一起……

          值得一提的是,在 Google 刪除 Remove China Apps 之后,還有印度網友在網上分享這個 App 的 APK 安裝文件包,也有人推出了同樣功能、不同名字的 App。

          TikTok 的印度克隆版,也被下架了

          除了 Remove China Apps,還有一款來自印度的 App——Mitron——也被下架了。

          Mitron,一款幾乎可以說是 TikTok 的印度克隆產品,它在界面、功能等方面與 TikTok 如出一轍,被媒體稱之為印度本土為了應對 TikTok 而推出的產品。

          按照其官方的說法,Mitron 是由印度理工學院(IIT)學生開發的。

          出于印度本土的對抗情緒,以及此前 TikTok 在遭遇的抵制,Mitron 在印度大火,其在不到一個月的時間里就獲得了 500 萬的下載量,并且在 5 月 30 號位列印度免費下載榜榜首。

          然而,很快,就有人對 Mitron 提出了質疑。

          據印度媒體 News18 報道,其實,Mitron App 的所有源代碼,包括它的功能、用戶界面,都是從巴基斯坦軟件開發商 Qboxus 那里購買的——根據 Qboxus CEO Rfan Sheikh 的說法,這些源代碼售價不過是 34 美元,也就是 2600 印度盧比。

          Rfan Sheikh 表示,Mitron 的開發者只是修改了 logo,然后直接上傳。

          令人吃驚的是,除了 Mitron 之外,在印度市場還有不少類似于 TikTok 的短視頻類 App,比如說 TicToc(由 Qboxus 從 TikTok 復制而來),Follow(2019 年 9 月發布),KidsTok(2019 年 12 月發布),HotToks(2019 年 12 月發布)等。

          除了來源問題,Mitron 還面臨另外一個重大質疑:隱私。

          實際上,在很長一段時間里,即使已經上架,Mitron 根本沒有提供一個基本隱私政策,用戶的數據全部存在 Mitron 自己的服務器中,因此 Mitron 可以輕而易舉獲得用戶個人信息。后來,在媒體關注下,該 App 提供了一個基于 CCPA(加州消費者隱私法案)的隱私政策,但卻宣稱它只適用于加州用戶。

          換句話說,使用 Mitron 的印度用戶,隱私根本得不到保障。

          最終,Google 告訴外媒 CNBC-TV18,因為該 App 違反了其 Play Store 的 "Spam and Minimum Functionality"政策,所以將其下架。

          當然,盡管如此,Mitron 依然能以 APK 安裝文件包的方式存在。

          而讓雷鋒網大跌眼鏡的是,目前,在 Google Play Store 商店中還有不少 Mitron 的 "李鬼" 版本 App,讓用戶虛實不分,有的 App 還專門強調其 Make in India 的標簽,似乎是打算利用印度民眾的一些情緒來獲取更多用戶。

          這,大概是另外一種魔幻現實主義吧。

          本文參考資料:

          • https://www.news18.com/news/tech/mitron-not-indian-tiktok-but-rebadged-pakistani-app-bought-for-rs-2500-exclusive-2643201.html

          • https://www.cnbctv18.com/technology/exclusive-mitron-indias-so-called-answer-to-tiktok-suspended-from-google-play-store-6051091.htm

          • https://techcrunch.com/2020/06/02/remove-china-apps-google-play-store/

          • https://mp.weixin.qq.com/s/LiTJjBA5l2LTPS5SOmsVnw

          • https://mp.weixin.qq.com/s/_J2cl04RYkpOFzpZv0Mq3g

          搞科技教程】對華為C8813Q手機里的系統軟定制軟件進行刪除,可是看到那么多的軟件也不知道哪些該刪除,哪些軟件不該刪除,因為軟件太多了,并且這些軟件都是英文的名字,弄不好刪除錯了就麻煩了,針對這個問題呢,今天在就里就來給大家分享一下詳細的精簡列表,有了個這個列表大家就可以有個對照了,也不會盲目的進行刪除了。

          提示:在刪除系統自帶的軟件之前,手機必須先要獲取root權限

          ApkBatchInstall.apkApk批量安裝器可刪

          ApplicationsProvider.apk搜索應用程序提供商可刪

          BackupRestoreConfirmation.apk備份還原確認可刪

          Bluetooth.apk藍牙不可刪

          BluetoothServices.apk藍牙服務不可刪

          Calculator.apk系統自帶計算器可刪

          Calendar.apk系統自帶日歷可刪

          CalendarProvider.apk自帶日歷儲存器可刪

          CertInstaller.apk證書安裝程序不可刪

          Contacts.apk系統自帶聯系人不可刪

          ContactsExt.apk聯系人相關組件不可刪

          ContactsProvider.apk系統自帶聯系人存儲不可刪

          DefaultContainerService.apk軟件包訪問幫助不可刪

          DownloadProvider.apk下載管理器可刪

          DownloadProviderUi.apk下載內容可刪

          DrmProvider.apkDRM受保護數據服務可刪

          Email.apk系統自帶電子郵件可刪

          Exchange.apk推送和發送電子郵件服務可刪

          FaceLock.apk人臉識別可刪

          Galaxy4.apk黑洞動態壁紙可刪

          Gallery2.apk圖庫和相機可替換

          GoogleLoginService.apk谷歌登錄服務可刪---建議保留

          GoogleServicesFramework.apk谷歌服務框架可刪---建議保留

          HandWritingSimpPack.apk手寫輸入可刪

          Hispace.apk華為Apk市場可刪

          HoloSpiralWallpaper.apk光環螺旋動態壁紙可刪

          HTMLViewer.apkHTML查看器不可刪

          HwAllBackup.apk華為全備份可刪

          HwBluetoothImport.apk藍牙導入通訊錄不可刪

          HwBrowser.apk華為瀏覽器可刪

          HwCallplus.apk視頻通話可刪

          HwLauncher6.apkEMUI桌面可刪---需要先安裝第三方桌面

          HwCloudDrive.apk華為文件管理器可刪

          HwCloudPlus.apk華為云設置可刪

          HwDeskClock.apk華為自帶時鐘不可刪

          HwDLNA.apkDLNA服務可刪

          HwFlashlight.apk華為手電筒可刪

          HwFMRadio.apk華為收音機可刪

          HwGPMS.apk認證服務不可刪

          HwHelpCenter.apk華為EMUI幫助中心可刪

          HwHiSync.apk同步不可刪

          HwIME.apkEMUI輸入法可刪

          HwLauncher6.apkEMUI桌面可刪---需要先安裝第三方桌面

          HwLockScreen.apk華為鎖屏可刪

          HwMessage.apk華為短信不可刪

          HwMeWidget.apkEMUI桌面插件可刪

          HwNotepad.apk記事本可刪

          HwNotePad[1].apk記事本相關可刪

          HwNumLocation.apk來電歸屬地可刪

          hwOnlineClient.apk華為服務中心可刪

          HwOUC.apk系統在線更新不可刪

          HwPhoneFinder.apk手機找回可刪

          HwProfileSwitcher.apk華為情景模式不可刪

          HwPushService.apk推送服務可刪

          HwQuickSearchBox.apk搜索可刪

          HwSoundRecorder.apk錄音機可刪

          HwStartupGuide.apkEMUI使用向導不可刪

          HwThemeManager.apk華為主題可刪

          HwToolBox.apk下拉快捷控制欄不可刪

          Hwuf.apk華為反饋服務可刪

          HwUserFeedback.apk華為反饋可刪

          HwVAssistant.apk華為語音助手可刪

          HwWallpaper6.apk華為壁紙可刪

          HwWeatherClock.apk華為天氣時鐘可刪

          HwWeatherLiveWallpaper.apk華為天氣動態壁紙可刪

          HwWiFiHotspot.apkWi-fi熱點不可刪

          KeyChain.apk密鑰鏈不可刪

          LatinIME.apk谷歌輸入法可刪

          LiveWallpapers.apk動態壁紙不可刪

          LiveWallpapersPicker.apk動態壁紙拾取不可刪

          MagicSmokeWallpapers.apk魔幻煙霧動態壁紙可刪

          mapbarnavi.apk圖吧導航可刪

          MediaCenter.apk華為音樂可刪

          MediaProvider.apk媒體儲存不可刪

          MMITest_II.apk工程模式不可刪

          MyCalendar.apk我的日歷可刪

          MyEmail.apk我的郵件可刪

          NoiseField.apk氣泡動態壁紙可刪

          OMACP.apk配置信息不可刪

          PackageInstaller.apkApk安裝器不可刪

          PhaseBeam.apkPhaseBeam動態壁紙可刪

          Phone.apk撥號盤不可刪

          PicoTts.apk微型TTS不可刪

          PinyinPack.apk拼音補丁包可刪

          PolarisOfficeCN.apkoffice可刪

          PowerSavingMode.apk省電模式不可刪

          ProjectMenuAct.apk工程模式列表不可刪

          Protips.apk使用提示不可刪

          Provision.apk設置向導不可刪

          QuickSearchBox.apk搜索可刪

          Settings.apk系統設置不可刪

          SettingsProvider.apk設置儲存不可刪

          SharedStorageBackup.apk共享存儲備份不可刪

          SmartcardService.apk智能卡服務可刪

          SpeechService.apk語音服務不可刪

          Stk.apksim卡管理程序可刪

          SystemUI.apk系統狀態欄不可刪

          TelephonyProvider.apk通話信息存儲服務不可刪

          UserDictionaryProvider.apk通訊支持程序不可刪

          VideoEditor.apk電影工作室可刪

          VisualizationWallpapers.apk頻譜動態壁紙可刪

          VpnDialogs.apkVPN局域網服務不可刪

          WAPPushManager.apkWAP推送服務可刪

          atop 是一款開源的單機性能監測工具,支持實時觀測的同時、也支持讀取歷史文件排查問題。另外一個優點是除提供 CPU、MEM、DISK 等全局指標外,還提供進程、線程級別的各項指標監控數據。鑒于 atop 的這些優點,字節跳動基于社區的 atop 進行優化,目前已迭代 3 個版本,穩定運行接近三年。本文將和大家分享字節跳動內部 atop 工具的新特性及使用情況。

          傳統特性介紹

          What - atop 是什么

          atop 本身是一個單機性能監測工具,每間隔 interval(實時監控默認間隔是 10s,而后臺采集社區默認間隔是 600s,即 10min)時間去采集本機常用的全局指標和進程指標。直接執行atop即可展示,大致分為上下兩部分,分別展示全局指標和進程指標。同時支持快捷鍵切換多種“界面模式”,用于專門查看進程的 CPU、內存、磁盤等指標信息。

          直觀展示


          運行方式

          根據用戶使用需求,能夠以多種形式運行。一種是直接運行 atop 二進制,顯示實時數據;一種是以服務形式(systemd 或 SysV Init)部署在物理機、虛擬機或容器里,作為常駐進程,采集數據寫入磁盤,以天為分割單位計入不同文件;一種是使用atop -r $atop_log_file按需讀取歷史數據。是一款少見的能夠支持查看詳細歷史記錄的工具,這在定位非實時問題時尤其有幫助。

          代碼結構

          When - 什么時候使用 atop

          atop 記錄了很多指標,如全局的 CPU、CPL、MEM、DISK、NET、PSI,進程的 PID、PPID、TID、CMD、SYSCPU、USRCPU、CPUNR、RSIZE、PSIZE、RDDSK、WRDSK 等,稱得上一個大而全的工具。而 atop 本身占有資源很少,并不會帶來額外的性能開銷。因此很多場景都可以使用 atop 來查看各種指標,進而幫助用戶更好的了解業務進程在操作系統中的呈現。舉例如下:

          集群

          目前上游還不支持 atop 指標在集群粒度的聚合,但字節內部提供 JSON 數據的輸出,可通過數據處理一系列流程將隸屬同一集群的所有機器的 atop 數據都入庫存儲(可選擇性按時間對數據進行稀釋)。并按照業務需求加以展示,如分別對全局常用指標和某類業務(多進程 PID 加以聚合)各項指標繪制成曲線圖,用于觀測 24h 時間周期內的數據變化;也可以用于統計基礎服務的利用率。

          單機

          在線排查

          業務高峰期,如果發現抖動,可直接運行atop綜合查看全局指標和進程指標的哪項指標異常,進而定位排查問題。一般來說先觀察全局指標來縮小范圍,看是 CPU、MEM、磁盤讀寫、網絡中的哪項引發的問題。常見問題有,如果總 CPU 的 sys 態及 user 態飆高、并且只有幾個單 CPU 核很高,多半是綁核不均勻引起的;如果 CPL(CPU Load Average)不高但 CPU 的中斷 irq 很高,多半是 IO 操作引發的。

          歷史定位

          前文提到過,常用的監控工具中,能夠提供詳細歷史數據并且能高效保存的幾乎沒有;如果需要存儲,需要人工干預、打通整個流程。而 atop 本身提供了日志存儲功能,并自帶日志壓縮機制,盡量確保存儲無壓力。為保證歷史日志不會將系統盤打滿,字節開發了定制化存儲位置和存儲天數的功能,將在下文詳細說明。

          功能上線

          atop 有個 interval 參數,可通過配置,來定制化數據采集的間隔,如 10s、甚至 1s。如果業務有新功能上線,想自測新功能對系統帶來的影響,可以將 interval 設置成 1 秒,實時觀測各指標的動態變化。

          性能優化

          atop 提供細粒度的進程態各項指標值的展示,在業務調優過程中,可參考進程態的數據變化來衡量調優是否符合預期。

          告警輔助

          atop 的數據比較全,有很多其他監控工具不具備的指標,如 oom-kill、per NUMA 指標等。可用于告警數據來源的補充。

          How - 如何使用 atop

          atop 針對全局指標和進程指標分別提供了很多快捷鍵,供用戶查看更多的指標。接下來列舉一些常見問題,詳細參數可以通過man atop進行查看。

          如何使用 atop?如何查看歷史數據?

          用戶可直接運行 atop 命令查看實時的信息,也可以通過 atop -r /var/log/atop/atop_$date 文件查看歷史信息。讀取文件時有多種交互方式,比如-b 代表從什么時刻開始讀,-e 代表讀取到什么時刻(在社區支持分鐘級別讀取的基礎上,字節內部支持秒級別讀取)。快捷鍵說明如下圖:

          快捷鍵說明b輸入時間,格式為"12:23"(時:分)t前進 10sT后退 10sg按 CPU 使用率排序,默認排序方式m按內存使用率降序排列d按磁盤使用率降序排列y查看線程信息j查看 container 聚合信息c查看詳細的 command linel定制化查看每個 CPU 核/每個磁盤/每個網卡的信息f展示全局指標中 fixed 的指標Q根據進程狀態過濾,如 R|S|D|Z 等I按照 PID 進行搜索(注:大寫的 i)

          非 root 用戶是否可以查看日志?

          可以,默認有讀權限。但是安裝包、重啟服務、修改日志存儲天數等還是需要 root 權限。但非 root 用戶按 d 無權限實時查看進程的磁盤信息。這是因為非 root 用戶默認被禁止讀取其他用戶的/proc/$pid/io 文件,反映到 atop 代碼里就是沒有設置相關標志位,導致無法查看磁盤。

          但查看歷史文件數據可以打消這個魔咒,也就是說非 root 用戶可以通過atop -r /var/log/atop/atop_$date 查看磁盤相關數據,畢竟 atop 寫日志時是以 root 用戶在運行。

          atop 如何查看線程信息

          默認只有進程信息展示,按 y 可查看線程。如下圖,白色為進程,黃色為該進程的所有線程。再次按 y,線程展示消失。

          netatop:記錄進程態網絡指標

          進程態網絡相關的指標是通過定制化安裝 netatop kernel module 完成的。本質上是通過 netfilter hook 獲取進程數據,額外有個 netatopd daemon 負責數據記錄及壓縮。在數據量比較大的場景,會影響到性能,因此默認不開啟該功能。如果開啟,可以按 n 查看 per 進程的網絡指標。

          磁盤常見問題

          • 全局指標中 DSK 行的 busy 代表什么?
            • busy=io_ms/per_cpu_ms,其中 io_ms 是處理 io 所花費的時間(ms 單位是毫秒),busy 就是過去 10s 內 io 處理的時間占單 CPU 時間的比例(其中 io wait 并不真實占用 CPU 資源,而是處于 sleep 狀態)
          • 按 d 之后,查看到進程欄的 DSK 列 很高,表示什么?
            • DSK 列的數值是個相對比,表示該進程占當前展示的所有進程之和的比率,是個相對值; 換句話說,該列對于排查是哪個進程導致的 heavy load 并無意義。
            • 查看進程的磁盤利用率,要看 RDDSK, WRDSK 這兩列絕對值,表示所屬進程的讀/寫字節數。

          字節版新特性一覽

          NUMA 聚合

          隨著云原生場景的推進,各云廠商正嘗試將不同特征的業務(如優先級不同、延遲敏感度不同的多個業務)混部在同一臺物理機上,盡量充分地將機器的物理資源利用起來,以提高單機的資源利用率。常見的混部場景有在離線混部,而常用的混部手法是將不同業務綁定不同 NUMA,從物理上達到隔離。那么查看 NUMA 粒度而不是整機粒度的 CPU、MEM 等指標則更有意義。基于這迫切的需求,字節內部實現了 NUMA 的監控粒度,相關代碼已被社區接收,展示效果如下:

          https://github.com/Atoptool/atop/pull/163

          • 支持 per NUMA 粒度內存相關信息查看

          例:一臺 4NUMA 的機器,其 NUM(Memory per NUMA)展示如下圖

          • 支持查看 per NUMA 內存碎片化,使用百分比展示

          例:如上圖 NUM 的 frag 字段。

          • 支持 per NUMA 粒度 CPU 相關指標的聚合

          例:一臺 4NUMA,運行了虛擬機的 arm 機器上,其 NUC(CPU per NUMA)展示如下圖

          JSON 格式輸出

          前文提到過,目前社區不支持 atop 指標在集群粒度的聚合;除此之外,atop 作為一個單機工具,如果業務想查看某臺服務器的監控,需要申請權限登錄到機器上,這在某些場景下比較受限。因此想到有沒有一種方式,針對擁有某個集群機器權限的同學來說,可以直接查看該集群內所有機器的 atop 數據,而無需再走工單申請單臺機器權限,即網頁版 atop。

          考慮到數據處理過程中 JSON 數據的強兼容性,敲定將 atop 的原始數據以 JSON 數據輸出:支持輸出到終端,以及寫本地 unix domain socket。針對前者,主要是用于本機的一些數據調試,也可以與其他組件打通,如數據報警等。針對本地 UDS,atop 作為 server 端,提供一種數據輸出的能力;另外需要引入 client 端、監聽并獲取 atop 數據,同時作為數據源端、與數據處理打通、將本機 atop 數據流過數據通路落入數據庫,供業務方使用。整體流程如下:

          用法如下:

          Currently we support three types of output:
          1. atop -O stdio
          2. atop -O only
          3. atop -O unixsock -w /path/to/file 10 //Make unixsock non-block to make sure this will not block main engine. And if the unix remote server re-launches, atop will re-connect and continue to work.
             
          Usage examples:
            ./atop
            ./atop -P ALL
            ./atop -O only // overwrite parseout, show json to stdio only
            ./atop -O stdio -P ALL // both parseout and json stdio
            ./atop -O stdio -w atop.log // print to stdio, as well as file
            ./atop -O unixsock // overwrite parseout, show json to unixsock
            ./atop -O unixsock -P ALL // both parseout and json unixsock
            ./atop -O unixsock -w atop.log // write json to unixsock and file
             
          And the detail JSON output format is as follows:
          {
           "ip": "a.b.c.d",
           "timestamp": 1565256314,
           "CPU": {
            "hertz": 100,
            ...
            "cpu_nums": 40
           },
           "cpu": [
            {
             "hertz": 100,
             ...
             "cpu_id": 0
            },
            ...
            {
             "hertz": 100,
             ...
             "cpu_id": 39
            }
           ],
           ...
           "PRC": [
            {
             "pid": 1,
             "p_name": "(systemd)"
            },
            ...
            {
             "pid": 73,
             "p_name": "(migration/12)"
            }
           ]
          }


          交互界面改進

          雖然 atop 的指標很全,且有歷史記錄可以查詢,但依舊有不少聲音提到 atop 做的還有欠缺。比如無法將所有 CPU 的使用情況同時展示,即使將顯示器橫過來也不能解決,這在高達 128 核的物理機上尤其頭痛。為解決這個痛點,參考類似 htop 的展示方式,結合 atop 本身代碼,從零開始用 ncurses 加以繪制,展示效果如下。目前只支持 CPU 和 MEM 的展示,如有其他需求,歡迎聯系我們。

          支持類似 htop 直觀的展示所有 CPU 和內存的使用情況,但新增 NUMA 粒度的支持。一是解決因 CPU 核數太多展示不全的問題;進一步可以縱覽所有 CPU 的負載,直觀判斷綁核是否有問題

          • 雙 NUMA 使用 bar 展示

          • 雙 NUMA 使用百分比展示

          //注:上面兩張圖為壓測場景
          user態:stress -c 20
          sys態:iperf -s -i 1 && iperf -c $ip -i 6 -t 600
          
          //numactl -H的結果如下

          • 4NUMA 使用 bar 展示

          • 4NUMA 使用百分比展示

          日志相關

          前面提到,atop 支持歷史日志的記錄,這在定位排查非實時問題時非常有幫助。然而在字節內部,曾因 atop 日志過大引發過比較嚴重的問題。起因是 atop 默認會將日志寫到/var/log/atop 目錄下,并且記錄所有的進程、線程信息到日志里。有些業務服務器(如 Java 業務)動輒每 10 秒幾萬個線程,一天的日志量高達幾 G,7 天高達幾十 G,如果服務器本身的系統盤存儲空間很緊張,就會造成系統盤打滿、登錄不上機器的嚴重后果。

          為解決日志相關的問題,字節內部在新版本中推出了以下特性:

          • 默認只存儲每個進程的 top100 線程

          根據日常排查問題來看,一般只關心 topM 的進程或每個進程的 topN 線程。觀察每個進程,通常超過 top100 線程的 CPU 或 MEM 都處于不活躍狀態,對于排查問題來說意義不大,沒必要記錄到日志。據此字節內部引入-H 參數,通過指定-H 100 可以過濾掉 top100(按照 CPU/MEM/DISK 比例之和倒敘排列)之外的線程,大大減少了日志存儲量,尤其適用于線程數目多達幾千或幾萬的 Java 業務場景。

          • 使用 systemd timer 控制 daily 日志重定位

          引用上游最新的 atop-rotate.timer 和 atop-rotate.service,取代之前的 cronjob。避免某些機器修改時區后未重啟 cron.service,導致 cron 服務重啟時間未遵守本機時間,寫 atop 日志時間出錯。

          • 支持用戶修改 atop 日志存儲時間,默認存儲為最近 7 天

          上游默認存儲天數為 30 天,在實際排查問題時必要性不大,反而浪費了系統盤的存儲空間。如有需要,可以通過 atop-json 機制將本機日志傳輸到統一的存儲池子中,采取數據稀釋的方式(如保留 topM 進程、按時間順序增大記錄間隔等)進行保存。字節內部在 atoprc 中引入generations變量,表示存儲天數為generations+2天。

          例:echo 'generations 1' >> /etc/atoprc && systemctl restart atop代表只保留存儲最近 3 天的日志

          • 支持用戶修改 atop 日志存儲位置,默認是/var/log/atop

          有些服務器雖然系統盤存儲空間小,但數據盤有多塊,容量高達幾 T,針對這種場景,用戶可以通過修改 atop 日志存儲位置,來緩解存儲壓力。字節內部在 atoprc 中引入 logpath 變量,標識日志存儲目錄。

          例:echo 'logpath /data00/log/atop' >> /etc/atoprc && systemctl restart atop將日志存儲到/data00/log/atop目錄下

          • 限制 atop 日志存儲總量為 10G,超過 10G 會按照時間倒序刪除日志文件
          • 解決因 systemd 沒能 daily 重啟 atop 服務,導致持續寫相同文件,導致單個文件過大的問題

          其他指標及特性

          • 通過-b/-e 參數指定時間范圍時支持精確到秒
          • 新增 compact_stall、allocastall、InCsumErrors 等指標
          • 關閉 perfevent 采集 instr 和 cycle 兩項指標的功能,釋放 PMU 給其它專用工具,如 perf
          • 修復低于 4.19 內核,用戶態讀取/proc/$pid/cpuset 文件遇到 css offline、導致永久陷入內核態的問題
          • 修復/run/pacct_source 文件過大,導致 tmpfs 被占滿的問題

          落地使用情況

          到目前為止,字節已穩定運行接近三年,覆蓋公司全量服務器,推出 3 個版本。

          字節內部目前在用代碼已 push 到相關分支,歡迎使用:

          • https://github.com/bytedance/atop/commits/bytedance-internal-v2.6.0%2Bbyted2

          相關 repo 請訪問:

          • https://github.com/bytedance/atop

          其中 master 分支緊跟社區 atop 的 master 分支,其余分支是一些已推社區但尚未被合入的特性或 bug fix(如 Fix atop stuck when reading offline css 雖然本質上是內核的 bug,但可以通過修改 atop 代碼加以規避,避免重啟服務器)。

          合作與共建

          新版本 atop 的部分特性已經推社區并被上游接收,接下來還會將其余特性繼續推上游,更好的回饋社區。


          關于字節跳動系統部 STE 團隊:

          字節跳動系統部 STE 團隊 (STE=System Technologies & Engineering,系統技術與工程) 一直致力于操作系統內核與虛擬化、系統基礎軟件與基礎庫的構建和性能優化、超大規模數據中心的系統穩定性和可靠性建設、新硬件與軟件的協同設計等基礎技術領域的研發與工程化落地,具備全面的基礎軟件工程能力,為字節上層業務保駕護航。同時,團隊積極關注社區技術動向,擁抱開源和標準。

          更多招聘信息,可郵件聯系 chenziying@bytedance.com 獲取。


          主站蜘蛛池模板: 成人区人妻精品一区二区不卡网站 | 国产综合精品一区二区三区| 国产视频一区二区在线播放| 色综合一区二区三区| 视频精品一区二区三区| 国产吧一区在线视频| 亚洲成AV人片一区二区密柚| 国产精品99无码一区二区| 国产乱码精品一区二区三区四川 | 国产精品免费一区二区三区四区| 国产精品一区二区电影| 免费无码A片一区二三区| 99久久精品午夜一区二区| 麻豆文化传媒精品一区二区 | 国产丝袜一区二区三区在线观看| 久久久国产精品无码一区二区三区 | 女女同性一区二区三区四区| 欧美日韩国产免费一区二区三区| 日韩精品一区二区三区中文| 亚洲综合av一区二区三区| 极品人妻少妇一区二区三区| 国产精品一区二区久久| 97久久精品无码一区二区| 国产精品亚洲一区二区麻豆| 毛片一区二区三区无码| 精品国产日韩亚洲一区91| 无码人妻一区二区三区兔费| 麻豆AV天堂一区二区香蕉 | 国产麻豆精品一区二区三区v视界 国产美女精品一区二区三区 | 无码午夜人妻一区二区不卡视频| 在线一区二区三区| 波多野结衣精品一区二区三区| 冲田杏梨高清无一区二区| 国产在线观看一区二区三区精品| 亚洲色大成网站www永久一区| 精品三级AV无码一区| 亚洲性色精品一区二区在线| 国产成人无码aa精品一区| 国产亚洲情侣一区二区无| 国产精品视频一区二区三区四| 精品亚洲AV无码一区二区 |