시스템 중단. 언제 너무 많은가?

시스템 중단. 언제 너무 많은가?

우리는 Linux 서버를 VPN 라우터로 테스트하고 있습니다.

우리는 꽤 좋은 서버를 보유하고 있으며 현재 약 170,000개의 중단을 경험하고 있지만 더 많은 것이 예상됩니다. CPU 사용량은 괜찮습니다. 너무 많은 경우 어떻게 알 수 있습니까? 서버가 더 이상 처리할 수 없게 되면 CPU 부하가 증가합니까?

답변1

등에서 /proc/interrupts인터럽트는 카운터로 표시됩니다(예: "마지막 재부팅 이후 서비스된 인터럽트 ~170k"). 시스템이 얼마나 오랫동안 가동되어 실행되었는지 알지 못하면 이러한 카운터는 거의 의미가 없습니다. 중요한 것은 단위 시간당 인터럽트 수입니다.중단율.

VPN 라우터에서 인터럽트는 입력 버퍼(또는 예를 들어 고급 서버급 NIC의 경우 특정 흐름에 대한 수신 패킷의 현재 DMA 대상)가 가득 찼음을 나타내는 NIC에 의해 주로 생성됩니다. VPN 라우터가 모든 중단을 적시에 처리할 수 없는 경우 VPN을 통한 연결에서 패킷 손실이 나타나기 시작하거나 실제 VPN 터널이 실패하고 다시 연결될 수 있습니다.

매우 간단한 NIC에는 X 패킷을 수신하고 버퍼가 거의 가득 찼을 때 인터럽트를 생성하는 입력 버퍼만 있을 수 있으며, 그 결과 수신된 모든 (Xn) 패킷에 대해 인터럽트가 발생합니다. 고급 NIC는 자체적으로 DMA 전송을 수행할 수 있으므로 프로세서는 기본적으로 NIC에 "여기에 사용할 메모리 덩어리가 있습니다. 들어오는 모든 패킷(특정 소스 주소/프로토콜/포트 조합에 대해)을 여기에 넣으십시오"라고 알릴 수 있습니다. 메모리 블록이 가득 찼거나 전송에 문제가 있는 것 같을 때까지 방해하지 마세요." 결과적으로 전송된 데이터 단위당 중단 횟수가 훨씬 줄어듭니다. 따라서 사용하는 정확한 NIC 유형은 해당 VPN 트래픽 워크로드가 생성하는 중단 횟수에 큰 영향을 미칠 수 있습니다.

프로세서가 적시에 인터럽트를 처리할 수 없으면 네트워크 카드에 패킷을 저장할 공간이 없기 때문에 들어오는 패킷이 손실되는 상황이 발생할 수 있습니다. 단위 시간당 인터럽트 수가 증가함에 따라 사용된 CPU 시간의 비율을 확인해야 합니다.체계그에 따라 증가하십시오.

인터럽트 비율이 너무 높아지면 실제로 다음과 같은 결과가 나타날 수 있습니다.줄이다CPU 부하: 인바운드 패킷이 손실되면 상대방이 손실된 패킷을 재전송할 때까지 기다리는 것 외에는 할 수 있는 일이 없기 때문입니다.

선택한 특정 VPN 구현에 따라 CPU 로드 평균 값은 시스템이 얼마나 열심히 작동하는지 나타내는 유용한 지표가 될 수도 있고 그렇지 않을 수도 있습니다. 왜냐하면 대부분의 VPN 관련 처리가 커널 내부에서 발생할 수 있기 때문입니다.

관련 정보