J1900 performance issue

Hello All,
I ordered one brand new intel J1900 box.
I had heard quite a bit on this forum that j1900 can do 1 Gbps WAN to LAN.

However I am dismayed at the performance I am seeing.
Download is never going beyond 100 Mbps. Upload however is most times good.
Anything basic I am missing?
I am using 18.06.0
All 4 processor cores are detected.

Some kind soul please help me out as I am lost what it takes to get 1Gbps throughput.
My experience with PC-Engine APU2 was pretty good.
But j1900 was supposed to be better than that.

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 55
model name : Intel(R) Celeron(R) CPU J1900 @ 1.99GHz
stepping : 9
microcode : 0x90a
cpu MHz : 1392.560
cache size : 1024 KB

J1900 is old by todays standards (6y old hardware) and looking at pfsense (which seems to perform similar to Linux and iptables) it seems that it can barely do 900mbit without handling VPN and such due to hardware limitations. https://forum.netgate.com/topic/133704/poor-performance-on-igb-driver/42

You should be getting better performance than 100mbit but keep in mind that it may also be a limiation of the site you're using. 18.06.0 is also pretty dated and unsupported, your best would would to try a snapshot to at least try to figure out if it's a software issue.

1 Like

100mbps is low and indicates a problem.

as said, use a more recent openwrt build or master and/or try another distro (eg. debian/ubuntu) and see if the problem persists.
if so, post some more detail about your setup and isp.

edit:
i have a j1900 for about 3years and its working well with debian... 600mbps samba from zfs mirror, ~800mbps shaping+codel.
you probaly heard a lot about it because it was one of the first cheap,low-end,full-fledged x86 mini-boards widely available (after apu).

2 Likes

Thanks a lot for being with me.
So I setup netperf to eliminate other variables.

Kindly verify my setup if I am testing WAN to LAN throughput.

I connected WAN port to PC1(netperf server). Gave static IPs to WAN port and the PC.
Connected PC2 to LAN port of the router.

PC1(192.168.30.1) ------ (wan 192.168.30.2)J1900(lan) ------- PC2(LAN DHCP client)

Tested from PC2:

./speedtest-netperf.sh -H 192.168.30.1 -p 1.1.1.1 --sequential
2019-04-14 18:03:35 Starting speedtest for 60 seconds per transfer session.
Measure speed to 192.168.30.1 (IPv4) while pinging 1.1.1.1.
Download and upload sessions are sequential, each with 5 simultaneous streams.
............................................................
Download: 937.81 Mbps
Latency: [in msec, 1 pings, 100.00% packet loss]
CPU Load: [in % busy (avg +/- std dev), 57 samples]
cpu0: 97.0 +/- 0.0
Overhead: [in % used of total CPU available]
netperf: 86.8
............................................................
Upload: 575.23 Mbps
Latency: [in msec, 0 pings, 0.00% packet loss]
CPU Load: [in % busy (avg +/- std dev), 58 samples]
cpu0: 48.6 +/- 1.6
Overhead: [in % used of total CPU available]
netperf: 32.7

seems ok

is suspect the 575mbps upload stems from a difference in PC1 and PC2

1 Like

So it was probably my ISP which shows less value that time.
On the same ISP it's looking ok today.

I also did some more testing using netperf and compared with 1043N.

TP-Link 1043N:
WAN-LAN: 300 Mbps, cpu usage 100%
LAN-LAN: 900 Mbps, cpu usage 10%

J1900:
WAN-LAN: 900 Mbps, cpu usage 70%
LAN-LAN: 900 Mbps, cpu usage 70%

So for J1900 since there is no hardware switch (unlike 1043N), every packet is going through CPU, so even LAN to LAN transfer eats up CPU.

1 Like

you should buy a cheap managed switch, anything from a tp link sg108e for ~$30 on up... they are very useful.

1 Like

Yes. That's fine, a cheap switch can take care of that.

On the speed itself I am yet to test with a real gigabit ISP.
My current ISP itself is ~600M so I am not yet very sure if the router is capable of more.

Until then can I rely on netperf result to match that of speedtest.net result?
speedtest.net is where users check speed, so this result is important.
Are the results from them supposed to be in the same range?

Testing gigabit connections is an interesting issue. Having a gigabit connection between you and your first hop is not the same as being able to get a gigabit between you and any given site you care about.

I have a J1900 based mobo, and have gotten 950+Mbps over my ATT gigabit fiber, with HFSC shaping, over a bonded dual nic situation with a LAG port on my switch... it's doable.

4 Likes

I may come back later to this but as of now I want to avoid multi-box solution.
Also I noticed enabling sqm is worsening the througput.
Once I put sqm limit as 900 Mbps, netperf reported only 600.
(after disabling sqm, netperf reports 900M)

So any other suggestions for a simimlar form-factor box in $150-$180 range which can do Gbps?

