CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này thảo luận về một số chế độ triển khai của máy chủ đồng thời trong Linux (giải thích chi tiết) được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.
1>Một luồng hoặc một tiến trình.
Nó tương đương với một liên kết ngắn. Sau khi chấp nhận, nó bắt đầu nhận và gửi dữ liệu và không chấp nhận các kết nối mới, tức là máy chủ hoặc máy khách.
Không có sự đồng thời.
2>Máy chủ vòng lặp và máy chủ đồng thời.
1. Máy chủ vòng lặp: Một máy chủ chỉ có thể nhận một máy khách tại một thời điểm. Máy khách tiếp theo chỉ có thể được kết nối sau khi máy khách hiện tại kết thúc quyền truy cập của nó.
2. Máy chủ đồng thời: Một máy chủ có thể phản hồi nhiều lượt truy cập của khách hàng cùng một lúc.
3>chọn+chế độ đa luồng.
Ba cách để triển khai các máy chủ đồng thời.
1. Máy chủ đồng thời nhiều tiến trình.
Điều đó có nghĩa là sau khi kết nối TCP, yêu cầu của mỗi máy khách không được máy chủ xử lý trực tiếp mà máy chủ tạo ra một tiến trình con để xử lý nó.
2. Máy chủ đồng thời đa luồng.
Máy chủ đa tiến trình là một cải tiến trên máy chủ đa tiến trình. Vì máy chủ đa tiến trình tiêu tốn một lượng lớn tài nguyên hệ thống khi tạo một tiến trình, nên các luồng được sử dụng để thay thế tiến trình, do đó trình xử lý dịch vụ có thể được tạo nhanh hơn. . Theo thống kê, việc tạo thread nhanh hơn 10.100 lần so với tạo tiến trình nên thread còn được gọi là tiến trình “nhẹ”. Sự khác biệt giữa một tiến trình và một tiến trình là tất cả các luồng trong một tiến trình đều có chung bộ nhớ chung, các biến toàn cục và thông tin khác.
Điều đó có nghĩa là sau khi kết nối TCP, yêu cầu của mỗi máy khách không được máy chủ xử lý trực tiếp mà do máy chủ tạo ra.
3. I/O đa kênh.
I/O là để giải quyết vấn đề chặn luồng/tiến trình trong cuộc gọi I/O đó và việc chọn hoặc nhóm thường được sử dụng.
4>epoll 。
Đối với epoll sau Linux 2.6, phương pháp thực tế là sử dụng một luồng để giám sát cổng. Khi chấp nhận nhận được kết nối, hãy đặt kết nối thành chế độ không chặn, đặt thời gian epoll thành chế độ kích hoạt cạnh và tham gia quản lý epoll. Chuỗi nhận bị chặn trong chức năng sự kiện chờ của epoll. Một chủ đề khác được dành riêng cho việc gửi dữ liệu.
Để ý:
1. Nếu epoll được đặt thành hiệu suất kích hoạt theo chiều ngang, mức độ chọn sẽ giảm.
2. Trong các hệ thống Unix, có những hạn chế đối với các bộ mô tả được mở bởi một tiến trình duy nhất và cũng có những hạn chế về số lượng các bộ mô tả được mở trong hệ thống. Giới hạn về số lượng bộ mô tả mở trong hệ thống được giới hạn ở hai bộ mô tả mềm và cứng. Các kết nối cứng khác nhau tùy thuộc vào cấu hình của máy. Giới hạn liên kết mềm có thể được sửa đổi nhưng phải nhỏ hơn giới hạn cứng.
ứng dụng:
Đồng thời TCP quy mô lớn trong Linux.
Hiện tại có các phương pháp đồng thời khác. Chẳng hạn như nhóm chủ đề. Nhóm quy trình, v.v. Mỗi chế độ đều có ưu điểm và nhược điểm. Nếu có sự đồng thời trên quy mô lớn, sẽ tốt hơn nếu sử dụng epoll.
Cài đặt thời gian của epoll bao gồm chế độ kích hoạt cạnh và chế độ kích hoạt ngang.
1. Phương pháp kích hoạt ngang:
Nếu bộ mô tả tệp sẵn sàng thực hiện các thao tác IO không chặn, một thông báo sẽ được kích hoạt. Nó được phép phát hiện liên tục trạng thái IO bất cứ lúc nào. Không cần phải thực hiện nhiều IO nhất có thể mỗi khi bộ mô tả sẵn sàng. Chọn và thăm dò ý kiến là các sự kiện kích hoạt theo chiều ngang.
Một sự kiện được kích hoạt bất cứ khi nào các yêu cầu được đáp ứng.
2. Phương pháp kích hoạt cạnh:
Nếu bộ mô tả tệp có hoạt động IO mới kể từ lần thay đổi trạng thái cuối cùng, thông báo sẽ được kích hoạt vào lúc này. Sau khi nhận được thông báo sự kiện IO, hãy thực hiện càng nhiều thao tác IO càng tốt, vì nếu IO không được hoàn thành trong một thông báo khác, bạn cần đợi cho đến khi hoạt động IO mới tiếp theo đến để có được bộ mô tả sẵn sàng. IO điều khiển bằng tín hiệu được kích hoạt cạnh.
Một sự kiện được kích hoạt mỗi khi trạng thái thay đổi.
ví dụ: Bây giờ có một thông báo 1000 byte Cho dù đó là trình kích hoạt ngang hay trình kích hoạt cạnh, thông báo chỉ đọc sẽ được gửi. Khi nhận được 100 byte, trình kích hoạt ngang sẽ được kích hoạt vì vẫn còn byte chưa được gửi. đã đọc. Gửi thông báo chỉ đọc, nhưng trình kích hoạt cạnh sẽ tiếp tục chờ thông báo, chờ tin nhắn tiếp theo đến và bỏ qua ổ cắm cho đến khi trình kích hoạt cạnh trả về EWOULDBLOCK.
Bài viết trên về các chế độ triển khai của một số máy chủ đồng thời trong Linux (giải thích chi tiết) là toàn bộ nội dung được biên tập viên chia sẻ với các bạn, hy vọng có thể cho các bạn tham khảo và mong các bạn ủng hộ mình nhiều.
Liên kết gốc: https://www.cnblogs.com/chenyang920/p/5469121.html.
Cuối cùng, bài viết này về các chế độ triển khai của một số máy chủ đồng thời trong Linux (giải thích chi tiết) kết thúc tại đây. Nếu bạn muốn biết thêm về các chế độ triển khai của một số máy chủ đồng thời trong Linux (giải thích chi tiết), vui lòng tìm kiếm bài viết CFSDN. duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!