前兩天公司雙十一做大促活動,半夜突然來了一大波流量,你在睡夢中就收到了一大波報警短信,仔細一看,說是服務器 CPU 使用率過高。你沒敢半點馬虎,揉了揉眼睛,帶上眼鏡,打開電腦,直接就登錄到了 Linux 生產(chǎn)服務器。
登錄成功之后,你發(fā)現(xiàn)服務器確實有些慢,就連輸個命令都比平時慢了一拍。簡單輸入 top 命令之后,根據(jù)參數(shù)看到系統(tǒng)的 CPU 使用率奇高無比,二話沒說,你趕緊按照 CPU 使用率排序找出使用率最高的那個進程。從排序結(jié)果可以確定,你昨天剛升級服務的 CPU 使用率居然高達 700%,根據(jù)直覺推斷,你覺得肯定是昨天升級的服務并發(fā)處理邏輯有問題。
但是這個應用的負載特別大,業(yè)務邏輯也比較復雜,你一時也不知道到底是哪塊邏輯出的問題。網(wǎng)絡有人說,可以使用 gdb 來調(diào)試應用程序,可是 gdb 會把進程中斷掉,直接影響線上的業(yè)務。也有人說可以使用 perf 工具來查,你照貓畫虎,發(fā)現(xiàn)只是一些看起來像是 Linux 內(nèi)核中的函數(shù)占用來比較多的 CPU。查了半天,最終發(fā)現(xiàn)還是沒能弄明白到底是哪里出現(xiàn)的問題,留下的都是無奈和迷茫。
如果你對這樣的場景感同身受,那我覺得你還沒有成為一個「更上一層樓」的服務器端工程師。極客們常說,只有知道一件事物的原理,它才是有用的東西。事實上,作為一個后端工程師和 Linux 打交道是司空見慣的事情,在服務器上分析系統(tǒng)性能情況是每個后端程序員都無法避開的事。
你愿意束手無策等待幫助,還是游刃有余庖丁解牛?
有人說,這是運維的工作范疇,我對這話是不以為然的。一個優(yōu)秀的程序員,不應該在這事上給自己設邊界,如果連這點事情都整不明白,那我確信,你肯定也搞不懂高并發(fā)、分布式等相關的知識,因為這些內(nèi)容都是一脈相承的。
鑒于此,我們邀請了微軟 Azure 資深工程師倪朋飛開設了一門《Linux 性能優(yōu)化實戰(zhàn)》,專欄+音頻形式,預計 50 講左右。
說到微軟,大家總以為和 Linux 是死敵,微軟工程師都用 C# 和 Window Server 等,其實根本不是。倪朋飛在微軟主要負責開源容器編排系統(tǒng) Kubernetes 在 Azure 的落地實踐,Azure 上有大量的 Linux 云服務器。倪老師之前曾任職于盛大云和騰訊,十年來一直在云計算領域工作,主攻 IaaS 和容器技術,所以對 Linux 性能優(yōu)化這套知識體系又深厚的沉淀和豐富的實踐經(jīng)驗。
在工作期間,他嘗試了大量的 Linux 性能工具,努力攀登性能之巔,在不斷的實踐和總結(jié)后,倪老師終于知道如何把觀察到的性能問題跟系統(tǒng)原理關聯(lián)起來,特別是把系統(tǒng)從應用程序、庫函數(shù)、系統(tǒng)調(diào)用、再到內(nèi)核和硬件等不同的層級貫穿起來。
為了讓讀者對性能有個全面的認識,倪朋飛精心繪制了一張思維導圖,里面涵蓋了大部分性能分析和優(yōu)化的知識。(后臺回復 Linux 獲?。?/p>
Linux 性能和優(yōu)化入門難,但進入這個領域后就會如魚得水,學習和實踐相互印證,根本停不下來。但如何入門呢?第一帶著問題學習,而不是先去啃那幾本厚厚的原理書籍,因為那樣很容易把自己的信心壓垮。第二就是從學習到輸出,也就是不斷實踐。
事實上,只要你了解基礎系統(tǒng)組件的原理和協(xié)作方式,掌握基本的性能指標和工具,熟悉實際工作中性能優(yōu)化的常用技巧,就可以比較準確分析和優(yōu)化大多數(shù)的性能問題了。在這個認知和基礎上,再反過來去閱讀那些經(jīng)典的操作系統(tǒng)或者其它圖書,才會事半功倍。
-
工程師
+關注
關注
59文章
1590瀏覽量
69504
發(fā)布評論請先 登錄


硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達半導體 #產(chǎn)品經(jīng)理 #軟件工程師




硬件系統(tǒng)工程師寶典—完整版
推薦資料!硬件系統(tǒng)工程師寶典,工程師必備寶典


不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技
工程師應該掌握的幾種正確電容放電姿勢



FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?

評論