2011-01-12 98 views
5

我目前正在測試Node.js和Apache之間的性能。性能測試Apache vs NodeJs

我想證明的是:

  • Apache是​​慢,因爲它需要更多的線程切換比的Node.js它採用單線程事件循環。
  • 與使用epoll的Node.js相比,Apache需要更多的RAM/Connection。

這意味着,我要測試的是:每個CPU

  1. 請求/秒每秒鐘RAM

  • 連接好了,這就是我想做的事!但問題是我該怎麼做? 對於Request/Second-Test我可以使用Apache Benchmark(ab)(但是它甚至適用於Node.js?) 最大的問題是:如何測試Connections/RAM?

  • 回答

    4

    連接數/秒:我最近用一個簡單的「hello world」node.js服務器做了這個測試,每個CPU核心獲得~9,000個請求/秒。 (使用ab,btw。在2.5GHz,四核Xeon linux機箱上測試)。

    每個RAM的連接數:這裏有兩個你關心的。基準內存(無需連接的內存)和每個連接的內存。我在Mac Pro上測試了這個功能,通過啓動一個可以打開HTTP連接的簡單服務器/客戶端。我運行'top'命令來觀察內存使用情況。在零連接時,節點有一個14MB的RSIZE。然後,在客戶端運行並保持2000個併發連接打開的情況下,RSIZE增長到了24MB。所以〜5MB/1000個連接。

    當你得到#的節點和Apache你可以發佈他們嗎?我也很好奇。

    +0

    隨着ab我得到約6300 R/S與一個2.5ghz雙核K8 AMD併發100。關於Connections/Ram,我使用了tautologics腳本 - > github.com/tautologistics/node_loadtest,其中我使用了大約250MB的荒謬61000連接。我需要知道的是用apache測試最大併發/ Ram的方法。有什麼建議麼???哦,你可以發佈你的腳本,你如何實現5MB/1000的連接? – user572715 2011-01-14 08:12:17

    17

    「我想證明」在做基準測試時是一種非常錯誤的態度。你沒有證明什麼,你測量的實際表現。你可能會也可能不會對結果感到驚訝,但你必須從「讓我們看看這件事能做什麼」開始。

    顯然,順便說一句,從我看到的所有基準測試中,節點首先根據原始速度出現,但使用更多內存,然後使用apache,因此出現了'證明'。