Hello all, I am developing one speedtest application which will run through openwrt command line using python script. I am facing problem with this, my openwrt is showing that I have 150 mbps down and 190 mbps up, however I have 290 mbps down and 310 mbps up.
while my test happens my cpu load reaches to 100% of 1 core, I have 4 core cpu.
It's quite a challenge to separate the performance of the router in routing from that of the load of generating / sinking packets. One existing solution that I have heard good things about includes
You could try to run the python code on a different CPU than CPU1 as it seems that that CPU is also used for the kernel. I would also recommend to test busybox's top as that will splitt up the CPU usage into different categories, and especially sirq often is dominated by the kernels networking components (at least on a router).
By default, most/all network activity gets assigned to core0.
You might into discussion about irqbalance package. You can install it and once you manually run it, it will distribute driver IRQs into different cores.
You can do that also manually, just search here for irqbalance and for CPU affinity.