2012-09-16 27 views
5

Lighttpd, nginx và những người khác sử dụng một loạt các kỹ thuật để cung cấp hiệu suất ứng dụng tối đa như AIO, sendfile, MMIO, caching và epoll và khóa cấu trúc dữ liệu miễn phí.Kỹ thuật để cải thiện tỷ lệ giao dịch

Đồng nghiệp của tôi và tôi đã viết một máy chủ ứng dụng nhỏ sử dụng nhiều kỹ thuật này và cũng có thể máy chủ các tệp tĩnh. Vì vậy, chúng tôi đã thử nghiệm nó với băng ghế dự bị apache và so sánh chúng ta với lighttpd và nginx và có ít nhất là phù hợp với hiệu suất cho nội dung tĩnh cho các tệp từ 100 byte đến 1K.

Tuy nhiên, khi chúng ta so sánh tỷ lệ giao dịch qua các tập tin tĩnh cùng với G-WAN, G-WAN là dặm về phía trước.

Tôi biết câu hỏi này có thể hơi chủ quan nhưng kỹ thuật nào ngoài những điều hiển nhiên mà tôi đã đề cập có thể Pierre Gauthier đang sử dụng trong GWAN để có thể đạt được hiệu suất đáng kinh ngạc như vậy?

Trả lời

4

Sau máy chủ G-WAN trong nhiều năm, tôi đã đọc (nhiều) cuộc nói chuyện bao gồm câu hỏi này trên diễn đàn G-WAN cũ.

Từ những gì tôi có thể nhớ, những gì đã nhiều lần đề cập đến là những chương trình:

  1. kiến ​​trúc (so sánh cụ thể đã được thực hiện với nginx, lighty và cherokee)
  2. thực hiện (cách tổng thể phân nhánh, yêu cầu phân tích và phản ứng xây dựng đã được thực hiện)
  3. con đường chung nạc (con đường tiếp theo tất cả các loại yêu cầu: năng động, tĩnh, xử lý)

Pierre thường mentionn ed các máy chủ khác để giải thích những gì trong kiến ​​trúc và triển khai cụ thể của chúng đã làm chậm chúng xuống. Thời gian trôi qua, vì G-WAN dường như có nhiều tính năng hơn (hỗ trợ C# script, proxy ngược và cân bằng tải với phiên bản tiếp theo), có vẻ như 3 điểm trên là nhiều hơn và quan trọng hơn. Đây có lẽ là lý do tại sao mỗi bản phát hành mới của G-WAN dường như sẵn sàng để nhanh hơn so với trước đó: càng có nhiều công việc bạn làm, thì chất béo thừa phải được loại bỏ vì chi phí của nó cao hơn. Và cũng giống như cho một chiếc xe đua hoặc một chiếc máy bay, đây là một quá trình gia tăng, người ta kêu gọi nhiều người khác.

Nếu bạn đang tìm kiếm 'bí mật' của tốc độ G-WAN thì tôi đoán đây là điểm mấu chốt. Nhưng nếu bạn muốn biết thêm chi tiết thì bạn nên nói chuyện trực tiếp với tác giả G-WAN.

+0

Thiết kế rõ ràng nhất. Tuy nhiên, thử nghiệm tiếp theo cho thấy tải CPU của tôi vào khoảng 30%. Nút cổ chai có vẻ là card mạng hoặc hạt nhân. GWAN vẫn hoạt động tốt hơn những gì chúng tôi có.Có một số thủ thuật khởi tạo đặc biệt có liên quan đến việc nâng cấp các gói/s thông qua card mạng không? – Matt

+0

Nếu nút cổ chai là hạt nhân thì G-WAN không thể nhanh hơn các mạng khác. Tải CPU của G-WAN thấp hơn vì mã * chế độ người dùng * của nó nhanh hơn nhiều. ** hello.c ** servlet không chạm vào đĩa sao cho hạt nhân không liên quan đến việc tải một tệp - và ở đây cũng G-WAN nhanh hơn mô-đun nginx (không giống như các servlet G-WAN, KHÔNG được nạp động vì vậy nó sẽ có một lợi thế). Mã nhanh hơn, gọn hơn và kiến ​​trúc chương trình tốt hơn. Đó là tất cả những gì G-WAN là về. – Gil

1

Kiểm tra tiến trình của G-WAN. Bản cập nhật vào ngày 8 tháng 8 năm 2011 có thể cung cấp cho bạn ý tưởng về những gì anh ấy đang sử dụng.

G-WAN Timeline

Pierre nói rằng G-WAN sử dụng nó wait-free Key-Value cửa hàng rất nhiều vào chức năng cốt lõi G-WAN của. Nó cho tốc độ nhanh hơn vì không có ổ khóa nào được sử dụng.

Ông cũng sử dụng kỹ thuật lấy cảm hứng từ bánh xe Lorenz Waterwheel để xử lý đề tài. Tôi không chắc nó hoạt động như thế nào nhưng anh ấy nói rằng nó cho phép G-WAN chạy nhanh hơn trong mọi trường hợp có thể.

+0

Phải, cửa hàng KV được sử dụng cho các danh sách như các máy chủ ảo và các servlet nhiều ngôn ngữ trong khi Lorenz Waterwheel là cách kiến ​​trúc được tổ chức để xử lý các luồng công nhân. Điểm chính là Waterwheel * tự động điều chỉnh với tải trọng để cung cấp khả năng đáp ứng tốt nhất có thể mặc dù thay đổi điều kiện tải. – Gil

+0

Ngoại trừ việc phân phát các trang tĩnh không cần phải chạm vào kho khóa/giá trị. Trừ khi anh ta sử dụng nó như là một bộ nhớ cache Bên cạnh đó, tôi nghi ngờ rằng nó nhanh hơn mdb. Trên thực tế, nếu bạn tìm kiếm những gì một Lorenz Waterwheel là, nó về cơ bản có nghĩa là ngẫu nhiên. Tôi đoán là anh ấy đang tạo ra một số thuật ngữ có vẻ tốt nhưng không phải là những gì nó thực sự đang làm. – Matt

+0

Bạn có thể chứng minh rằng mdb nhanh hơn lưu trữ G-WAN KV không? Lorenz Waterwheel không chỉ là ngẫu nhiên. Một khái niệm khác là nhạy cảm với điều kiện ban đầu. Điều này có thể được áp dụng cho lõi như điều kiện ban đầu. Thuật toán sẽ hoạt động hoàn toàn khác khi sử dụng 1,2,4 ... lõi. Tôi đoán là chúng tôi chỉ không biết làm thế nào anh ta thực sự làm điều đó đó là lý do tại sao nó trông vô nghĩa. –

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