IPTables có tận dụng lợi thế của bộ xử lý đa lõi không?


10

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

Câu trả lời:


6

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ó. /programming/7467688/netfilter-hooks-on-multi-core-system

Như Nils đã đề cập, các ngắt này sẽ không được cân bằng trên cơ sở mỗi gói. Chúng sẽ được cân bằng trên mỗi IRQ (trên mỗi giao diện) hoặc có thể được chuyển hoàn toàn sang CPU khác nếu một thiết bị quá bận.


cách khác, bạn cũng có thể điều tiết các ngắt của bạn hoặc gắn chúng vào các lõi khác nhau. Tôi đã thấy trong một số trường hợp, họ liên kết tất cả các ngắt mạng đến một số lõi để đảm bảo sắp xếp lại gói ít nhất và xử lý di chuyển qua các lõi.
chandank
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.