• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

Poor performance on igb driver

Scheduled Pinned Locked Moved Hardware
45 Posts 11 Posters 20.5k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B
    bdaniel7
    last edited by Aug 11, 2018, 7:21 PM

    Hello,

    I'm running pfSense 2.4.3-p1, on a Qotom board with the following specs:

    Intel(R) Celeron(R) CPU J1900 @ 1.99GHz
    4 CPUs: 1 package(s) x 4 core(s)
    8 GB RAM
    120 GB SATA SSD
    4 x Intel I211AT network ports.

    The network ports are served by the igb driver.
    I have a 1Gbps (best effort) fibre optics from my provider, but the router WAN is performing quite poorly.
    When connected directly to the mediaconverter, I'm getting 750 Mbps, which is fair considering the terms provided by the ISP (850 Mbps average, 940 Mbps maximum).

    When connected to the LAN port of pfSense, I'm getting only 500 Mbps, give or take 50 Mbps, with CPU going to 30% during tests.
    Both the WAN and LAN are using SFTP, Cat 6a cables.
    Now, are there any settings that I can use to improve the speed?

    FreeBSD always boasted on high speed with Intel cards, so.. what gives?

    Thanks.

    1 Reply Last reply Reply Quote 0
    • S
      stephenw10 Netgate Administrator
      last edited by Aug 12, 2018, 1:56 PM

      How are you testing the throughput?

      Check the CPU loading across the cores by running at the CLI top -aSH during the test.

      Check the Status > Interfaces page for any errors on the either interface.

      Steve

      1 Reply Last reply Reply Quote 0
      • M
        MarcoP
        last edited by Aug 12, 2018, 8:43 PM

        The quad core CPU might have one core at 100% and that is what's being used on your test, if you run parallel connections your total throughput might be higher.

        1 Reply Last reply Reply Quote 0
        • B
          bdaniel7
          last edited by Aug 14, 2018, 2:19 PM

          I'm testing using a Speedtest client running on Windows 10 Pro, that connects to a server in the ISP network.

          There are no In/Out Errors, nor Collisions, recorded in the Interfaces page.

          I tried running the client from 2 different computers, at the same time.
          Both clients got about half of the total speed, 340 and 317 Mbps.

          Re: CPU loading across the cores, I saw that not all cores were used. Maybe only 2 were used, with 20% and 80% load, while the others were on zero.

          1 Reply Last reply Reply Quote 0
          • M
            MarcoP
            last edited by Aug 14, 2018, 2:38 PM

            @bdaniel7 said in Poor performance on igb driver:

            Intel(R) Celeron(R) CPU J1900 @ 1.99GHz

            If the test was done via HTTPS it seems that this is the most your non AES-NI capable CPU can do, try using HTTP to confirm this please, otherwise I would have no other ideas.

            Cheers.

            B 1 Reply Last reply Aug 14, 2018, 2:45 PM Reply Quote 0
            • B
              bdaniel7 @MarcoP
              last edited by Aug 14, 2018, 2:45 PM

              @marcop
              I ran the test using an exe, not from browser, so I don't know if it was on HTTPS.

              1 Reply Last reply Reply Quote 0
              • A
                Animosity022
                last edited by Aug 14, 2018, 2:52 PM

                Are you running any traffic shaping or anything else?

                1 Reply Last reply Reply Quote 0
                • B
                  Birke
                  last edited by Aug 14, 2018, 3:35 PM

                  have you tried any of the tipps mentioned here: https://www.netgate.com/docs/pfsense/hardware/tuning-and-troubleshooting-network-cards.html?

                  1 Reply Last reply Reply Quote 0
                  • S
                    stephenw10 Netgate Administrator
                    last edited by Aug 14, 2018, 5:02 PM

                    I would expect a J1900 to pass that fairly easily in normal test conditions.

                    Can we see the output from top when the test is running?

                    Steve

                    1 Reply Last reply Reply Quote 0
                    • B
                      bdaniel7
                      last edited by Aug 23, 2018, 5:47 PM

                      @Birke

                      I have set most of the settings from that tunning page.
                      The only thing I didn't set was hw.igb.num_queues=1, I have it set to 0.

                      I tried with Hardware Checksum Offloading, Hardware TCP Segmentation Offloading, Hardware Large Receive Offloading disabled and enabled, I didn't notice any difference.

                      @Animosity022
                      No traffic shaping.

                      I have the following services enabled:

                      dhcpd
                      dpinger
                      ntpd
                      openvpn OpenVPN server: Home LAN
                      openvpn_2 OpenVPN client:
                      sshd
                      syslogd
                      unbound

                      @stephenw10

                      How do I record/export the live output from top?
                      Should I record a video?

                      1 Reply Last reply Reply Quote 0
                      • S
                        stephenw10 Netgate Administrator
                        last edited by stephenw10 Aug 24, 2018, 10:37 PM Aug 24, 2018, 9:43 PM

                        You shouldn't need to set the igb queues to 1 any longer. That was a bug in much older versions.

                        Just hit q in top when it's showing something useful and it will quit out and leave whatever was there available to copy and paste out.

                        Are you routing traffic over OpenVPN?

                        Steve

                        1 Reply Last reply Reply Quote 0
                        • T
                          tman222
                          last edited by Aug 24, 2018, 10:32 PM

                          Hi @bdaniel7

                          I also agree that the CPU should be able to handle 1Gbit speeds fairly easily, especially if you are not trying run any IDS/IPS on top regular kernel packet processing.

                          FreeBSD's network defaults aren't tuned too well for very high speed connections by default (although this is getting better in newer versions). Here is a link to a thread with some more parameters you can tune on your Intel NIC's:

                          https://forum.netgate.com/topic/117072/dsl-reports-speed-test-causing-crash-on-upload

                          Of those parameters, I"d probably adjust the RX/TX descriptors and processing limits first and see if that yields any improvements.

                          Hope this helps.

                          T 1 Reply Last reply Aug 26, 2018, 8:30 PM Reply Quote 0
                          • B
                            bdaniel7
                            last edited by Aug 25, 2018, 10:59 AM

                            I'm only using OpenVPN to access the internal network from outside.
                            Which is happening when I'm at the office.

                            0_1535194760006_top.jpg

                            1 Reply Last reply Reply Quote 0
                            • S
                              stephenw10 Netgate Administrator
                              last edited by Aug 26, 2018, 3:51 PM

                              How are you testing when that is shown? What is connected to igb0 and igb1?

                              Is the CPU actually running at 1.9GHz? Do you have powerd enabled?

                              Try running sysctl dev.cpu.0.freq when the test is running.

                              Steve

                              1 Reply Last reply Reply Quote 0
                              • B
                                bdaniel7
                                last edited by Aug 26, 2018, 7:51 PM

                                igb0 is WAN, igb1 is LAN.

                                I'm starting top -aSH as you suggested, then during the peak transfer, I exit from top with q.

                                I had powerD enabled, with all (AC power, Battery power, Unknown power) set to Maximum.
                                I disabled powerD but there is no difference.

                                And I get this sysctl: unknown oid 'dev.cpu.0.freq'

                                1 Reply Last reply Reply Quote 0
                                • T
                                  tman222 @tman222
                                  last edited by Aug 26, 2018, 8:30 PM

                                  @tman222 said in Poor performance on igb driver:

                                  Hi @bdaniel7

                                  I also agree that the CPU should be able to handle 1Gbit speeds fairly easily, especially if you are not trying run any IDS/IPS on top regular kernel packet processing.

                                  FreeBSD's network defaults aren't tuned too well for very high speed connections by default (although this is getting better in newer versions). Here is a link to a thread with some more parameters you can tune on your Intel NIC's:

                                  https://forum.netgate.com/topic/117072/dsl-reports-speed-test-causing-crash-on-upload

                                  Of those parameters, I"d probably adjust the RX/TX descriptors and processing limits first and see if that yields any improvements.

                                  Hope this helps.

                                  Hi @bdaniel7 - have you also tried tuning some of the additional parameters that I suggested? If yes, what were the results?

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    stephenw10 Netgate Administrator
                                    last edited by Aug 27, 2018, 11:38 AM

                                    Sorry I meant where are you testing between? Speedtest client on igb1 connecting to a server via igb0?

                                    Steve

                                    B 1 Reply Last reply Aug 27, 2018, 12:06 PM Reply Quote 0
                                    • B
                                      bdaniel7 @stephenw10
                                      last edited by Aug 27, 2018, 12:06 PM

                                      @stephenw10
                                      Yes, the mediaconverter is connected to igb0, my Windows 10 client is connected to the igb1 port.

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        stephenw10 Netgate Administrator
                                        last edited by Aug 27, 2018, 12:45 PM

                                        I don't see it having been asked so, are you connecting using PPPoE?

                                        Steve

                                        B 1 Reply Last reply Aug 27, 2018, 1:25 PM Reply Quote 0
                                        • B
                                          bdaniel7 @stephenw10
                                          last edited by Aug 27, 2018, 1:25 PM

                                          @stephenw10
                                          Yes, I'm using PPPoE.

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                                            [[user:consent.lead]]
                                            [[user:consent.not_received]]