Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    Xin chỉ giáo: Giới hạn connect của Node và socket.io

    Node.JS
    0
    9
    1863
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Acenter Ha
      Acenter Ha last edited by

      Mình đang gặp một vấn đề khá nghiêm trọng cho ứng dụng, rất mong mọi người chỉ giáo.
      Ứng dụng nodejs sử dụng socket.io, mình sử dụng tool tạo client connect đến server và socket.io, nhưng đến khoảng hơn 400 client thì server chết.
      Vậy nguyên nhân là do server của nodejs hay là giới hạn của socket.io ?
      Liệu có cách nào khắc phục không?
      Xin chân thành cảm ơn.

      Nguyen Hien 1 Reply Last reply Reply Quote 0
      • Nguyen Hien
        Nguyen Hien @Acenter Ha last edited by

        @Acenter-Ha Bạn có dùng chung với proxy nào ko ?

        Sent from Rodgers Zone!!!

        Nguyễn Nhân 1 Reply Last reply Reply Quote 0
        • Nguyễn Nhân
          Nguyễn Nhân @Nguyen Hien last edited by

          @Nguyen-Hien là sao? nếu chung với proxy là sao? bạn giải thích rõ hơn

          1 Reply Last reply Reply Quote 0
          • Nguyen Hien
            Nguyen Hien last edited by

            Socket.io của thằng js khá bựa. Theo như nhớ là socket built in http. Ông connect theo doc là http đúng ko =)). Dùng chung với proxy thì phải config để nó upgrade và keep nó. Còn ko nó cứ ping hoài. Ko biết có phải trường hợp bác bị ko

            Sent from Rodgers Zone!!!

            hidemanvn 1 Reply Last reply Reply Quote 0
            • Acenter Ha
              Acenter Ha last edited by Acenter Ha

              Cảm ơn mọi người, mình điều tra ra được rồi, nguyên nhân không nằm ở Socket.io hay nodejs mà do Nginx.
              Cách fix là sửa nội dung config trong file config của Nginx các key: [worker_connections, worker_rlimit_nofile] thành giá trị lớn hơn nhưng phù hợp với cấu hình server là ok.

              Nguyen Hien 1 Reply Last reply Reply Quote 1
              • Nguyen Hien
                Nguyen Hien @Acenter Ha last edited by

                @Acenter-Ha Bạn có thể share cho mọi người với. Vì mọi người chọn Nodejs một phần là vì realtime của nó khá dễ hơn cái khác. Hehe. Mình cũng muốn tìm hiểu thêm

                Sent from Rodgers Zone!!!

                Acenter Ha 1 Reply Last reply Reply Quote 0
                • Acenter Ha
                  Acenter Ha @Nguyen Hien last edited by

                  @Nguyen-Hien
                  Dự án mình đang làm là của khách hàng nên không thể share source được bạn nhé, bạn thông cảm.

                  Thông tin chính vấn đề mình gặp:
                  Dự án sử dụng nodejs (express, socket, ejs) bình thường, không xài các generator nào cả.
                  Node được đặt trong Nginx theo yêu cầu của K/H, vì họ muốn sử dụng Nginx để quản lý.
                  Vấn đề phát sinh khi mình dùng Phantomjs để test performance cho ứng dụng.

                  Hiện tượng thì mình đã nêu ở #1 rồi bạn nhé.
                  Nguyên nhân nằm ở Nginx, Nodejs và socket.io có thể nhận số lượng connections cực lớn. Mình nhớ không lầm thì là 65k và 10k thì phải.

                  Nguyen Hien 1 Reply Last reply Reply Quote 0
                  • Nguyen Hien
                    Nguyen Hien @Acenter Ha last edited by

                    @Acenter-Ha Oke. Thanks =)))

                    Sent from Rodgers Zone!!!

                    1 Reply Last reply Reply Quote 0
                    • hidemanvn
                      hidemanvn @Nguyen Hien last edited by

                      @Nguyen-Hien limited của socket.io liên quan đến proxy?
                      mặc định máy chủ server nó cũng giới hạn resource thường là 1024 với connection. Phải dùng ulimit để tăng giới hạn tài nguyên hoặc chỉnh sửa trong sysctl.conf để giới hạn từng thứ cụ thể hơn. Với ngnix có thể tăng worker và tạo thêm upstream nhưng vẫn phải tăng giới hạn tài nguyên ở máy chủ.

                      1 Reply Last reply Reply Quote 2
                      • First post
                        Last post