NIC: Intel 10G
VM: VFs from SR-IOV
6cores(3cores 2threads P#3-5,13-15) were given as below:

These were set based on sibiling corse ( which threads share same core), which was known from
lstopo:
DPDK-Pktgen Baseline Test:
Gave 1 rx core // 1 tx core

64byte Packet:
Approximately, >= 9.5Gbps (Allocating more CPU Cores did not show improvement in performance)

128 byte Packet:
Approximately, ~= 10Gbps

Iperf Baseline Test:
Server side : iperf -s -w 2m
Client side: iperf -c <recv_ip> -t 100 -w 2m -P 8
Approximately, >= 9.4Gbps

6cores(3cores 2threads P#6-8,16-18) were given as below:

Ping Baseline Test:
with command sudo ping 20.0.1.24 -c 1000 -i 0.01
Result showed:


Test was done with both DPDK side have Pktgen on
64 byte Packet:

128 byte Packet:

Result showed not much difference on latency and NO PACKET LOSS

Server side : iperf -s -w 2m
Client side: iperf -c <recv_ip> -t 30 -w 2m -P 8

Surprisingly, it showed exact 4.73Gbps (4.73 * 2 = 9.46 Gbps), which showed exact half of the maximum bandwidth.
Because each side of iperf showed 4.73Gbps, I tried to set a rate limit on VM1:
sudo ip link set ens6f1 vf 0 max_tx_rate <rate limit>:

Then, results were:
Rate Limit - 3000:

4.71Gbps(VM1) + 4.73Gbps(VM2) = 9.44 Gbps
Rate Limit - 2000:

3.81Gbps(VM1) + 5.64Gbps(VM2) = 9.45 Gbps
Rate Limit - 1000:

1.91Gbps(VM1) + 7.52Gbps(VM2) = 9.43 Gbps
Although BW were a bit higher than the max_rate_limit, Rate limit was set, and we could see that VM2 were getting better BW from the overall max BW.
VM1: 6cores(3cores 2threads P#3-5,13-15)
VM2: 2cores(1cores 2threads P#6,16)
VM2 alone iperf performance:

VM2 showed 9.41Gbps.
VM1 and VM2 iperf together :

4.72Gbps(VM1) + 4.71Gbps(VM2) = 9.43 Gbps