你是否被這樣忽悠過?
3個月速成高級性能測試、獨立承擔項目性能任務並完成性能調優。。。。。。這樣的宣傳,比比皆是。
之前時不時有微信好友或者Q群群友咨詢:
1、是不是會一些linux命令、會幾個工具、會改常見中間件性能指標計數器,就能做性能分析調優了?網上或者某些資料演示的就是通過幾個命令就定位到方法了。
2、是不是如某些人或者某些j構宣傳的,會這些就能立馬成為高級性能測試?就能大展手腳獨立承擔性能測試任務了?
我想說的是:
1、代碼是必須的
其實,命令、工具只是輔助,對於簡單的項目,有時候能幫我們快速找到問題,但是現在基本上都是比較復雜的項目,所以,看到的依舊是表象。
雖然網上或者某些資料演示的通過幾個命令就定位到方法了,其實,有些演示猶如演戲,為了演示而故意這樣寫代碼(我也可以幾行代碼就可以寫出一個oom的問題、或者cpu高的問題),
實際項目是很復雜的,而要開發、部署企業級復雜架構項目來進行演示,各種成本都是非常高的。
就算你定位到方法了,那怎么優化呢?代碼看不懂,也只能發給開發分析調優,
如果開發比較菜,也懵逼,一臉無賴的說:你定位錯了吧,不可能的事兒,是服務器資源的問題吧!
估計你心里一萬匹曹尼瑪。
2、不是所有性能問題都涉及到代碼
性能問題很多,不是所有的性能問題都需要看代碼,比如壓測過程中報獲取不到連接,估計是連接滿了,你適當調整下參數估計就ok了,
就像dba,估計也沒研究過數據庫的源碼吧?一樣可以憑借經驗對數據庫進行調優;
3、命令、工具不是萬能的
有時候,通過命令,頂多能幫我們定位到問題,比如定位到代碼方法,但是要調優,還是得懂代碼;
而且,有時環境或者權限受限,比如:非自帶命令沒有權限安裝,或者沒權限往服務器上傳安裝包,或者普通用戶無法運行命令,這下怎么分析呢?
所以,不要過度依賴非自帶命令,注意,這里強調的是非自帶命令,自帶命令還是要好好利用的;
學習建議
要學好性能需要掌握的內容:
壓測工具及場景設計
搭建監控平台(現在基本上都是集群環境)
操作系統(掌握常見自帶命令)
集群應用(發現可能是代碼問題,能看懂代碼,大部分都是java,那就學學:java基礎、spring、springboot等等)
RDBMS、NoSQL、MQ等,這些你知道大概原理和常用的性能計數器就可以了,當然,能看源碼就更6了,這些都是經歷過千錘百煉的,本身性能問題很少,大概率是一些配置的問題
JVM
網絡
其它
能看懂代碼才是“王炸”,比如根據堆棧信息,能去分析代碼,萬事開頭難,不懂的可以問開發或者度娘,搞不定可以發給開發,你就看他怎么分析的,多跟着學習。
所以,要深入做性能,代碼是繞不過去的,代碼至少能大概看懂,別被網上xxxx宣傳的忽悠了,高級性能速成是不可能的,獨立承擔、完成性能項目,對測試要求不是一般的高,so,認清現實很重要,一步一步提升。
總結
代碼和實踐非常重要!!!
代碼都看不懂,談什么高級性能分析調優?頂多就是個只會監控、調性能計數器的初中級性能測試;
突然想起一句某大師說的:你不懂代碼,怎么能發現開發的問題?這里的問題是代碼的問題,而不是我們平時功能測試看到的表象,我覺得:這是對測試的最高要求了,總之代碼是趨勢,哪怕是后面轉崗互聯網其它崗位也是有優勢的,早做准備吧,僧多肉少的環境。
不實踐,就像古人說的:紙上得來終覺淺,絕知此事要躬行。
性能PK測開:https://www.cnblogs.com/uncleyong/p/11995605.html