java - 如何壓測http服務(tomcat)的CPU
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-28 09:22:50
0
5
1190

前提: 大家好,現在要壓測一台tomcat伺服器,想找出應用程式的瓶頸在哪,但在測試過程中,jvm資源佔用的cpu一直還沒到50%, mysql已經被拖垮了。

現在我想找出應用程式服務的瓶頸,多少併發時,cpu會被佔用過高,請問怎麼實現呢?
我想到的方法是:在程式碼層面上建立多個線程,不讀寫資料庫,讓cpu上去。請問可行不? ?
感謝~~

女神的闺蜜爱上我
女神的闺蜜爱上我

全部回覆(5)
phpcn_u1582

一般來說Web應用的瓶頸都在資料庫上,應用伺服器(無論是Tomcat還是別的)負載過大的話,一般來說只要加伺服器就能解決的。

如果希望降低成本,找出應用的瓶頸在哪,壓測是有些竅門的,例如:

把mysql儲存引擎改成blackhole,這樣資料庫就不會容易被輕易拖垮。

洪涛

如果 CPU 佔用太多,是不是已經使用了資料庫連接池,限制連結的建立。為了減少資料庫的訪問,某些更新少的資料是不是可以放快取如 Redis,不需要每次都訪問資料庫去取資料。

簡單壓力的測試,我喜歡用 apache server 裡的 ab,複雜的可以試試 JMeter,壓力測試就比較容易分析找出問題在那裡。

仅有的幸福

jvm資源佔用的cpu一直還沒到50%,mysql已經被拖垮了

這怎麼看都像是資料庫操作方面的問題,例如 SQL 需要最佳化,或是需要加上快取以減少資料庫操作。看不出與 Tomcat 有什麼關係。

大家讲道理

mysql都掛了,應該不是tomcat瓶頸,你要查一下sql是否都優化了,另外開啟mysql統計,查查看是否有慢sql,是否有全表掃描,索引是否高效。另外有沒有使用連線池對資料庫做並發控制,mysql支援的並發跟cpu核心數有關。一般慢sql容易拖垮資料庫

世界只因有你

一般系統瓶頸的話增加伺服器數量、優化請求基本上都能解決,更大的瓶頸基本上都是在資料庫連結上,按照你說的你是想要測試一下你的請求並發瓶頸,但是如果你不連結資料庫進行測試,基本上是沒什麼效果的,對真實專案並沒有什麼幫助,取得的瓶頸並不是你真正的瓶頸

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!