首頁  >  問答  >  主體

java - 如何壓測http服務(tomcat)的CPU

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

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

女神的闺蜜爱上我女神的闺蜜爱上我2669 天前1173

全部回覆(5)我來回復

  • phpcn_u1582

    phpcn_u15822017-06-28 09:24:50

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

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

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-06-28 09:24:50

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

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

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-28 09:24:50

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

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-06-28 09:24:50

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

    回覆
    0
  • 世界只因有你

    世界只因有你2017-06-28 09:24:50

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

    回覆
    0
  • 取消回覆