Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Yet Another Benchmark Script (YABS) - Linux Benchmarking Script using dd, iperf, & Geekbench - Page 3
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Yet Another Benchmark Script (YABS) - Linux Benchmarking Script using dd, iperf, & Geekbench

1356

Comments

  • ^ Stupid me: I thought the internet was global. :-|

    Thanked by 1receivedthanks
  • AlwaysSkint said: ^ Stupid me: I thought the internet was global. :-|

    It is but piring is mater

    Thanked by 1receivedthanks
  • @MasonR

    Have just tried your script on Devuan Ascii i386, and there are errors such as:

    • line 72: ./2019-10-10T08_28_14+00_00/disk/ioping : impossible to execute the binary file: Format error for exec()
    • ./2019-10-10T08_28_14+00_00/iperf/iperf3: 1: ./2019-10-10T08_28_14+00_00/iperf/iperf3: : not found
    • ./2019-10-10T08_28_14+00_00/iperf/iperf3: 1: ./2019-10-10T08_28_14+00_00/iperf/iperf3: Syntax error: word unexpected (expecting ")")

    The errors repeat and I need to stop the script manually.

    Yes, of course, iperf3 is installed ( /usr/bin/iperf3 ), also the iperf3 dev package (but is this latter one also needed?).

    I've also tried to run as root, but the same errors occur.

    (Is the script only for amd64?)

    This is simply a quick reaction -- I haven't looked into the matter further.

  • Why the double up on regions?

    Thanked by 1receivedthanks
  • NeoonNeoon Community Contributor, Veteran

    How many of your servers did you YABS'ed today?

    Thanked by 1receivedthanks
  • MasonRMasonR Community Contributor

    @SpeedTest said:
    I think speedtest.net is a better value for real visitors than iperf

    I disagree. Speedtest is a single threaded connection (which almost never is capable of breaching > 1gbps). While on the otherhand, with iperf, you'll have many parallel connections providing a better representation of how your server will handle many high-bandwidth connections simultaneously.

    Speedtest has the advantage of being simpler, but that's about it. If you're just trying to see how fast a single connection to some point in the world might be, then sure it's fine. But if you're trying to benchmark your servers total throughput, then iperf has it beat by a mile.

    @angstrom said:
    @MasonR

    Have just tried your script on Devuan Ascii i386, and there are errors such as:

    The iperf and ioping binaries are 64-bit only. I can probably compile a 32-bit version of ioping, but I'm not sure if a 32-bit static binary for iperf exists. I'll take a look around, though. I suppose I could also put in a check to see if iperf is installed first before downloading the portable binary.

    Thanked by 1receivedthanks
  • MasonRMasonR Community Contributor

    @corbpie said:
    Why the double up on regions?

    Needs some refinement. Again, this is just the beta test for this script. I'll probably change the iperf locations over time if I can find suitable alternatives in other locations of the world. Issue is that there aren't many public iperf servers at all, so all the available public ones have already been added to the script. Luckily I received an offer to sponsor a few iperf locations, so I may host some sponsored locations myself for this.

    @Neoon said:
    How many of your servers did you YABS'ed today?

    IT'S OVER 9000!!!¡!!!¡!!!11!¡¡

    Thanked by 1receivedthanks
  • @MasonR said: @angstrom said:
    @MasonR

    Have just tried your script on Devuan Ascii i386, and there are errors such as:

    The iperf and ioping binaries are 64-bit only. I can probably compile a 32-bit version of ioping, but I'm not sure if a 32-bit static binary for iperf exists. I'll take a look around, though. I suppose I could also put in a check to see if iperf is installed first before downloading the portable binary.

    Ah, so both ioping and iperf3 are downloaded from somewhere?

    Perhaps it's a simple-minded question, but why not use local binaries instead? Why not make the script dependent on these binaries being locally available? (One doesn't need to be paranoid to prefer the use of local binaries.)

    Anyway, the documentation should say that it's amd64 only (but perhaps I missed this).

  • MasonRMasonR Community Contributor
    edited October 2019

    @angstrom said:

    @MasonR said: @angstrom said:
    @MasonR

    Have just tried your script on Devuan Ascii i386, and there are errors such as:

    The iperf and ioping binaries are 64-bit only. I can probably compile a 32-bit version of ioping, but I'm not sure if a 32-bit static binary for iperf exists. I'll take a look around, though. I suppose I could also put in a check to see if iperf is installed first before downloading the portable binary.

    Ah, so both ioping and iperf3 are downloaded from somewhere?

    Perhaps it's a simple-minded question, but why not use local binaries instead? Why not make the script dependent on these binaries being locally available? (One doesn't need to be paranoid to prefer the use of local binaries.)

    Anyway, the documentation should say that it's amd64 only (but perhaps I missed this).

    I probably could be a bit more transparent, but the code is all there (even though it's a somewhat jumbled mess in its current state). But yes, ioping is downloaded from my repo (it's a pre-compiled static binary from a 64-bit machine, but I could probably make a 32-bit version as well and detect which one to snag). And iperf3 is downloaded from the iperf.fr site.

    I decided against local binaries, because I wanted the script to not require any external dependecies to be installed prior to running the script. While not a high barrier of entry, it's obvious that much of bench.sh/nench.sh's success is that you can simply run the one-liner and not have to worry about anything being installed prior. Once you start adding in pre-reqs, more than half of the potential users of the script have already been turned off. If local binaries are preferred for security reasons or similar, I could potentially add a flag that won't grab any external binaries and only use what's local (if available). I'll have to think about that more.

    And yes, the documentation needs updated for sure. You guys are my guinea pigs after all, so all feedback in this thread is going to help polish the script and docs as it evolves.

  • angstromangstrom Moderator
    edited October 2019

    @MasonR said:

    @angstrom said:

    @MasonR said: @angstrom said:
    @MasonR

    Have just tried your script on Devuan Ascii i386, and there are errors such as:

    The iperf and ioping binaries are 64-bit only. I can probably compile a 32-bit version of ioping, but I'm not sure if a 32-bit static binary for iperf exists. I'll take a look around, though. I suppose I could also put in a check to see if iperf is installed first before downloading the portable binary.

    Ah, so both ioping and iperf3 are downloaded from somewhere?

    Perhaps it's a simple-minded question, but why not use local binaries instead? Why not make the script dependent on these binaries being locally available? (One doesn't need to be paranoid to prefer the use of local binaries.)

    Anyway, the documentation should say that it's amd64 only (but perhaps I missed this).

    I probably could be a bit more transparent, but the code is all there (even though it's a somewhat jumbled mess in its current state). But yes, ioping is downloaded from my repo (it's a pre-compiled static binary from a 64-bit machine, but I could probably make a 32-bit version as well and detect which one to snag). And iperf3 is downloaded from the iperf.fr site.

    I decided against local binaries, because I wanted the script to not require any external dependecies to be installed prior to running the script. While not a high barrier of entry, it's obvious that much of bench.sh/nench.sh's success is that you can simply run the one-liner and not have to worry about anything being installed prior. Once you start adding in pre-reqs, more than have of the potential users of the script have already been turned off. If local binaries are preferred for security reasons or similar, I could potentially add a flag that won't grab any external binaries and only use what's local (if available). I'll have to think about that more.

    And yes, the documentation needs updated for sure. You guys are my guinea pigs after all, so all feedback in this thread is going to help polish the script and docs as it evolves.

    Okay, please take this for what it's worth: I really think that you need to say very clearly on the GitHub page that your script downloads two binaries.

    Compare the GitHub page for nench ( https://github.com/n-st/nench ):

    What's more, nench.sh downloads a statically built binary to run the IO latency tests. I assure you it is and always will be a clean unmodified build of ioping, but how do you know you can trust me?

    So, basically: use nench.sh at your own risk, [...]

  • MasonRMasonR Community Contributor

    @angstrom said:

    @MasonR said:

    @angstrom said:

    @MasonR said: @angstrom said:
    @MasonR

    Have just tried your script on Devuan Ascii i386, and there are errors such as:

    The iperf and ioping binaries are 64-bit only. I can probably compile a 32-bit version of ioping, but I'm not sure if a 32-bit static binary for iperf exists. I'll take a look around, though. I suppose I could also put in a check to see if iperf is installed first before downloading the portable binary.

    Ah, so both ioping and iperf3 are downloaded from somewhere?

    Perhaps it's a simple-minded question, but why not use local binaries instead? Why not make the script dependent on these binaries being locally available? (One doesn't need to be paranoid to prefer the use of local binaries.)

    Anyway, the documentation should say that it's amd64 only (but perhaps I missed this).

    I probably could be a bit more transparent, but the code is all there (even though it's a somewhat jumbled mess in its current state). But yes, ioping is downloaded from my repo (it's a pre-compiled static binary from a 64-bit machine, but I could probably make a 32-bit version as well and detect which one to snag). And iperf3 is downloaded from the iperf.fr site.

    I decided against local binaries, because I wanted the script to not require any external dependecies to be installed prior to running the script. While not a high barrier of entry, it's obvious that much of bench.sh/nench.sh's success is that you can simply run the one-liner and not have to worry about anything being installed prior. Once you start adding in pre-reqs, more than have of the potential users of the script have already been turned off. If local binaries are preferred for security reasons or similar, I could potentially add a flag that won't grab any external binaries and only use what's local (if available). I'll have to think about that more.

    And yes, the documentation needs updated for sure. You guys are my guinea pigs after all, so all feedback in this thread is going to help polish the script and docs as it evolves.

    Okay, please take this for what it's worth: I really think that you need to say very clearly on the GitHub page that your script downloads two binaries.

    Compare the GitHub page for nench ( https://github.com/n-st/nench ):

    What's more, nench.sh downloads a statically built binary to run the IO latency tests. I assure you it is and always will be a clean unmodified build of ioping, but how do you know you can trust me?

    So, basically: use nench.sh at your own risk, [...]

    I agree. Will be added soon in the next round of updates.

  • @MasonR said: I decided against local binaries, because I wanted the script to not require any external dependecies to be installed prior to running the script. While not a high barrier of entry, it's obvious that much of bench.sh/nench.sh's success is that you can simply run the one-liner and not have to worry about anything being installed prior. Once you start adding in pre-reqs, more than half of the potential users of the script have already been turned off. If local binaries are preferred for security reasons or similar, I could potentially add a flag that won't grab any external binaries and only use what's local (if available). I'll have to think about that more.

    So my wish-list would be:

    • Have the possibility of using local binaries
    • Have a 32-bit version

    :smile:

  • MasonRMasonR Community Contributor

    @angstrom said:

    @MasonR said: I decided against local binaries, because I wanted the script to not require any external dependecies to be installed prior to running the script. While not a high barrier of entry, it's obvious that much of bench.sh/nench.sh's success is that you can simply run the one-liner and not have to worry about anything being installed prior. Once you start adding in pre-reqs, more than half of the potential users of the script have already been turned off. If local binaries are preferred for security reasons or similar, I could potentially add a flag that won't grab any external binaries and only use what's local (if available). I'll have to think about that more.

    So my wish-list would be:

    • Have the possibility of using local binaries
    • Have a 32-bit version

    :smile:

    Duly noted! The 32-bit version is likely to come first. The local binaries option will need quite a bit of testing, thus will take longer to make it in. I foresee some potential issues of old versions of iperf/ioping outputting results differently than I'm used to compared the pre-compiled binaries, which will throw off the script when the values are grep'd/awk'd/printf'd.

    Using local binaries would also open the door to being able to run fio tests. I could easily check if fio is available locally and run some fio tests if so to satisfy @Falzo's hunger and thirst. Just a thought.

  • corefluxcoreflux Member
    edited October 2019

    VM: Microsoft Azure, x64, Ubuntu 16 LTS
    image

    Thanked by 1MasonR
  • tgltgl Member

    Could be interesting to make it work on BSD.

    Thanked by 1MasonR
  • SpeedTestSpeedTest Member
    edited October 2019

    @coreflux can you run this

    curl -LsO bench.monster/speedtest.sh; sh speedtest.sh -Global

    We share the same code

  • MasonR said: Using local binaries would also open the door to being able to run fio tests. I could easily check if fio is available locally and run some fio tests if so to satisfy @Falzo's hunger and thirst. Just a thought.

    I think libaio is the fio hurdle, but not 100% sure... afaik fio could be run without using libaio and therefore a precompiled binary still might work. not 100% sure though.

    Thanked by 1MasonR
  • corefluxcoreflux Member
    edited October 2019

    @SpeedTest said:
    @coreflux can you run this

    curl -LsO bench.monster/speedtest.sh; sh speedtest.sh -Global

    We share the same code

    Silly me, it's seems I shouldn't bench Azure B1LS, it might be burstable but throttled ~10% even on single burstable vCore. Won't take a minute before got throttled immediately.

    It takes more than 5minutes just to install bzip2 and yet installed till now,... #lol
    And sometimes VM got freezed so I reboot it from VM dashboard.

  • upcloud San Jose on Ubuntu 18.04

    https://pastebin.com/C4NMKwyR

    great CPU :smiley:

    Thanked by 1MasonR
  • @MasonR, is Geekbench URL missing because of the unusual CPU name?

    curl -s https://raw.githubusercontent.com/masonr/yet-another-bench-script/master/yabs.sh | bash
    # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
    #              Yet-Another-Bench-Script              #
    #                     v2019-10-08                    #
    # https://github.com/masonr/yet-another-bench-script #
    # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
    
    Tue Dec  3 22:06:21 UTC 2019
    
    Basic System Information:
    ---------------------------------
    Processor  : Common KVM processor
    CPU cores  : 1 @ 2094.950 MHz
    AES-NI     : ❌ Disabled
    VM-x/AMD-V : ❌ Disabled
    RAM        : 482Mi
    Swap       : 0B
    Disk       : 1008G
    
    Disk Speed Tests:
    ---------------------------------
           | Test 1      | Test 2      | Test 3      | Avg        
           |             |             |             |            
    Write  | 235.00 MB/s | 217.00 MB/s | 226.00 MB/s | 226.00 MB/s
    Read   | 856.94 MB/s | 839.63 MB/s | 835.32 MB/s | 843.96 MB/s
    
    iperf3 Network Speed Tests (IPv4):
    ---------------------------------
    Provider                  | Location (Link)           | Send Speed      | Recv Speed     
                              |                           |                 |                
    Bouygues Telecom          | Paris, FR (10G)           | 747 Mbits/sec   | 687 Mbits/sec  
    Online.net                | Paris, FR (10G)           | 725 Mbits/sec   | 745 Mbits/sec  
    Severius                  | The Netherlands (10G)     | busy            | 291 Mbits/sec  
    Worldstream               | The Netherlands (10G)     | 753 Mbits/sec   | 308 Mbits/sec  
    wilhelm.tel               | Hamburg, DE (10G)         | 804 Mbits/sec   | 505 Mbits/sec  
    Biznet                    | Bogor, Indonesia (1G)     | 0.00 bits/sec   | 0.00 bits/sec  
    Hostkey                   | Moscow, RU (1G)           | 677 Mbits/sec   | 518 Mbits/sec  
    Velocity Online           | Tallahassee, FL, US (10G) | 17.6 Mbits/sec  | 157 Mbits/sec  
    Airstream Communications  | Eau Claire, WI, US (10G)  | 333 Mbits/sec   | 278 Mbits/sec  
    Hurricane Electric        | Fremont, CA, US (10G)     | 261 Mbits/sec   | busy           
    Performing Geekbench 4 benchmark test. This may take a couple minutes to complete...
    curl: no URL specified!
    
    Geekbench 4 Benchmark Test:
    ---------------------------------
    Test            | Value                         
                    |                               
    Single Core     |                               
    Multi Core      |                               
    Full Test       |       
    
    
  • Also, a real-world CPU benchmark of sorts could prove useful (other than the synthetic ol' Geekbench). E.g. "openssl -evp aes-256-gcm" ([-bytes 16], or parsing results for the smallest block size) makes for a rough, not too biased estimate of what speeds to expect when AES-encrypting stuff (ssh, vpns, luks...)

    Thanked by 1MasonR
  • MasonRMasonR Community Contributor

    @Degelta said:
    @MasonR, is Geekbench URL missing because of the unusual CPU name?

    No, it's likely because geekbench hit an error or didn't complete fully for some reason, thus didn't produce a url to grab the results. I realize now that there's no error handling for when these cases occur, so I've put on my to-do list to put that in. If you can run a Geekbench 4 test manually and let me know what happens, that would help me debug a bit.

  • Virmach 10G buffalo

    # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
    #              Yet-Another-Bench-Script              #
    #                     v2019-10-08                    #
    # https://github.com/masonr/yet-another-bench-script #
    # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
    
    Wed Dec  4 20:39:32 GMT 2019
    
    Basic System Information:
    ---------------------------------
    Processor  : QEMU Virtual CPU version (cpu64-rhel6)
    CPU cores  : 8 @ 2199.998 MHz
    AES-NI     : ❌ Disabled
    VM-x/AMD-V : ❌ Disabled
    RAM        : 7.8G
    Swap       : 255M
    Disk       : 79G
    
    Disk Speed Tests:
    ---------------------------------
           | Test 1      | Test 2      | Test 3      | Avg
           |             |             |             |
    Write  | 113.00 MB/s | 106.00 MB/s | 111.00 MB/s | 110.00 MB/s
    Read   | 855.17 MB/s | 830.92 MB/s | 864.83 MB/s | 850.31 MB/s
    
    iperf3 Network Speed Tests (IPv4):
    ---------------------------------
    Provider                  | Location (Link)           | Send Speed      | Recv Speed
                              |                           |                 |       
    Bouygues Telecom          | Paris, FR (10G)           | 818 Mbits/sec   | 1.45 Gbits/sec
    Online.net                | Paris, FR (10G)           | 989 Mbits/sec   | 821 Mbits/sec
    Severius                  | The Netherlands (10G)     | busy            | 706 Mbits/sec
    Worldstream               | The Netherlands (10G)     | busy            | 960 Mbits/sec
    wilhelm.tel               | Hamburg, DE (10G)         | 704 Mbits/sec   | 1.40 Gbits/sec
    Performing IPv4 iperf3 test to Biznet...
    Biznet                    | Bogor, Indonesia (1G)     | 0.00 bits/sec   | 0.00 bits/sec
    Hostkey                   | Moscow, RU (1G)           | 370 Mbits/sec   | 884 Mbits/sec
    Velocity Online           | Tallahassee, FL, US (10G) | 1.03 Gbits/sec  | 2.49 Gbits/sec
    Airstream Communications  | Eau Claire, WI, US (10G)  | 1.66 Gbits/sec  | 1.20 Gbits/sec
    Hurricane Electric        | Fremont, CA, US (10G)     | busy            | busy
    
    Geekbench 4 Benchmark Test:
    ---------------------------------
    Test            | Value
                    |
    Single Core     | 1943
    Multi Core      | 8774
    Full Test       | https://browser.geekbench.com/v4/cpu/14999229
    

    above there is a 4 core vps test that has same bench scores like mine
    is it because of aes-ni or cpu passthroug thing?

    Thanked by 1MasonR
  • Please add (check https://bench.monster/speedtest.html)

     RAM Speed:
       Avg. write : 1706.7 MB/s
       Avg. read  : 2901.3 MB/s
    
    Thanked by 1MasonR
  • MasonRMasonR Community Contributor

    @tridinebandim said:
    above there is a 4 core vps test that has same bench scores like mine
    is it because of aes-ni or cpu passthroug thing?

    Plenty of variables that could be at play. The biggest one being that the geekbench score you're comparing to has E3 cores (high clock speed) while your VM likely has E5 cores (low/mid clock speed). You'll likely always have E3's outperforming E5's core-for-core unless overselling becomes an issue.

    @greattomeetyou said:
    Please add
    RAM Speed

    Thanks, I'll consider it. However, I can't say I've ever seen anyone caring about, worried about, or even remotely interested in RAM speed.

    Thanked by 1tridinebandim
  • RAM speed is almost never a bottleneck so I consider it unnecessary information in a bench.

    Thanked by 1MasonR
  • DegeltaDegelta Member
    edited December 2019

    MasonR said: No, it's likely because geekbench hit an error or didn't complete fully for some reason, thus didn't produce a url to grab the results. I realize now that there's no error handling for when these cases occur, so I've put on my to-do list to put that in. If you can run a Geekbench 4 test manually and let me know what happens, that would help me debug a bit.

    Yes, it seems Geekbench is getting killed (because my VPS has only 512 MB RAM).

    ./geekbench_x86_64
    
    ..
    ..
    ..
      Running Memory Latency
      Running Memory Bandwidth
    Killed
    
    Thanked by 1MasonR
  • poisson said: RAM speed is almost never a bottleneck so I consider it unnecessary information in a bench.

    In a year or 2, SSD cache (optane or Xpoint) may be marketed as RAM...

    Thanked by 1uptime
  • @Degelta said:
    Yes, it seems Geekbench is getting killed (because my VPS has only 512 MB RAM).

    > ./geekbench_x86_64
    > 
    > ..
    > ..
    > ..
    >   Running Memory Latency
    >   Running Memory Bandwidth
    > Killed
    > 

    I've run Geekbench successfully on a VPS with 512MB RAM, but my VPS has 1GB swap space:

    https://browser.geekbench.com/v4/cpu/14823496

    I see that your VPS doesn't have swap space.

    Thanked by 1MasonR
  • Hi Mason,

    Could you please add Singapore location?

    Also, Indonesia location (Biznet) seems pretty difficult to get the result. Jakarta is better than Bogor afaik in term of internet infrastructure.

Sign In or Register to comment.