Linux top
명령은 시스템에서 사용하는 모든 CPU 시간을 설명합니까?
Linux 시스템에서 IPsec 처리의 병목 현상을 이해하려고 합니다. 한 가지 구체적인 예에서 시스템은 AWS의 가상 머신이고 IPsec 처리량을 테스트하고 있습니다. 우리는 AWS가 각 스트림에 부과하는 제한을 이해하지만 해당 제한에 도달하지 않았습니다. 보고에 따르면 ethtool
IPsec에 대한 하드웨어 오프로드는 없습니다. IPsec이 없으면 훨씬 더 높은 처리량을 달성할 수 있습니다(AWS가 인스턴스 유형에 대해 게시한 제한에 도달했습니다.). IPsec을 사용하면 처리량이 상당히 낮아서 이해할 수 있지만 제한의 원인이 무엇인지 확실히 알고 싶습니다.
따라서 IPsec의 경우 처리량은 가상 머신의 CPU 사용량(메모리 대기 포함)에 따라 제한될 것으로 예상됩니다. 제가 테스트한 경우에는 vCPU가 32개 있었고 스트림이 32개가 넘는 경우에도 각 vCPU에 대해 Get 출력을 top
누르면 1
사용률이 매우 높은 vCPU가 없었으며 대부분이 50% 이상 유휴 상태였습니다.
팀원은 top
모든 vCPU 사용량이 계산되지 않을 수도 있고 일부 "핵심" Linux 커널 CPU 사용량이 무시될 수도 있다고 제안했습니다. 가능합니까?
그런데 스트림 수가 증가함에 따라 처리량이 최대 512까지 증가합니다(ulimit의 최대값을 변경하지 않고). 또한 흐름 수를 늘리는 것보다 IPsec 터널 수가 늘어나면 처리량이 더 높아집니다. 나에게 이는 상태가 ip xfrm
vCPU에 연결될 수 있음을 의미합니다. 그러나 top
CPU 사용량이 매우 높지 않기 때문에 결과에서 이에 대한 명확한 증거를 볼 수 없습니다. 대부분의 사용량은 si
(소프트웨어 인터럽트) 열에 있습니다.