각 패킷은 다른 코어에서 처리됩니까? 아니면 단일 스레드 프로세스입니까?
2
Chopper3가 왜이 질문을 닫았는지 잘 모르겠습니다. 대답하기 : iptables는 실제로 netfilter 인 Linux 방화벽의 사용자 공간 프론트 엔드입니다. Netfilter는 실제로 패킷 처리와 관련된 커널의 후크 시스템입니다. 각 패킷은 커널에 의해 인터럽트를 트리거하여 처리됩니다. 커널 밸런스가 여러 CPU에서 인터럽트를 발생시키는 지 여부는 커널 수에 따라 다릅니다. 그것에 대해 StackOverflow 에서이 스레드를 참조하십시오. stackoverflow.com/questions/7467688/…
—
JakePaulus
+1, 나는 그것이 진짜 질문이라고 생각하기 때문에.
—
Sachin Divekar
@JakePaulus이 IRQ- 밸런싱은 하나의 인터럽트에 둘 이상의 코어를 할당하지 않습니다. 따라서 한 줄의 각 패킷에 대한 코어 전환이 발생하지 않습니까?
—
Nils
CPU 메모리 캐시 관점에서 단일 연결에 대한 코어 전환은 그다지 의미가 없습니다. 이러한 코어가 동일한 캐시를 공유하지 않으면 속도가 느려질 수 있습니다. 그런데 왜이 질문을합니까?
—
Nils
@Nils 인터페이스에 의해 생성 된 인터럽트는 덜 바쁜 다른 CPU로 리디렉션 될 수 있습니다. 또한 여러 인터페이스에서 인터럽트를 다른 CPU로 보내로드를 분산시킬 수 있습니다. 단일 인터페이스의 트래픽이 패킷 단위로 CPU 전체에서 균형을 이루지 못한다고 생각합니다.
—
JakePaulus