Jump to content

Recommended Posts

Posted

Before installing this Armbian legacy kernel (3.4.109), I was using a Bananian-based image with OpenMediaVault (the so called BanaNAS image) and was getting regular 30MB/s transfer rates to my Samba shared hard drives (USB and SATA). My PC and Banana are connected through a gigabit switch, and working at 1Gbps.

 

After installing and configuring the new Armbian image, I notice my transfer rates were now around ~23MB/s which was odd. After trying to change some smb.conf parameters and getting nowhere, I decided to test just the network performance by setting up a simple web server on my PC and doing a wget -O /dev/null http://<my PC-IP>/test.zip of 3Gb. The values were the same. Testing on another PC and Chrome, I got 40MB/s. So clearly my PC was fine but the Banana wasn't.

 

 Today I burned and installed 4 OS images and repeated the test above. I did it right after the initial boot ended without any further updates:

 

- OpenMediaVault-Bananian 3.4.104: 36.6MB/s

- Bananian 15.08: 36.7MB/s

- Armbian legacy: 25.9MB/s

- Armbian vanilla: 35MB/s

 

 Clearly there is something wrong with this image. However, I have no idea on what to do to find out how to fix it. Are there any configuration I can look up on the Bananian image and compare to yours?

 

Thanks!

Posted

Ok. So, on Bananian 15.08, the difference on sysctl.conf is just vm.swapiness=1 (is 0 on Armbian), and adds vm.vfs_cache_pressure=50. I tried this on Armbian's conf file, but no difference.

 

The sysctl output is the same, except for:

- net.unix.max_dgram_qlen=10 (Bananian) vs 512 (Armbian), no difference in throughput.

- a whole lot of extra settings on Armbian:

net.ipv4.conf.all.forward_shared = 0 net.ipv4.conf.all.hidden = 0 net.ipv4.conf.all.loop = 0 net.ipv4.conf.all.rp_filter_mask = 0 net.ipv4.conf.bond0.accept_local = 0 net.ipv4.conf.bond0.accept_redirects = 1 net.ipv4.conf.bond0.accept_source_route = 1 net.ipv4.conf.bond0.arp_accept = 0 net.ipv4.conf.bond0.arp_announce = 0 net.ipv4.conf.bond0.arp_filter = 0 net.ipv4.conf.bond0.arp_ignore = 0 net.ipv4.conf.bond0.arp_notify = 0 net.ipv4.conf.bond0.bootp_relay = 0 net.ipv4.conf.bond0.disable_policy = 0 net.ipv4.conf.bond0.disable_xfrm = 0 net.ipv4.conf.bond0.force_igmp_version = 0 net.ipv4.conf.bond0.forward_shared = 0 net.ipv4.conf.bond0.forwarding = 0 net.ipv4.conf.bond0.hidden = 0 net.ipv4.conf.bond0.log_martians = 0 net.ipv4.conf.bond0.loop = 0 net.ipv4.conf.bond0.mc_forwarding = 0 net.ipv4.conf.bond0.medium_id = 0 net.ipv4.conf.bond0.promote_secondaries = 0 net.ipv4.conf.bond0.proxy_arp = 0 net.ipv4.conf.bond0.proxy_arp_pvlan = 0 net.ipv4.conf.bond0.rp_filter = 0 net.ipv4.conf.bond0.rp_filter_mask = 0 net.ipv4.conf.bond0.secure_redirects = 1 net.ipv4.conf.bond0.send_redirects = 1 net.ipv4.conf.bond0.shared_media = 1 net.ipv4.conf.bond0.src_valid_mark = 0 net.ipv4.conf.bond0.tag = 0 net.ipv4.conf.default.forward_shared = 0 net.ipv4.conf.default.hidden = 0 net.ipv4.conf.default.loop = 0 net.ipv4.conf.default.rp_filter_mask = 0 net.ipv4.conf.eth0.forward_shared = 0 net.ipv4.conf.eth0.hidden = 0 net.ipv4.conf.eth0.loop = 0 net.ipv4.conf.eth0.rp_filter_mask = 0 net.ipv4.conf.lo.forward_shared = 0 net.ipv4.conf.lo.hidden = 0 net.ipv4.conf.lo.loop = 0 net.ipv4.conf.lo.rp_filter_mask = 0 net.ipv4.conf.tunl0.forward_shared = 0 net.ipv4.conf.tunl0.hidden = 0 net.ipv4.conf.tunl0.loop = 0 net.ipv4.conf.tunl0.rp_filter_mask = 0 net.ipv4.neigh.bond0.anycast_delay = 100 net.ipv4.neigh.bond0.app_solicit = 0 net.ipv4.neigh.bond0.base_reachable_time_ms = 30000 net.ipv4.neigh.bond0.delay_first_probe_time = 5 net.ipv4.neigh.bond0.gc_stale_time = 60 net.ipv4.neigh.bond0.locktime = 100 net.ipv4.neigh.bond0.mcast_solicit = 3 net.ipv4.neigh.bond0.proxy_delay = 80 net.ipv4.neigh.bond0.proxy_qlen = 64 net.ipv4.neigh.bond0.retrans_time_ms = 1000 net.ipv4.neigh.bond0.ucast_solicit = 3 net.ipv4.neigh.bond0.unres_qlen = 35 net.ipv4.neigh.bond0.unres_qlen_bytes = 65536

 

I removed and didn't compare the ipv6 settings.

 

What next?

Posted

After comparing both Bananian and Armbian, I noticed Bananian follows the rules defined on the site above (linux-sunxi.org), for the type of governor and some "ondemand" settings. This made the web download pratically the same as Bananian's, at 35.5MB/s.

 

Still, Samba shares were the same :-( So, I tried to just copy the smb.conf file from Bananian to Armbian, maintaining my defined shares and finally things fell into place! :-) I didn't actually check what was the difference except there are no special "performance" or "tuning" settings there, like socket options, or aio read/write size, etc.

 

I still think performance was better on my old, now lost, BanaNAS installation. But, it's acceptable.

 

Thanks for your tips!

Posted

This difference is probably due to U-boot fine tuning. The rest doesn't have that much impact. Except governor, everything is as stated in wiki but nevertheless kernel is different.

 

I don't do detail testing for each build but I'll check within next build.

 

There are also two different legacy kernels now: sun7i and sunxi ... they differ in GMAC driver.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines