Menu

Home Server and Multithreading, test on an Odroid-N2

DonC
2020-11-26
2020-11-26
  • DonC

    DonC - 2020-11-26

    Home Server and Multithreading, test on an Odroid-N2

    I have been running a headless server on an Odroid-N2 board with Ubuntu 20.04 at home since June. I initially set the max. users to 10 and testing showed I had the 1 core Jamulus was using running at about 85% capacity at 1.8Ghz with 10 clients. As I was not expecting ever having more than 10 users, I was happy.

    With the recent addition of multithreading to the server code I turned multithreading on -T and pushed the max. users up to 15 just to see if it worked. Well, it does, but I never really tested it. I recently saw that a choir with 14 users was using the server and I listened in, on the one user left over, and heard that the quality was good. So I decided to do a test when I had some time. This morning I had some time.

    Test conditions:
    I ran 15 clients on my laptop, each client with 64 sample buffering and small buffers activated, high quality and stereo. This gives the maximum network traffic. I checked the network traffic seen by the server and it was as I expected. All the traffic remained on my home network. At idle all the processor cores run at 1Ghz and the chip temperature is about 32°C.

    Test results:
    The AmLogic chip has 6 cores, 2 Arm A53s and 4 Arm A73s. The multithreading apparently uses only the 4 A73 cores and spreads the load pretty evenly across them. The A53 cores remained at 1Ghz throughout the test. As I added clients I could see that the frequency scaling let the core use go up to about 40% before increasing the frequency by a step. At 15 clients the core use is about 30% at 1.53Ghz.

    Letting the server run 15 minutes with 15 clients the chip temperature went up to 38.5°C. The heat sink is barely warm to the touch. The good thermal management of the Odroid-N2 is the main reason I bought it. It has a large external heat sink and will run at full speed without a fan. No fan was a prerequisite for use in the house.

    Conclusion:
    Even on minimal hardware, a 63US$ Odroid-N2 Arm based single board computer, Jamulus server runs very well. The new multithreading feature of Jamulus server allows increasing the number of clients for even larger groups. It would be interesting to know Qt's overhead for multithreading. From what I see in testing I think that my server with 4 cores used for multithreading will probably safely allow about 3 times the number of single core users giving about 30 users! I can't imagine ever needing more users than that. My problem will be testing that many users as my laptop is getting pretty hot already with only 15 users.

    If you have a good Internet connection such as Fiber-to-the-House running a home server can be just as good as a major cloud sharer. My local (<50km) friends say they have more or less the same ping to my server as to the nearest cloud sharers with servers in Zürich or Lausanne where I set up test accounts just to try them out.

     
    • Andrew S

      Andrew S - 2020-11-26

      How much memory did you have installed?

       
      • DonC

        DonC - 2020-11-26

        2G RAM and an 8G SD card for storage.
        The 8G is a bit on the short side, I will not be doing recording.

         

        Last edit: DonC 2020-11-26