簡體   English   中英

如何測試我的Java應用程序是否可以成功處理Tomcat服務器上的低內存/ CPU資源?

[英]How to test if my java application can successfully handle low memory/CPU resources on Tomcat server?

我想測試我的Java應用程序在僅具有512M RAM的Tomcat服務器上的表現。 換句話說,我需要進行內存負載測試,以檢查我的應用程序是否可以在這種受限環境中運行。

使用哪些工具,如何實現?

我聽說過APM軟件,包括Stackify Prefix,New Relic APM,JMeter,JVisualVM,JVM Monitor,JBenchX-但我不確定出於我的特定目的需要繼續使用其中的任何軟件。

對於CPU資源非常有限的問題。 我想先在台式機上測試我的應用程序,然后再部署到內存/ CPU有限的Jelastic雲中。

您可以通過修改-Xmx命令行參數來人為地限制分配給tomcat的JVM堆,該參數定義了Tomcat服務器將使用的最大堆空間。

如果您只想測試低堆大小,那就足夠了。

您可能還修改了CPU關聯性,以將Tomcat服務器綁定到單個CPU內核(或有限數量的內核)


如果您想走得更遠,則可以使用VirtualBox創建虛擬機,並復制部署后將擁有的所有預期的硬件/軟件。

關於測試,我建議以下性能測試技術

  • 負載測試 -將系統置於預期的負載下以查看其是否能夠處理它
  • 浸泡測試 -與負載測試基本相同,但持續時間較長(例如,過夜或周末),它將使您能夠識別內存泄漏
  • 壓力測試 -從負載測試開始,逐漸增加負載,直到響應時間開始超過可接受的閾值或開始出現錯誤(無論發生什么錯誤),它都會讓您知道應用程序/配置的局限性,並展望將要打破的方式和方式

使用諸如YourKitJProfiler之類的探查器工具來微調代碼也將是有益的。

最好的方法是使用虛擬機。 您可以選擇自己選擇的技術,但是一個簡單的選擇就是使用Oracle VirtualBox,它可以在許多平台上免費使用。 只需在VM內安裝一個最小的OS,然后添加Java,您的應用程序等,然后對其進行負載測試。

網絡照常工作,因此您可以使用現有的負載測試框架並將其指向VM的IP地址。

還有其他更高級的方法,例如使用Docker或其他方法,但這可以完成煙熏測試的工作。

我不建議嘗試使用具有大量RAM的服務器,然后嘗試在不使用虛擬機之類的情況下“合成”低RAM情況(並且BTW Docker在內部使用VM)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM