2016-09-26 63 views
-1

我們已經建立了使用Meteor.JS web應用程序,我們想找出在Meteor.js中檢查Web應用程序性能/限制的最佳方法是什麼?

  1. 將如何在實際生產模式進行成千上萬/百萬計的用戶可以登錄請求/響應。
  2. 在體積和響應時間方面,框架效率如何。

我們想知道是否有任何我們可以使用的工具或最佳實踐。

非常感謝您提前預約。

+0

閱讀「負載測試」 –

回答

0

你需要做的是看看負載測試你的應用程序。有很多方法可以做到這一點,但前提是您編寫了用戶交互的組成部分,並且多次運行該腳本,提高音量,直到找到所需的併發數。

如前所述,有很多工具可以做到這一點。一些我曾親自使用:

  • LoadRunner的
  • 的Apache JMeter的
  • Rational Performance Tester的
  • 簡單的外殼,捲曲

有維基百科列表,會給你一個好劇本從其他可用的工具開始。

我想說的下一點是,負載測試不僅僅是增加併發用戶,直到系統崩潰。一個好的負載測試會試圖模仿您看到或期望看到的流量類型。換句話說,兩個用戶每次碰到你的系統時都不會做同樣的事情,並且並不是所有的請求都會在你的系統上產生相同的負載。您的用戶甚至可能在一天中的不同時間以不同的方式使用系統。

最終目標是將多個「類型」的用戶和交易記錄爲腳本,並讓您選擇的加載工具對請求進行加權,使其與每種類型的預期百分比相匹配。通過這種方式,您可以更好地看到應用程序隨着時間的推移而執行的負載與您真正期望看到的負載相匹配。

最後,你需要考慮你的基礎設施。通常情況下,在我參與的企業環境中,我們嘗試使質量檢查環境儘可能接近生產。我們將擁有完全相同的服務器硬件,完全相同的配置(包括物理和軟件),並盡一切可能實現鏡像。我們有時偏離的地方就是規模。例如,我在Prod中有4個應用程序服務器的環境中工作,每個應用程序服務器有4個節點,羣集中共有16個節點。在QA中,我們擁有相同的裸機硬件,但所有內容都減半,因此我們有2臺物理服務器,每臺服務器有4個節點,總共8個節點位於QA羣集中。當我們測試負載時,我們會預計總數的一半,所以如果我們預計在Prod中同時有200個用戶,一個成功的QA測試將同時爲100個用戶。我們還會將生產數據庫中的數據複製並混淆到QA數據庫,以確保我們使用的是相同大小的數據。

進行負載測試的過程是這樣的:

  1. 搶「基線」的結果
  2. 做出各種變化,你需要做
  3. 重新運行完全相同的測試,#1,只需要添加任何新功能到您的測試

當隨時間進行更改以確保您的更改不會影響性能時,基準很重要。我無法告訴你有多少次我看過Dev完全正確運行的SQL語句,因爲數據量的差異,完全關閉了系統。

相關問題