根據(jù)我們實際對不同系統(tǒng)進行性能測試的經(jīng)驗,幾乎所有的系統(tǒng),都存在性能問題,很多還是比較嚴重。我們沒有發(fā)現(xiàn)性能問題,往往是使用用戶的個數(shù)太少,沒有發(fā)現(xiàn)。
比如,某大學開發(fā)的一個系統(tǒng),使用了幾個月,反饋良好。做了一輪性能測試,發(fā)現(xiàn)并發(fā)用戶連10個都達不到,其實性能很糟糕,沒有發(fā)現(xiàn)這些問題,只是因為用戶太少了。
越是重要的系統(tǒng),用戶量越多,越容易暴漏性能問題。
當性能出現(xiàn)問題,如何進行性能分析和定位?目前流行的做法,就是進行全鏈路壓測,然后看鏈路上的計數(shù)器。
對于復雜的系統(tǒng),往往使用集群和微服務等架構,使用了各種支撐軟件。因此,可能存在的性能瓶頸的點,就非常多。
我們針對典型的支撐軟件和平臺,介紹各種計數(shù)器。
Nginx主要的計數(shù)器:
Mysql的計數(shù)器很多,如下:
myISAM的計數(shù)器:
Innodb:
線程和IO:
網(wǎng)絡流量和臨時表:
通過mysql的各個計數(shù)器,我們就可以比較準確的判定是否存在數(shù)據(jù)庫問題。當然,還有一個非常重要的計數(shù)器,就是慢日志。
Redis也具有大量的計數(shù)器:
狀態(tài)計數(shù)器:
內存計數(shù)器:
客戶端計數(shù)器:
持久化計數(shù)器:
上面,我們列舉了幾個重要的支撐軟件的計數(shù)器,便于我們能夠迅速的定位問題,幫助我們實現(xiàn)性能調優(yōu)。
推薦閱讀: