# Less transmit Performance over VLAN



## Chiru (Nov 15, 2011)

Hi,

I was taking performance on HP FLEX-10 machine over LAN and VLAN on FreeBSD 8.2. I observed that performance over VLAN is varying with regards to iperf commands. Below are the two cases I observed.

*case 1:*

`iperf -c serverip -i 3 -t 999 [color="Red"]-P 8[/color] -w 128k`

The transmit performance with above command over VLAN is same as transmit performance over LAN.

*case 2:*

`iperf -c serverip -i 3 -t 999 [color="Red"]-P 1[/color] -w 128K` 

The transmit performance with above command over VLAN is less (2Gbps) compared to transmit performance over LAN. 

NIC is having VLAN TSO offload and VLAN tagging offload as well. Below is my ifconfig 

```
xyz: flags=8042<BROADCAST,RUNNING,MULTICAST> metric 0 mtu 1500
options=505bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,LRO,VLAN_HWFILTER,VLAN_HWTSO>
        ether 
        media: Ethernet autoselect (10Gbase-SR <full-duplex>)
        status: active
```

Does a lower number of parallel client threads degrade performance? Does anyone have similar performance issues over VLAN?

Regards
Chiranjeevi


----------



## ecazamir (Nov 22, 2011)

Is this server tuned for high throughput? FreeBSD defaults may not be suited for your needs. How much is the performance degraded over VLAN?
Try looking at CPU usage while iperf is running, on both ends. Raising the MTU may reduce CPU usage, and then the network throughput may increase.


----------



## SirDice (Nov 22, 2011)

You can also try turning on polling(4), see tuning(7).


----------



## Chiru (Nov 28, 2011)

40% of the CPU is degraded over VLAN. But this degrade is seen only on FLEX-10 machine.

The CPU utilization is as below


```
Host-CPU      Peer-CPU
LAN       65-70           40
VLAN       70             30
```


Can we derive something as the server CPU is low and client is having the same CPU with and without VLAN.


Can you please elaborate Is this server tuned for high throughput? FreeBSD defaults may not be suited
for your needs.


----------



## ecazamir (Nov 28, 2011)

You should take into account per CPU core performance. As long as a single thread is taking 100% CPU cycles, then you have a bottleneck for this process, even if your server has other 15 cores sitting idle and taking your system load to only 7.26%.

*top -PSH* will show CPU usage per core. See tuning(7) for details regarding FreeBSD performance tuning.


----------

