阿里 JVM 之路

13:15 - 14:00

費輝(成滔)

阿里巴巴
資深開發工程師

資深開發工程師,就職於阿里巴巴集團-阿里雲事業部-核心系統研發部。2004~2008 本科就讀於中國科學技術大學。2008~2011 碩士就讀於中國科學院軟件研究所,研究方向為並行計算。2011年7月加入阿里巴巴-核心系統研發部-專用計算組,從事 JVM 優化相關工作,針對公司應用的特點,定製優化 JVM。例如結合 JVM,對 hadoop namenode 中的 rpc 進行優化等等。最近一年多從事系統級 profiling 的工作,包括但不限於 java 應用,目標是低開銷、穩定地運行在服務器上,能夠給出開發者函數級的優化建議,亦或是當應用出問題的時候,能夠提供有力的性能數據幫助問題排查。

阿里是一個重度使用 Java 的公司,這樣就驅使著公司走在實踐 JVM 的路上。我們主要關注三點:性能優化、故障排查與回饋社區。

  • 在性能優化方面,針對特定應用需求在 JVM 內增加了一些 intrinsic 方法,例如 CRC32、CRC32C、byte/char 數組比較,ASCII 與 UTF8 相互轉換等等,針對 GC,我們給出了一個創新的 Off-Heap 方案,有效減少 GC 方面的開銷。
  • 在故障排查方面,增加 ArrayAllocationWarningSize、PrintGCReason、ReclaimMostNativeMemory 等參數,輔助排查問題。
  • 在回饋社區方面,我們發現 GC、socket 連接洩漏等 bug,在問題解決之後,將 patch 回饋到了社區。