OpenVPN cần bao nhiêu lõi? Còn tùy vào đường đi
Một luồng duy nhất có thể giữ một lõi trong khi máy chủ trông như đang rảnh. Hãy so sánh đường đi trong không gian người dùng với việc đẩy xuống nhân, rồi đo mức đồng thời mà bạn thực sự phục vụ.
Hai máy chủ có cùng số bộ xử lý có thể duy trì thông lượng rất khác nhau, vì con số quan trọng là đường dữ liệu đang hoạt động thực sự dùng được bao nhiêu lõi. Một daemon trong không gian người dùng xử lý gói tin của một khách hàng chỉ bị giới hạn ở một lõi, trong khi một đường đi trong nhân đã đẩy xuống có thể trải đều công việc đó. Không câu nào cho biết một máy cụ thể sẽ làm gì với lưu lượng của bạn, nên đo đạc phải đến trước việc đếm lõi.
So sánh dưới đây nói về nơi gói tin được xử lý, không phải về sản phẩm nào nhanh hơn theo nghĩa trừu tượng. Đó là những câu hỏi khác nhau với câu trả lời khác nhau.
Một lõi cho mỗi luồng trên đường đi trong không gian người dùng
Trong một phiên bản Community OpenVPN truyền thống, kênh dữ liệu được xử lý trong không gian người dùng, và một kết nối bận có thể giữ một bộ xử lý trong khi mức sử dụng tổng thể của máy vẫn không đáng kể. Đó là lý do thêm lõi vào một máy chủ đã bão hòa trên một luồng không thay đổi gì: bộ lập lịch không có cách chia công việc đó. Cấu trúc một tiến trình cho mỗi khách hàng giới hạn việc truyền của một khách hàng trong khả năng của một lõi, bất kể tổng số lõi là bao nhiêu. Trong lúc kiểm thử hãy đọc mức sử dụng từng lõi thay vì con số tổng, nếu không điểm nghẽn sẽ trông như còn dư.
Chạy nhiều phiên bản máy chủ trên một máy chủ vật lý sẽ phân tán các khách hàng riêng biệt sang các tiến trình. Nó không song song hóa một kết nối đang có, và tốn các nhóm, trình lắng nghe và quyết định định tuyến riêng.
Đường đi còn lại: gói tin trong nhân
Đẩy kênh dữ liệu xuống nhân chuyển việc xử lý gói tin được hỗ trợ và mật mã vào nhân, nơi công việc có thể dùng nhiều lõi. Điều đó đổi câu hỏi dung lượng từ một lõi sang cả máy, nhưng chỉ với những cấu hình mà cách triển khai hỗ trợ: một mô-đun nhân tương thích, một mật mã dữ liệu hợp lệ và một cấu hình không có các tính năng mà việc đẩy xuống loại trừ. Cài một mô-đun không giống như dùng nó, nên hãy xác nhận chế độ đang hoạt động từ nhật ký hoặc đầu ra trạng thái của chính kết nối. Biểu ngữ phiên bản chứng minh cái gì có sẵn, không phải cái gì đang chạy.
Việc đẩy xuống không loại bỏ xác thực hay kênh điều khiển, và không biến mọi triển khai thành đa lõi. Đó là tăng tốc cục bộ của một đường dữ liệu tương thích, và yêu cầu khác nhau theo nền tảng và phiên bản.
So sánh thực sự quyết định điều gì
Lựa chọn thật sự nằm giữa việc chấp nhận trần mỗi luồng, phân tán khách hàng sang các phiên bản và chuyển sang một cấu hình đẩy xuống được hỗ trợ. Mỗi cách giải quyết một vấn đề khác nhau, và chọn sai tốn tiền mà không nhích được con số. Bài kiểm thử quan trọng là bài có hình dạng giống cách dịch vụ được dùng.
Hãy đo ba hình dạng: một khách hàng với một lần truyền, một khách hàng với nhiều luồng và nhiều khách hàng cùng lúc. Tổng cao ở hình thứ ba không chứng minh một lần tải xuống có thể đạt tới, và một lần truyền đơn chậm không chứng minh máy chủ đã cạn tổng dung lượng. Các kết quả trả lời những câu hỏi khác nhau và cả hai đều đáng giữ.
Chỉ hình ở giữa cho biết đồng thời bên trong một khách hàng có giúp ích hay không, điều thường là thuộc tính của vận chuyển và đường đi chứ không phải máy chủ. Chỉ hình đầu cho biết trần mà một ứng dụng sẽ thấy. Giữ khối lượng công việc giống nhau giữa các lần chạy để so sánh có ý nghĩa.
Đo để con số có ý nghĩa
Ghi lại phiên bản máy chủ và khách hàng, đường dữ liệu đang hoạt động, mật mã dữ liệu đã thương lượng, hướng truyền, kích thước gói, số luồng và thời lượng. Theo dõi hoạt động từng lõi và mất gói cùng mất hàng đợi ở cả hai đầu, vì giao diện của chính khách hàng, mạng của nhà cung cấp hoặc dịch vụ đích có thể trở thành giới hạn trước. Chỉ đổi một biến mỗi lần, vì một lần chạy thay đổi mật mã, nén, MTU và đẩy xuống cùng lúc thì không thể cho biết cái nào quan trọng. Trong lúc kiểm thử hãy giữ chính sách truy cập mà bạn thực sự định triển khai, vì một cách bố trí phòng thí nghiệm mà không ai chạy chứng minh được rất ít.
Sau đó để dư chỗ cho kênh điều khiển, cho việc thương lượng lại và cho mọi thứ khác chạy trên máy chủ.
Hãy báo cáo điều cấu hình đã trụ được dưới mức đồng thời dự kiến, thay vì một tốc độ ngoại suy từ phần cứng của người khác. Một con số kèm điều kiện kiểm thử là hữu ích; một lời hứa không có chúng chỉ là phỏng đoán sẽ bị trích lại cho bạn.