Gbps with SQM requires x86, so nothing really in your price range other than j1900 and similar, Celeron N3060 or the like maybe.

I am able to SQM a full gigabit, but it may be because of the bonded NICs letting me utilize more cores.

try installing irqbalance it may help distribute load.

also a good managed switch with QoS could help if you dscp tag your packets. tplink and zyxel both have affordable options.

used office-pc + openwrt on usb-stick + ductape ap ontop = "single box" :slight_smile:

1 Like

As we mentioned earlier, try something else than OpenWrt to see if you get the same performance.

1 Like

I've got to agree with diizy on that the choice of OS (kernel/drivers, in particular) can make a big difference in performance. I think that OpenWrt is a great OS for wireless routers. My choices for services and infrastructure are different, based on the needs of the use cases involved.

I've run both the J1900 and 1037U in iTX form-factor boards. They run/ran on ZFS mirrors as they were critical infrastructure for me. (My APUs run on ZFS mirrors as well.) I preferred the 1037U for primarily single-threaded applications (two-core). The J1900 was faster for builds, likely because it was a four-code device. These boards handled 500-1000 mbps throughput in their applications. Looking at the Passmark single-thread measure (or other single-thread benchmarks) is important.

For a quick comparison, here are some single-thread Passmark numbers I have on an older spreadsheet:

  • GX-412HC -- 473 (1.2 GHz similar to APU 1.0 GHz GX-412TC, quad-core, 6 W TDP)
  • J1900 -- 536 (quad-core, 10 W TDP)
  • 1037U -- 954 (dual-core, 17 W TDP)
  • E3-1265Lv2 -- 1767 (Xeon, eight-core, 45 W TDP, used, in a used Lanner chassis)
  • i3-7100T -- 1929 (eight-core, 35W TDP CPU, old build box of mine)

These are not recommendations of themselves, but CPUs I have to give you a quick idea of what single-core performance looks like. The choice between single-core and total performance is one you'll need to make, based on your own needs. I do not ever run "generic" services on my router/firewalls.

I'd be careful with the Atom C2000 series because of its fatal flaw and that it is often soldered down, taking out the whole unit. Since I don't have any, I haven't kept up with it over the past couple years.

My notes from a couple years ago noted the J4017 and J5005 as some options for pre-populated iTX mobos that had single-core Passmark scores over 1000. I did not pursue them as I was able to get the Lanner and Xeon for my high-bandwidth applications, and have moved my servers to the APUs for power consumption reasons, and will be moving my file server to the i3-7100T.

Well, a Zotac CI327 has a N3450, which has the AES-NI support I believe the J1900 doesn't have if VPN or such becomes important. It can be had barebone for that price. Just looked up Passmark, 1847, and single thread is 730, so a good power bump up from the J1900.

It has Realtek eth chips, rather than the more desirable Intel, but as dlakelan has commented on other threads, LAG'ing the two ports together lowers the BW load and they behave better. Also, some reading I've done suggests they're "better" ones than earlier versions, behavior under load wise, and perhaps a lot of the reported problems w Realtek chips might be more under pfsense than Linux or OpenWrt systems and drivers. FWIW.

I got one on dlakelan's recommendation, been very happy with it. Though I'm not sure if it's his current top recommend. We were all waiting on the CI329, even more power at nearly the same price, but it klnd of vaporwared out on us.

2 Likes

I have memories of rumors of the supply of certain Intel processors being a problem (unconfirmed). I'm sure I'm not the only one that is waiting for a supply of https://www.hardkernel.com/shop/odroid-h2/ at $111 or so. Intel J4105, 10 W TDP, AES-NI, dual Ethernet, 2x SATA 3.0, ... I'm not holding my breath.

https://www.sapphiretech.com/en/commercial/amd-ipc-fp5r ? :slight_smile:

1 Like

Can you do dual wan failover with this box?
I find multi-wan a basic feature and hence have been avoiding anything less than 3 Gigabit ports.
Unless there is a way which I am missing.

Well, considering you can't get your hands on that board, hard to comment conclusively!

With a decent TCP/IP stack and drivers, you don't need more phy capacity than you have bandwidth as VLANs can be used to manage multiple subnets through a single interface. Something like multi-wan used in a fail-over situation should be completely fine with a single "upstream" phy to close to the GigE limit. You're only using one of the two links at a time for any significant bandwidth. Even sharing them, for example with two, 300 mbps links, a single GigE phy should be sufficient as long as the total bandwidth is less that the GigE limit.

SSH in to the J1900 and run the following command:

cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

If it's output is not 'performance' then in your rc.local I'd recommend using the following:

echo performance >> /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo performance >> /sys/devices/system/cpu/cpufreq/policy1/scaling_governor
echo performance >> /sys/devices/system/cpu/cpufreq/policy2/scaling_governor
echo performance >> /sys/devices/system/cpu/cpufreq/policy3/scaling_governor

1 Like