Hi, I've got Mi Router 3G with OpenWrt 19.07-SNAPSHOT r10642 on board. Issue what I have is low download speed with wget over https protocol. Over http I've got 8MB/s, over https only 4MB/s. Is it possible to solve it?
Which device is downloading? The Router or some host connected to the router?
Are you comparing speeds on the same server or http in one server and https on another?
Ive got USB pendrive mounted directly to Mi Router, booth have USB 3.0 but it is doesn't matter because I've got cifs share mounted also and speed over https I throttled also. In comparison I've got armbian on TV box in the same network and the same https link I can download with wget with full speed same as http. So this is not network issue, something wrong with wget installed in OpenWrt I think.
So if I understand properly there are 2 devices downloading. The router and some other host in the lan.
And you are downloading the same file from the same server with http and https on the router.
Is that right?
What about the throttle on https that you mentioned?
No no, not 2 devices downloading at the same time.
If I'm downloading https link with wget by router to usb mounted to Router or to cifs share mounted to Router I've got only 4MB/s when http link with the same circumstances I can download with 8MB/s.
In comparison I've got Armbian installed on my TV box. So the same network and same cifs mounted to my TV box. Speed with wget with the same link https and http is the same 8 MB/s.
Problem is with wget on my Router or some bug in OpenWrt with https link. Https link is downloaded only with half of the network speed.
Open another SSH session to the router and run the
Then start downloading again the file from httpS.
While downloading post here the first 10 lines from top. Use preformatted text when you paste
Mem: 226088K used, 27624K free, 720K shrd, 6052K buff, 157160K cached CPU: 19% usr 4% sys 0% nic 71% idle 0% io 0% irq 4% sirq Load average: 1.30 1.07 0.57 5/87 26811 PID PPID USER STAT VSZ %VSZ %CPU COMMAND 26436 26326 root R 4936 2% 25% wget https://standard.rapideo.pl/43729624/140c11f12bb8bc7fae2da5035164a9382c4a02c1/Na. 5158 2 root IW 0 0% 0% [kworker/1:1] 206 2 root SW 0 0% 0% [kswapd0] 26314 2 root IW 0 0% 0% [kworker/u8:0] 3163 1 root S 1772 1% 0% /usr/sbin/hostapd -s -P /var/run/wifi-phy0.pid -B /var/run/hostapd-phy0.conf 26811 26702 root R 1236 0% 0% top 26325 2416 root S 1152 0% 0% /usr/sbin/dropbear -F -P /var/run/dropbear.1.pid -p 192.168.0.254:22 -p 8 2 root IW 0 0% 0% [rcu_sched] 520 2 root SW 0 0% 0% [usb-storage] 24 2 root SW 0 0% 0% [ksoftirqd/3]
It looks like your CPU is maxed out. Since wget is not multi thread process it cannot go over 25% (2 cores times 2 hyperthreading = 4 virtual CPUs)
I remember there was a similar thread recently, but I cannot find it. Maybe someone else will.
Now why there is the difference between http and https? In the first case the data is unencrypted, so not much to do but copy them from the incoming packets to the disk. In https the content is encrypted, therefore it needs to be decrypted before copying it on the disk from the packets. The decryption process uses CPU.
The other device has apparently plenty of CPU cycles available to decrypt the data and store them, furthermore it doesn't have to do all the routing/firewall/QoS/whatever_else the router is doing.
Would you like to tell me that Mi Router 3G with 2 cores 880MHz is not able to decrypt data and store them? It looks like has only 440MHz CPU in this case...
I've got Zyxel NSA 310 from 2012 with 1 core 1GHz but not on OpenWrt (it has still Zyxel firmware) and this old machine is able to do this with around 35%-40% CPU usage.
The perks of hyperthreading and multicoring.