原创 linux存儲性能問題解決心得

背景  Linux系統下的性能問題不太好解決,尤其是存儲相關的問題。工作中面臨這些的性能問題是比較多的,大部分是用戶反饋的。爲了能及時高效地解決性能問題, 迫切地需要對性能問題解決方面有個系統的,深入的探索。 性能問題特點 性能問題跟穩定

原创 文件深度監控策略

背景     最近很多項目組報文件丟失,文件被篡改等bug單子。所以想做個文件監控方案,可以監控某些目錄下面或者文件的異常操作,做到能及時找到文件異常操作的元兇和異常操作的時間點,並及時輸出log日誌。     這樣如果推到用戶那邊,用戶

原创 xfstests保障文件系統穩定性

背景 存儲是高風險作業。一旦有文件系統相關問題後,發生內核panic,手機進入ramdump這還影響不算大。如果導致用戶文件數據損壞的話,就會造成比較大的影響。 以前對文件系統源碼修改後,由於沒有一款專門針對文件系統的測試工具,所以只跑m

原创 那些年解的疑難性能問題 --- ext4_fsync優化

引子 性能問題有時候不像穩定性問題那樣,出了bug, ok, fix該bug,搞定它就行了。性能問題如果涉及到文件系統自身架構方面缺陷的話,是很難解的。 不過通過解這些性能問題,使我慢慢地熟悉了文件系統工作原理和架構設計,慢慢地會發現之前

原创 linux系統單線程工作耗時性能解析

背景 工作中常常要解決大量的Linux系統下的性能問題。這些性能問題要想高效分析解決好,其中一個基礎是要對單線程工作性能有個詳細完善地分析思路,能部署一個詳細地性能檢查check list。 單線程性能影響因素分析 拿手機上用戶執行zip

原创 androbench跑分性能排查

androbench跑分對應IO特性分析 在博文:手機IO workload解析裏面已經指出androbench測試時,產生的IO都是direct IO。 因爲對手機反覆androbench測試多次,根據測試log和代碼分析,結論是: A

原创 BCC工具在手機Android系統開發方面的優勢

背景 還記得之前我們開發和調試內核,面對內核錯綜複雜的代碼,還有無數條潛在的運行路徑,有點茫然不知所措。之前在內核加個代碼,一不小心就會造成內核崩潰。 現在好了,谷歌在Android q版本上已經集成好了bcc工具。該工具的加入,對於An

原创 手機IO workload解析

背景 工作中常有些這樣需求,需要分析zip解壓縮,androbench和應用安裝等存儲應用場景在不同版本,不同平臺的性能差異,並且需要對這些場景做性能優化。 想要做好這些需求工作,首先得對這些場景下的IO特點有所熟悉,知道這些場景會給手機

原创 bcc工具上手指南

背景 Android平臺上,是利用adeb工具來做到bcc工具在Android系統上的快速部署。一旦bcc工具在Android系統上部署完畢,我們就會很方便地利用現有的ebpf工具,進行系統開發或者調試。 另外,也可以在部署好的bcc環境

原创 Deep C (and C++) by Olve Maudal and Jon Jagger— 很不錯的國外技術文章

編程是困難的,正確的使用C/C++編程尤其困難。確實,不管是C還是C++,很難看到那種良好定義並且編寫規範的代碼。爲什麼專業的程序員寫出這樣的代碼?因爲絕大部分程序員都沒有深刻的理解他們所使用的語言。他們對語言的把握,有時他們知道某些東西

原创 C語言開發基礎軟件理解

         轉孟巖老師的話:           基礎軟件開發崇尚的是自由、直接、透明、簡單、高效,要像匕首一樣鋒利,像戰士一樣勇猛,像農夫一樣樸實,反對繁瑣華麗的設計,反對架牀迭屋的層層抽象,反對複雜的結構和不必要的靈活性。而J

原创 工作中需要的另外兩方面能力培養(表達和動手能力)

一個人的開發畢竟和多個人的團隊開發不一樣 所以兩方面的東西不可少: 表達: 1:傾聽別人說話 2:自己說了............. 3:寫一些文檔 動手: 1:操作各種軟件工具的能力,比如SVN,souce_insight的能力 2:靈

原创 Java替代C語言的可能性

 前不久CSDN刊登了一篇《C語言已經死了》的文章,引起了一些爭論。其實那篇文章是從Ed Burnette的博客上轉載來的,原文題目是“Die, C

原创 Effective C++ 3rd 的一點評論-----最有效的學習C++的方式

今天終於把作業作完了(可能還有地方要返工),Effective C++ 第 3 版讀完了,寫了幾萬字的評論。如我給編輯交稿的 email 裏所寫: 我覺得評註這個工作比翻譯難做。作者細節上講的非常清楚,大部分地方都不覺得有必要再加註解

原创 什麼是類型安全

編程語言的最終夢想:靜態類型安全 常聽人說“強類型”。但個人對強類型都有不同的理解。 有的認爲C++就是強類型,有的認爲C也是強類型。因爲它們都有類型檢查。 可見,如果沒有一個明確的定義,談“強類型”不免是自說自話。 那麼,可以給“強類型