2011-01-12 35 views
5

Tôi hiện đang thử nghiệm hiệu suất giữa Node.js và Apache.Thử nghiệm hiệu suất Apache vs NodeJs

Những gì tôi muốn chứng minh là:

  • Apache là chậm hơn bởi vì nó cần rất nhiều Thread-switch hơn Node.js trong đó sử dụng một đơn ren Event-Loop.
  • Apache cần RAM nhiều hơn/Kết nối so với Node.js sử dụng epoll.

Điều đó có nghĩa, rằng những gì tôi muốn kiểm tra là:

  1. Yêu cầu/Second mỗi CPU
  2. Connections mỗi RAM

Ok đó là những gì tôi muốn làm! Nhưng câu hỏi là làm thế nào tôi nên làm điều này? Đối với yêu cầu/thử nghiệm thứ hai tôi chỉ có thể sử dụng Apache Benchmark (ab) (Nhưng là ab thậm chí thích hợp cho Node.js?) Và câu hỏi lớn nhất là: Làm thế nào tôi có thể kiểm tra kết nối/RAM?

Trả lời

4

Kết nối/giây: Gần đây tôi đã thực hiện thử nghiệm này với máy chủ node.js "hello world" đơn giản và nhận được ~ 9000 yêu cầu/giây cho mỗi lõi CPU. (Sử dụng ab, btw. Thử nghiệm trên hộp Linux Xeon 2.5GHz, quad-core).

Kết nối trên RAM: Có hai # ở đây bạn quan tâm. Bộ nhớ cơ bản (bộ nhớ yêu cầu không có kết nối) và bộ nhớ cho mỗi kết nối. Tôi đã thử nghiệm tính năng này trên Mac Pro bằng cách quay lên một máy chủ/ứng dụng khách đơn giản giữ các kết nối HTTP mở. Tôi chạy lệnh 'top' để xem mức sử dụng bộ nhớ. Tại các kết nối không, nút có RSIZE 14MB. Sau đó, với máy khách đang chạy và giữ 2000 kết nối đồng thời mở, RSIZE tăng lên 24MB. Vì vậy, ~ 5MB/1000 kết nối.

Khi bạn nhận đượC# cho Node và Apache, bạn có thể đăng chúng ở đây không? Tôi cũng tò mò.

+0

Với ab i nhận được ~ 6300 R/S với đồng thời 100 trên một lõi kép K8 2,5 GHz. Liên quan đến các kết nối/Ram tôi đã sử dụng kịch bản tautologics -> github.com/tautologistics/node_loadtest nơi tôi đạt được xung quanh vô lý 61000 Kết nối với khoảng 250MB. Những gì tôi cần biết là một phương pháp để kiểm tra đồng thời tối đa/Ram với apache. Bất kỳ đề xuất??? Oh và u có thể đăng kịch bản ur mà làm thế nào u đạt được 5MB/1000 kết nối? – user572715

17

"Tôi muốn chứng minh" là một thái độ rất sai khi thực hiện đánh dấu băng ghế dự bị. Bạn không chứng minh bất cứ điều gì, bạn đo lường hiệu suất thực tế. Bạn có thể hoặc có thể không ngạc nhiên bởi kết quả, nhưng bạn thực sự phải bắt đầu với "Hãy xem những gì điều này có thể làm".

Rõ ràng btw, từ tất cả các điểm chuẩn mà tôi đã thấy, nút đi lên đầu tiên về tốc độ thô nhưng sử dụng bộ nhớ MORE sau đó apache, do đó, có 'bằng chứng' của bạn.

Các vấn đề liên quan