Có phải mỗi gói được xử lý bởi một lõi khác nhau? Hoặc nó là một quá trình đơn luồng?
2
Tôi không chắc tại sao Chopper3 lại đóng câu hỏi này. Để trả lời nó: Iptables thực sự chỉ là giao diện người dùng cho tường lửa linux là bộ lọc mạng. Netfilter thực sự là một hệ thống các hook trong kernel xung quanh việc xử lý gói. Mỗi gói được xử lý bởi kernel bằng cách kích hoạt một interupt. Việc hạt nhân của bạn có bị gián đoạn trên nhiều CPU hay không tùy thuộc vào độ tuổi của nó. Xem chủ đề này trên StackOverflow về nó. stackoverflow.com/questions/7467688/
—
Mạnh
+1, vì tôi nghĩ đó là một câu hỏi chính hãng.
—
Sachin Divekar
@JakePaulus Sự cân bằng IRQ này sẽ không bao giờ gán nhiều hơn một lõi cho một ngắt. Vì vậy, một chuyển đổi lõi cho mỗi gói trên một dòng sẽ không bao giờ diễn ra?
—
Nils
Từ điểm bộ nhớ cache của bộ nhớ CPU, các lõi chuyển đổi chế độ xem cho một kết nối không có ý nghĩa nhiều - nó thậm chí có thể làm chậm mọi thứ nếu các lõi này không chia sẻ cùng một bộ đệm. Nhưng tại sao bạn lại hỏi câu hỏi này?
—
Nils
@Nils Các ngắt được tạo bởi một giao diện có thể được chuyển hướng đến CPU khác, ít bận hơn. Ngoài ra, nhiều giao diện có thể có các ngắt của chúng được gửi đến các CPU khác nhau để truyền tải. Tôi nghĩ rằng bạn đúng về lưu lượng truy cập từ một giao diện duy nhất không được cân bằng giữa các CPU trên cơ sở mỗi gói.
—
JakePaulus