Howdy folks,
Last weekend was spent getting Samba 3.6.24 to work under Asuswrt-Merlin. The OpenWRT devs did a really good job at trimming the fat out of it, so size-wise it's reasonable enough to be used on the router.
Unfortunately, the end results aren't all that was expected.
The plus: you get a modern version of Samba, with improved interoperability with clients, and better security overall
The downside: performance drop. On the AC87U, read SMB performance dropped from 69 MB/s to 64-65 MB/s.
The surprising point: when enabling support for the SMB2 protocol (which is used by Win7 and newer versions), performance actually DROPPED rather than improve. When using SMB 2.02, read performance dropped to 55 MB/s. I was expecting an improvement there since SMB2 uses larger blocks. I suspect it would only help in a scenario where you are bottlenecked by the network, not by the CPU.
So because of this, I'm facing dilemma: is the performance drop worth the improved security and interoperability? If it were me, I'd say yes, at least for the router model with a faster CPU where the performance hit might not be as visible. Unfortunately, there are a lot of users out there who seem to only evaluate everything by raw numbers. For example, some people will rant at how wireless performance can drop by 5% after an update, without considering the fact that this drop might be the price to pay for a more STABLE, and sustained connection. That means I'd have to continuously have to defend the decision when people start complaining about the performance loss.
I'm sure this will come up, but yes, I already tested all the various optimizations suggested on the web (I must have spent an entire night doing just tests with different settings). The current settings were already optimal for the router's environment. The only thing that did help a bit was compiling Samba with the highest level of compiler optimization - the size tradeoff seemed pretty marginal, especially for the RT-AC87's 64 MB FW partition.
Right now, the code on Github can easily be compiled with the old or the modern version of Samba (it's a build time switch in the device profile).
I'd like to see what everyone thinks here about this, before devoting more time to testing it and adjusting/fixing new issues (for instance there might currently be a charset encoding issue with this new build).
For reference, the ARM version of Samba used by Asus is 3.0.25b. They probably backported a good bit of stuff over the years, but I doubt it's anywhere near the 3.6 branch.
Last weekend was spent getting Samba 3.6.24 to work under Asuswrt-Merlin. The OpenWRT devs did a really good job at trimming the fat out of it, so size-wise it's reasonable enough to be used on the router.
Unfortunately, the end results aren't all that was expected.
The plus: you get a modern version of Samba, with improved interoperability with clients, and better security overall
The downside: performance drop. On the AC87U, read SMB performance dropped from 69 MB/s to 64-65 MB/s.
The surprising point: when enabling support for the SMB2 protocol (which is used by Win7 and newer versions), performance actually DROPPED rather than improve. When using SMB 2.02, read performance dropped to 55 MB/s. I was expecting an improvement there since SMB2 uses larger blocks. I suspect it would only help in a scenario where you are bottlenecked by the network, not by the CPU.
So because of this, I'm facing dilemma: is the performance drop worth the improved security and interoperability? If it were me, I'd say yes, at least for the router model with a faster CPU where the performance hit might not be as visible. Unfortunately, there are a lot of users out there who seem to only evaluate everything by raw numbers. For example, some people will rant at how wireless performance can drop by 5% after an update, without considering the fact that this drop might be the price to pay for a more STABLE, and sustained connection. That means I'd have to continuously have to defend the decision when people start complaining about the performance loss.
I'm sure this will come up, but yes, I already tested all the various optimizations suggested on the web (I must have spent an entire night doing just tests with different settings). The current settings were already optimal for the router's environment. The only thing that did help a bit was compiling Samba with the highest level of compiler optimization - the size tradeoff seemed pretty marginal, especially for the RT-AC87's 64 MB FW partition.
Right now, the code on Github can easily be compiled with the old or the modern version of Samba (it's a build time switch in the device profile).
I'd like to see what everyone thinks here about this, before devoting more time to testing it and adjusting/fixing new issues (for instance there might currently be a charset encoding issue with this new build).
For reference, the ARM version of Samba used by Asus is 3.0.25b. They probably backported a good bit of stuff over the years, but I doubt it's anywhere near the 3.6 branch.