Low shadowsocks performance on Zyxel Armor Z2

Hi Forum,

I am living in China and as a foreigner it is essential for me to have free access to the internet.

I am having several servers in Europe, which have a quite good speed to China. Because pure VPN connections getting blocked quite fast, I am using a Shadowsocks with v2ray plugin on each server.
Here in China I am connecting to these servers through an OpenWrt installation on an Zyxel Armor Z2. I bought this router, because before I was running shadowsocks on a Glinet Travel Router and on an AVM Fritzbox. But the performance was not very good. The Zyxel Router has a dual core 1.7 GHz CPU and enough memory, so I thought handling shadowsocks will be easy.
But maximum download rate is about 60 Mbit/seconds, connected to shadowsock. It's not too bad, but I found out that the connection can be much faster.

I installed OpenWrt in a virtual machine on my homeserver (ASRock C2750D4I) and I was able to double the speed (up to 120 Mbit/s).

I don't understand, why I only get 60 Mbit on the Zyxel, but I also don't want to let OpenWrt run on my server all the time.
Is there any router or device you can suggest, which is maybe more powerful than the Zyxel and I can give it a try to install OpenWrt on it with shadowsocks and get a similar result as in the VM on my server?

I was thinking about to buy a x86 mini computer to let OpenWrt run on it. But most are with J1900 or N2600 CPU, which are quite old and I am not sure, if they are really better than the Zyxel.

Thanks for your help!

don't get hung up on GHz and cores, they don't say that much about a SoC.

did you check the CPU usage of the zyxel while using shadowsocks ?

RPi might be an alternative, or some derivative.

if shadowsocks doesn't scale across CPU cores you ideally want something
with high single core performance, but not necessarily a lot of cores.

Good idea. I just downloaded a 1GB file and CPU Usage goes quite high (shadowsocks+v2ray). Almost 95 % together.
Attached a screenshot. So seems the router is really to weak for it?

you could try irqbalance to make sure the two threads run on separate cores.
then perhaps v2ray might be able to reach almost 100%, and shadowsocks end up at 50ish.

Thanks frollic. Just installed irqbalance and put /usr/sbin/irqbalance in /etc/rc.local
Then I restarted the box. But unfortunately no improvement.
Do you think an RPi with OpenWrt would be more powerful? Or any idea of another powerful machine? Otherwise I think about to buy a mini PC, but with i3 CPU. That should be sufficient.

feel free to ask these guys on thread... probably comes down to what kind of rates your expecting

over 100Mb/s probably x64

not saying it didn't work, but are you sure the processes ran on separate cores.

install htop, it'll show you the total load per core.
but you can also get the core # added to the display.

@frollic: I installed htop and it seems both processes are running on different cores.

Thanks @anon50098793 I will check it later.

You've conveniently cut away the most interesting information, the per-core load, from your screenshot, which is lacking the most important 5 lines above what you've posted.

Yes... That was stupid. I saw the per code load, but I forgot to include it in the screenshot.

Anyway... I didn't have enough hope that the situation will improve with the Zyxel, so I bought a small embedded computer with an i3 CPU and 6 LAN ports.
Of course totally oversized for OpenWrt. So I installed vSphere as an Hypervisor and let OpenWrt run as a VM. So I still can use the device for other VMs later on.

And now it's working very well. Shadowsocks with v2ray-plugin can get up to 200 Mbit/sec. That's more than expected. CPU load is reaching about 10 % now.

Thanks for all your ideas and support

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.