Dell PowerEdge 서버에 연결된 Intel x520 및 x540 이중 포트 NIC를 사용하고 있습니다. 모든 NIC 포트는 10Gbps에서 작동 할 수 있으므로 총 40Gbps입니다. 이 시스템에는 Xeon E5-2640 v3 CPU (Haswell Microarchitecture)가 포함 된 2 개의 소켓이 있습니다.PCIe 및 DMA를 벤치마킹하는 방법은 무엇입니까?
내가 직면하고있는 많은 문제가 있으며 PCIe 및 DMA 벤치마킹을 사용하여 해결할 수 있습니다. 그러나, 나는 똑같이하는 적절한 방법을 찾을 수 없습니다. DPDK 기반 드라이버 및 라이브러리 (64 바이트 패킷 포함)에서도 40Gbps 처리량을 달성 할 수 없습니다. 실험을 64 바이트 크기로 수행해야하며 패킷 크기를 변경할 수 없습니다.
DPDK-pktgen을 사용하여 패킷을 생성하고 Intel-PCM, ./pcm-pci.x를 사용하여 이벤트를 계산합니다. 그러나 카운팅은 한 가지 방법입니다. 즉, 이벤트의 수를 계산 중이며 시스템에서 지원할 수있는 각 이벤트의 최대 수를 알 수 없습니다. PCM-pci.x의 결과는 :
Skt PCIeRdCur RFO CRd DRd ItoM PRd WiL
0 73 M 3222 K 784 K 63 M 52 M 0 2791 K
내 NIC는 0을 소켓에 연결하고 내가 소켓 1 개 결과를두고 있지 않다 이유입니다.
PCIe 버스 및 DMA 엔진을 벤치마킹 할 수있는 방법이 있습니까? 그리고 패킷 처리를 위해 IO 하위 시스템 (각 레벨에서)에서 정확한 대기 시간을 얻는 방법이 있습니까 (rdtsc()를 사용하여 하드웨어 수준 대기 시간을 측정 할 수는 없습니까)?