我是这样分析Linux性能问题的
在互聯網公司普遍“996”的大環境下,大部分做應用的開發者,大都將精力集中在業務代碼的優化和調配上,忽略了對 Linux 內核的學習。而且,這部分知識本身就很復雜,所以學習成本也比較高。
但是,只要你經歷過公司業務迅速增長的階段,就一定遇到過服務穩定性的挑戰,比如:TCP 重傳該怎么分析,如何在不打斷運行任務的情況下排查內存泄漏問題,怎樣快速解決 CPU sys 利?率過?等等。
以上面提到的 TCP 重傳為例,服務器上一般都會有 TCP 重傳率的監控,如圖所示:
像上圖中這么高的 TCP 重傳率,必然會導致系統 QPS 減小。然而,當你真正去排查時,會發現根本不知從哪里入手。因為網絡數據量非常大,只記錄 TCP 頭部信息也會產生很大存儲開銷,所以發生重傳的現場信息無法被記錄下來。
其實,定位類似 TCP 重傳這樣復雜的穩定性問題,不僅要從開發?員的視?分析,還要更多從系統、內核的視角出發,這樣你才能追本溯源、一勞永逸地解決問題。
而大家之所以覺得這些問題難,本質上還是對 Linux 內核理解不到位。
比如,我接觸過的業務開發者,基本都被業務的性能毛刺困擾過,但大多數人只能分析到是哪些系統調用引起的毛刺,而業務專家卻可以深入底層,看到引發業務毛刺的系統資源。再比如,當發生 TCP 重傳時,有人可以從 tcpdump 里的信息看出是哪個 TCP 連接進行重傳,高手們卻可以通過這些信息看到為什么會發生重傳。
能深入到 Linux 內核分析問題的人,看問題能直擊本質,定位、分析問題的能力都更強,往往能解決別人解決不了的問題。
事實上,如果你不是內核開發者,沒有必要去搞懂它的每個細節,掌握它的每個機制,只要能通過掌握 Linux 內核知識,解決實際應用層的問題就夠了,這也是邵亞方老師和極客時間開設《Linux 內核技術實戰課》專欄的初衷,希望能把自己多年的 Linux 內核學習和實踐經驗,通過“解決問題,滿足需求”的方式傳遞給你。
在專欄中,他從生產環境中 4 類典型問題(Page Cache 管理、內存泄漏、TCP 重傳、內核態 CPU 利用率飆高)入手,帶你了解:應用程序是怎樣跟系統資源打交道的;如何選擇業務類型的配置更好;棘手問題出現時該如何一步步排查等等,讓 Linux 內核更好地服務你的應用程序。
????掃碼免費試讀
限時特惠,新人?¥59.9
再介紹一下專欄作者:邵亞方老師
他是前蘑菇街技術專家,Linux Kernel 活躍貢獻者,在 Linux 內核領域深耕了 10 余年,先后在華為、蘑菇街、Juniper Networks 等知名互聯網企業從事內核研發工作。
擅長從 Linux 系統內核層?來分析解決實際疑難問題、提高業務性能。在華為和蘑菇街,經歷了公司從 0 到 1 切換 Linux 或開發部署私有云的過程,通過改造 Linux 內核保障了業務的平滑切換、穩定性和性能;在 Juniper Networks 則一直致力于提升網絡性能,保障業務網絡的穩定性。
目前主要活躍在 Linux 內核的內存管理子系統(linux-mm),如果你有關注這個郵件列表的話,應該經常能看到他的名字。
他是如何講解 Linux 內核的?
在專欄中,他結合自己的工作經驗,總結出了開發者在生產環境中經常會遇到的四類問題:Page Cache 管理、內存泄漏、TCP 重傳、內核態 CPU 利用率飆高。每類問題對應一個模塊,按照基礎篇、案例篇和分析篇的方式來呈現。
1、Page Cache 管理模塊,帶你了解如何更好地利用 Page Cache 來減少無謂的 I/O 開銷,Page Cache 管理不當會引起的哪些問題,以及怎樣分析和解決。
2、內存泄漏模塊,重點分析應用程序是如何從系統中申請和釋放內存。通過內存泄露這類案例,帶你了解應用程序使用內存的細節,以及由內存使用不當而引發問題的解決方案。
3、TCP 重傳模塊,為你講解 TCP 連接的建立、傳輸和斷開的過程,分析這個過程究竟會受哪些配置項的影響,以及配置不當會引起的網絡問題。從 TCP 重傳這類具體案例出發,帶你掌握必要的網絡細節知識,以及遇到相關問題時,你該如何去分析和解決。
4、內核態 CPU 利用率飆高模塊,帶你分析應用程序該如何高效使用 CPU,以及哪些情況會導致 CPU 使用低效,比如內核態 CPU 利用率過高等。針對內核態 CPU 利用率高的這個案例,側重講解哪些 Linux 內核的特性或系統配置項會引起這種問題,以及怎樣分析和解決。
每個模塊的最后,都會總結這些常見問題的一般分析思路,讓你在面對同類型問題時有一個大致的分析方向。
Linux 底層知識的學習并不是一蹴而就的,但學完這個專欄,相信你不僅可以很好地掌握必備的 Linux 內核基礎知識,也能學到很多解決實際問題的技巧,讓 Linux 內核真正有效服務于你的應用程序。
最后再強調一下
專欄限時特惠,原價 ¥99,新人?¥59.9
一次訂閱,永久有效,掃碼免費試讀??
????點擊「閱讀原文」,最低?¥59.9?入手。
總結
以上是生活随笔為你收集整理的我是这样分析Linux性能问题的的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: PDF格式原理学习
- 下一篇: Python实现空间直角坐标转高斯克吕格
