Howdy, Stranger!

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


Benchy.pw | Simple server benchmarking script based on YABS - Page 5
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.

Benchy.pw | Simple server benchmarking script based on YABS

1235

Comments

  • LisoLiso Member
    edited May 2022

    @cpsd said:
    lsblk

    NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    loop0         7:0    0 111,6M  1 loop  /snap/core/12941
    loop1         7:1    0  43,9M  1 loop  /snap/certbot/1952
    loop2         7:2    0  43,9M  1 loop  /snap/certbot/1888
    loop3         7:3    0  61,9M  1 loop  /snap/core20/1405
    loop4         7:4    0  61,9M  1 loop  /snap/core20/1434
    loop5         7:5    0 110,6M  1 loop  /snap/core/12834
    nvme0n1     259:0    0   3,5T  0 disk
    ├─nvme0n1p1 259:2    0     4G  0 part
    │ └─md0       9:0    0     4G  0 raid1 [SWAP]
    ├─nvme0n1p2 259:3    0   512M  0 part
    │ └─md1       9:1    0   511M  0 raid1 /boot
    ├─nvme0n1p3 259:4    0   3,5T  0 part
    │ └─md2       9:2    0   3,5T  0 raid1 /
    └─nvme0n1p4 259:5    0     1M  0 part
    nvme1n1     259:1    0   3,5T  0 disk
    ├─nvme1n1p1 259:6    0     4G  0 part
    │ └─md0       9:0    0     4G  0 raid1 [SWAP]
    ├─nvme1n1p2 259:7    0   512M  0 part
    │ └─md1       9:1    0   511M  0 raid1 /boot
    ├─nvme1n1p3 259:8    0   3,5T  0 part
    │ └─md2       9:2    0   3,5T  0 raid1 /
    └─nvme1n1p4 259:9    0     1M  0 part
    root@... ~ #
    

    df -h

    Filesystem      Size  Used Avail Use% Mounted on
    udev             63G     0   63G   0% /dev
    tmpfs            13G  1,3M   13G   1% /run
    /dev/md2        3,5T  105G  3,2T   4% /
    tmpfs            63G     0   63G   0% /dev/shm
    tmpfs           5,0M     0  5,0M   0% /run/lock
    tmpfs            63G     0   63G   0% /sys/fs/cgroup
    /dev/loop0      112M  112M     0 100% /snap/core/12941
    /dev/loop1       44M   44M     0 100% /snap/certbot/1952
    /dev/md1        485M  145M  315M  32% /boot
    /dev/loop2       44M   44M     0 100% /snap/certbot/1888
    /dev/loop3       62M   62M     0 100% /snap/core20/1405
    /dev/loop4       62M   62M     0 100% /snap/core20/1434
    /dev/loop5      111M  111M     0 100% /snap/core/12834
    tmpfs            13G     0   13G   0% /run/user/1000
    ... ~ #
    

    I just push a fix to new branch, can you test it ? The problem is not formatting, but faulty loop control.

    wget -qO- benchy.pw/dev | sh
    
  • I like your new domain name 🥳😏

  • great ! sadly i am paranoid plus have terrible trust issues

    how would i self-host this actually? that way i can keep an old version ( so i can look thru the code plus that can only be changed/updated by me)

  • LisoLiso Member

    @jugganuts said:
    I like your new domain name 🥳😏

    Thanks, it wouldn't be possible without your support <3

    @DeadlyChemist said:
    great ! sadly i am paranoid plus have terrible trust issues

    how would i self-host this actually? that way i can keep an old version ( so i can look thru the code plus that can only be changed/updated by me)

    Absolutely— you can start by putting benchy in your PATH, in Ubuntu that would be /home/user/bin for local script, and /usr/local/bin for global script (works across user).

    mkdir $HOME/bin
    wget -O $HOME/bin/benchy benchy.pw
    chmod u+x $HOME/bin/benchy
    

    Now you can invoke the script by typing benchy.

    Binaries

    You can also bring your own binaries rather than using precompiled one, simply install them one by one, below is list of binaries used:

    • fio
    • iperf3
    • lsblk
    • bc
    • tput (from ncurses)

    Benchy will automatically detect if you own them, and will revert to your installed binary instead of downloading the precompiled one.

  • @DeadlyChemist said:
    great ! sadly i am paranoid plus have terrible trust issues

    how would i self-host this actually? that way i can keep an old version ( so i can look thru the code plus that can only be changed/updated by me)

    Clone to your local git library then you can modify or pull commits from master branch as needed

  • cpsdcpsd Member

    @Liso said:
    I just push a fix to new branch, can you test it ? The problem is not formatting, but faulty loop control.

    wget -qO- benchy.pw/dev | sh
    

    It says 404

    dani@servidor9:~$ curl -Ls benchy.pw/dev | sh
    sh: 1: 404:: not found
    dani@servidor9:~$ wget -qO- benchy.pw/dev | sh
    dani@servidor9:~$ ^C
    dani@servidor9:~$ wget benchy.pw/dev
    --2022-05-04 05:24:25-- http://benchy.pw/dev
    Resolving benchy.pw (benchy.pw)... 2606:4700:3032::6815:597c, 2606:4700:3034::ac43:9f54, 172.67.159.84, ...
    Connecting to benchy.pw (benchy.pw)|2606:4700:3032::6815:597c|:80... connected.
    HTTP request sent, awaiting response... 301 Moved Permanently
    Location: https://benchy.pw/dev [following]
    --2022-05-04 05:24:25-- https://benchy.pw/dev
    Connecting to benchy.pw (benchy.pw)|2606:4700:3032::6815:597c|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://raw.githubusercontent.com/L1so/benchy/dev/benchy [following]
    --2022-05-04 05:24:25-- https://raw.githubusercontent.com/L1so/benchy/dev/benchy
    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8000::154, 2606:50c0:8003::154, 2606:50c0:8002::154, ...
    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... connected.
    HTTP request sent, awaiting response... 404 Not Found
    2022-05-04 05:24:25 ERROR 404: Not Found.

  • LisoLiso Member
    edited May 2022

    @cpsd said:

    @Liso said:
    I just push a fix to new branch, can you test it ? The problem is not formatting, but faulty loop control.

    wget -qO- benchy.pw/dev | sh
    

    It says 404

    dani@servidor9:~$ curl -Ls benchy.pw/dev | sh
    sh: 1: 404:: not found
    dani@servidor9:~$ wget -qO- benchy.pw/dev | sh
    dani@servidor9:~$ ^C
    dani@servidor9:~$ wget benchy.pw/dev
    --2022-05-04 05:24:25-- http://benchy.pw/dev
    Resolving benchy.pw (benchy.pw)... 2606:4700:3032::6815:597c, 2606:4700:3034::ac43:9f54, 172.67.159.84, ...
    Connecting to benchy.pw (benchy.pw)|2606:4700:3032::6815:597c|:80... connected.
    HTTP request sent, awaiting response... 301 Moved Permanently
    Location: https://benchy.pw/dev [following]
    --2022-05-04 05:24:25-- https://benchy.pw/dev
    Connecting to benchy.pw (benchy.pw)|2606:4700:3032::6815:597c|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://raw.githubusercontent.com/L1so/benchy/dev/benchy [following]
    --2022-05-04 05:24:25-- https://raw.githubusercontent.com/L1so/benchy/dev/benchy
    Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8000::154, 2606:50c0:8003::154, 2606:50c0:8002::154, ...
    Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... connected.
    HTTP request sent, awaiting response... 404 Not Found
    2022-05-04 05:24:25 ERROR 404: Not Found.

    I merged the branch/pr, you can try with benchy.pw domain without dev.

  • cpsdcpsd Member
    edited May 2022

    @Liso said:
    I merged the branch/pr, you can try with benchy.pw domain without dev.

    Thanks. I tried it again but it still shows something weird

    Insufficient storage on /dev/md1
    Disk Performance Check (ext4 on /dev/md2)
    +---------------------------------------------------------------------------+
    | Size | Read        | Write       | Total       |       IOPS (R,W,T)       |
    +===========================================================================+
    | 4k   | 567.03 MB/s | 568.53 MB/s | 1.10 GB/s   | 145.2k | 145.5k | 290.7k |
    | 64k  | 1.15 GB/s   | 1.16 GB/s   | 2.32 GB/s   | 19.0k  | 19.1k  | 38.1k  |
    | 512k | 1.13 GB/s   | 1.19 GB/s   | 2.32 GB/s   | 2.3k   | 2.4k   | 4.8k   |
    | 1m   | 1.16 GB/s   | 1.23 GB/s   | 2.40 GB/s   | 1.2k   | 1.3k   | 2.5k   |
    +---------------------------------------------------------------------------+
    Insufficient storage on /dev/md1
    Disk Performance Check (ext4 on /dev/md2)
    +---------------------------------------------------------------------------+
    | Size | Read        | Write       | Total       |       IOPS (R,W,T)       |
    +===========================================================================+
    | 4k   | 567.03 MB/s | 568.53 MB/s | 1.10 GB/s   | 145.2k | 145.5k | 290.7k |
    | 64k  | 1.15 GB/s   | 1.16 GB/s   | 2.32 GB/s   | 19.0k  | 19.1k  | 38.1k  |
    | 512k | 1.13 GB/s   | 1.19 GB/s   | 2.32 GB/s   | 2.3k   | 2.4k   | 4.8k   |
    | 1m   | 1.16 GB/s   | 1.23 GB/s   | 2.40 GB/s   | 1.2k   | 1.3k   | 2.5k4k|569.72 MB/s|571.22 MB/s|1.11 GB/s|145.8k|146.2k|292.1k |
    | 64k  | 1.13 GB/s   | 1.14 GB/s   | 2.28 GB/s   | 18.6k  | 18.7k  | 37.4k  |
    | 512k | 1.09 GB/s   | 1.15 GB/s   | 2.24 GB/s   | 2.2k   | 2.4k   | 4.6k   |
    | 1m   | 1.20 GB/s   | 1.28 GB/s   | 2.48 GB/s   | 1.2k   | 1.3k   | 2.5k   |
    +---------------------------------------------------------------------------+
    

    http://sprunge.us/T75OJl

  • @Liso said:

    @DeadlyChemist said:
    great ! sadly i am paranoid plus have terrible trust issues

    how would i self-host this actually? that way i can keep an old version ( so i can look thru the code plus that can only be changed/updated by me)

    Absolutely— you can start by putting benchy in your PATH, in Ubuntu that would be /home/user/bin for local script, and /usr/local/bin for global script (works across user).

    mkdir $HOME/bin
    wget -O $HOME/bin/benchy benchy.pw
    chmod u+x $HOME/bin/benchy
    

    Now you can invoke the script by typing benchy.

    Binaries

    You can also bring your own binaries rather than using precompiled one, simply install them one by one, below is list of binaries used:

    • fio
    • iperf3
    • lsblk
    • bc
    • tput (from ncurses)

    Benchy will automatically detect if you own them, and will revert to your installed binary instead of downloading the precompiled one.

    no i meant i want to host it like you so i can just run wget -qO- benchy.thechemicalworkshop.com/dev | sh

  • LisoLiso Member

    @DeadlyChemist said:

    @Liso said:

    @DeadlyChemist said:
    great ! sadly i am paranoid plus have terrible trust issues

    how would i self-host this actually? that way i can keep an old version ( so i can look thru the code plus that can only be changed/updated by me)

    Absolutely— you can start by putting benchy in your PATH, in Ubuntu that would be /home/user/bin for local script, and /usr/local/bin for global script (works across user).

    mkdir $HOME/bin
    wget -O $HOME/bin/benchy benchy.pw
    chmod u+x $HOME/bin/benchy
    

    Now you can invoke the script by typing benchy.

    Binaries

    You can also bring your own binaries rather than using precompiled one, simply install them one by one, below is list of binaries used:

    • fio
    • iperf3
    • lsblk
    • bc
    • tput (from ncurses)

    Benchy will automatically detect if you own them, and will revert to your installed binary instead of downloading the precompiled one.

    no i meant i want to host it like you so i can just run wget -qO- benchy.thechemicalworkshop.com/dev | sh

    You can clone the repo, then setup your htaccess so your domain pointing to your raw GitHub script. I host the domain (benchy.pw) on shared hosting, so the option available for me was apache with htaccess.

    I think it's also possible with nginx.

  • LisoLiso Member

    Hello everyone, long time no see in this thread, I have some update to share with you all.

    • Added option to use Ookla speedtest.
    • Fix for incorrect number alignment/formatting
    • New layout to fit more information while having less line.
      You can try this new releases.
    wget -qO- benchy.pw | sh -s -- -s
    

    The -s flag make it use speedtest rather than iperf3, the advantage of speedtest is that they have more (!) server to pick from, so I have no trouble filling server for each of continent benchy served (Asia, Africa, North America, South America, Europe, and Australia).

    Credit to this github list which contain exhaustive list of speedtest server.

    Thanks for keeping up with me :smile:


    This is the result on my greencloudvps (excluding geekbench result).

    # # # # # # # # # # # # # # # # # # # # #
    #             Benchy v1.9               #
    #    https://github.com/L1so/benchy     #
    # # # # # # # # # # # # # # # # # # # # #
    #       27 May 2022 10:37 WIB           #
    # # # # # # # # # # # # # # # # # # # # #
    
    Server Insight                                          Hardware Information
    ---------------------                                   ---------------------
    Org         : 365 Online Technology Joint Stock Company Model       : AMD EPYC 7502P 32-Core Processor
    Location    : Singapore                                 Core        : 2 @ 2495.312 MHz
    Kernel      : 4.4.0-122-generic                         AES-NI      : ✔ Enabled
    Uptime      : 60 Days, 17 Hours, 49 Minute, 42 Seconds  VM-x/AMD-V  : ✔ Enabled
    Virt        : kvm                                       Swap        : 1024.0 MiB
    
    Disk & Memory Usage                                     Network Data
    ---------------------                                   ---------------------
    Disk        : 49.2 GiB                                  ASN         : AS59253   
    Disk Usage  : 18.1 GiB (39% Used)                       ISP         : Leaseweb Asia Pacific pte. ltd.
    Mem         : 3.9 GiB                                   IPv4        : ✔ Enabled
    Mem Usage   : 0.3 GiB (8% Used)                         IPv6        : ✔ Enabled
    
    Disk Performance Check (ext4 on /dev/vda1)
    +---------------------------------------------------------------------------+
    | Size | Read        | Write       | Total       |       IOPS (R,W,T)       |
    +===========================================================================+
    | 4k   | 323.11 MB/s | 323.96 MB/s | 647.07 MB/s | 82.7k  | 82.9k  | 165.7k |
    | 64k  | 975.00 MB/s | 980.13 MB/s | 1.90 GB/s   | 15.6k  | 15.7k  | 31.3k  |
    | 512k | 922.33 MB/s | 971.33 MB/s | 1.84 GB/s   | 1.8k   | 1.9k   | 3.8k   |
    | 1m   | 901.31 MB/s | 961.34 MB/s | 1.81 GB/s   | 0.9k   | 1.0k   | 1.9k   |
    +---------------------------------------------------------------------------+
    
    Ookla Network Speedtest (Region: Asia)
    +---------------------------------------------------------------------------------------+
    | Provider    | Location          | Upload       | Download     | Data Used | Latency   |
    +=======================================================================================+
    | Moratel     | Jakarta, ID       |    2.0 GB/s  |    3.6 GB/s  |    7.5 GB |   15.2 ms |
    | Exabytes    | Kuala Lumpur, MY  |  561.4 MB/s  |  188.3 MB/s  |    0.8 GB |    9.6 ms |
    | SingTel     | Singapore, SG     |  108.2 MB/s  |    2.6 GB/s  |    3.4 GB |   73.4 ms |
    | GLBB        | Tokyo, JP         |  400.1 MB/s  |    3.2 GB/s  |    5.8 GB |   92.1 ms |
    | Airtel      | Chennai, IN       |    2.6 GB/s  |    4.7 GB/s  |    8.7 GB |   32.3 ms |
    +---------------------------------------------------------------------------------------+
    
  • AXYZEAXYZE Member
    edited May 2022

    On all Oracle instances (No matter ARM, x86, higher disk capacity. All are on Ubuntu 20.04/22.04) I get this error:
    "Insufficient storage on /dev/sda15"

    Partitions in one of instances:

    /dev/sda1 3.4G used out of 153G  (3%)
    /dev/sda15 297k used out of 103M (1%)
    

    I dont know how this script is coded, but it seems like it chooses partition that has least % usage?
    I suggest to add free space check, if it fails then it ignores that partition (sda15) so then only sda1 could be chosen. If free space check doesn't fail then it would work like now so only based on %. So it would fix problem without introducing any others.

  • AXYZEAXYZE Member
    edited May 2022

    Second bug (?)
    On my RackNerd instance 'fio' 4k test never works and it says '1' instead of '4k'.
    Let me know how I can extract more info about that error so we can try to fix it :)

    Disk Performance Check (ext4 on /dev/vda1)
    +---------------------------------------------------------------------------+
    | Size | Read        | Write       | Total       |       IOPS (R,W,T)       |
    +===========================================================================+
    | 1    | Failed      | To          | Bench       | Disk   | Please | Retry  |
    | 64k  | 699.76 MB/s | 703.45 MB/s | 1.37 GB/s   | 11.2k  | 11.2k  | 22.4k  |
    | 512k | 866.63 MB/s | 912.68 MB/s | 1.73 GB/s   | 1.7k   | 1.8k   | 3.5k   |
    | 1m   | 942.46 MB/s | 0.98 GB/s   | 1.90 GB/s   | 0.9k   | 1.0k   | 1.9k   |
    +---------------------------------------------------------------------------+
    

    "fio --name=rand_rw_4k --ioengine=libaio --rw=randrw --rwmixread=50 --bs=4k --iodepth=64 --numjobs=2 --size=2G --runtime=30 --gtod_reduce=1 --direct=1 --filename=/root/test.fio --group_reporting"
    Output:

    fio-3.28
    Starting 2 processes
    rand_rw_4k: Laying out IO file (1 file / 2048MiB)
    Jobs: 2 (f=2): [m(2)][88.9%][r=269MiB/s,w=270MiB/s][r=68.8k,w=69.2k IOPS][eta 00m:01s]
    rand_rw_4k: (groupid=0, jobs=2): err= 0: pid=781008: Fri May 27 11:22:53 2022
      read: IOPS=66.3k, BW=259MiB/s (272MB/s)(2045MiB/7893msec)
       bw (  KiB/s): min=196336, max=300897, per=99.88%, avg=265024.40, stdev=13939.42, samples=30
       iops        : min=49084, max=75224, avg=66256.07, stdev=3484.83, samples=30
      write: IOPS=66.5k, BW=260MiB/s (272MB/s)(2051MiB/7893msec); 0 zone resets
       bw (  KiB/s): min=197608, max=300728, per=99.85%, avg=265641.27, stdev=13974.81, samples=30
       iops        : min=49402, max=75182, avg=66410.27, stdev=3493.67, samples=30
      cpu          : usr=9.16%, sys=44.95%, ctx=150637, majf=0, minf=25
      IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
         issued rwts: total=523597,524979,0,0 short=0,0,0,0 dropped=0,0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=64
    
    Run status group 0 (all jobs):
       READ: bw=259MiB/s (272MB/s), 259MiB/s-259MiB/s (272MB/s-272MB/s), io=2045MiB (2145MB), run=7893-7893msec
      WRITE: bw=260MiB/s (272MB/s), 260MiB/s-260MiB/s (272MB/s-272MB/s), io=2051MiB (2150MB), run=7893-7893msec
    
    Disk stats (read/write):
      vda: ios=513392/514652, merge=0/8, ticks=282791/266447, in_queue=549242, util=98.87%
    

    So 'fio' works without problems using same commands as script. There's some problem with communication between 'fio' and 'benchy'.

  • LeviLevi Member

    Suggestion: can you provide output in json format?

  • LisoLiso Member

    @AXYZE said:
    On all Oracle instances (No matter ARM, x86, higher disk capacity. All are on Ubuntu 20.04/22.04) I get this error:
    "Insufficient storage on /dev/sda15"

    Partitions in one of instances:

    /dev/sda1 3.4G used out of 153G  (3%)
    /dev/sda15 297k used out of 103M (1%)
    

    I dont know how this script is coded, but it seems like it chooses partition that has least % usage?
    I suggest to add free space check, if it fails then it ignores that partition (sda15) so then only sda1 could be chosen. If free space check doesn't fail then it would work like now so only based on %. So it would fix problem without introducing any others.

    Benchy will skip a partition which have less then 512 mb space, as that was the space required to perform fio test— on arm system the fio test file will occupy 512 mb. You can see the relevant code below.

    disklimit=2 # In GB
      case "$arch" in
        *arm*|*aarch*)
        [ "$mountpoint" = "/" ] && disklimit="0.5";; # In GB
      esac
      [ -z "$devtype" ] && devtype=$(df -T $devmp | awk 'NR==2{ print $2 }')
      [ "$mountpoint" = "/" ] && mountpoint=$benchy_path
      if [ "$(echo "$disklimit > $devsize" | $bc -l)" -eq 1 ]; then
        printf "%s\n" "Insufficient storage on $devname" | parse_output
        continue # Skip this loop
      fi
    

    From your output, you seem to only have 103 mb of space, thus the message.

    @AXYZE said: On my RackNerd instance 'fio' 4k test never works and it says '1' instead of '4k'.

    I put 1 there to imitate non-zero exit status, in shell that translate to failure when executing command. In your case the fio 4k run has not been successful.

    Thanks for your report ! I'll definitely look into it.

    @LTniger said: Suggestion: can you provide output in json format?

    If enough people requested it, I could try implementing it. Otherwise, there's no plan of doing so.

  • AXYZEAXYZE Member

    @Liso said:

    @AXYZE said:
    On all Oracle instances (No matter ARM, x86, higher disk capacity. All are on Ubuntu 20.04/22.04) I get this error:
    "Insufficient storage on /dev/sda15"

    Partitions in one of instances:

    /dev/sda1 3.4G used out of 153G  (3%)
    /dev/sda15 297k used out of 103M (1%)
    

    I dont know how this script is coded, but it seems like it chooses partition that has least % usage?
    I suggest to add free space check, if it fails then it ignores that partition (sda15) so then only sda1 could be chosen. If free space check doesn't fail then it would work like now so only based on %. So it would fix problem without introducing any others.

    Benchy will skip a partition which have less then 512 mb space, as that was the space required to perform fio test— on arm system the fio test file will occupy 512 mb. You can see the relevant code below.

    disklimit=2 # In GB
      case "$arch" in
        *arm*|*aarch*)
        [ "$mountpoint" = "/" ] && disklimit="0.5";; # In GB
      esac
      [ -z "$devtype" ] && devtype=$(df -T $devmp | awk 'NR==2{ print $2 }')
      [ "$mountpoint" = "/" ] && mountpoint=$benchy_path
      if [ "$(echo "$disklimit > $devsize" | $bc -l)" -eq 1 ]; then
        printf "%s\n" "Insufficient storage on $devname" | parse_output
        continue # Skip this loop
      fi
    

    From your output, you seem to only have 103 mb of space, thus the message.

    @AXYZE said: On my RackNerd instance 'fio' 4k test never works and it says '1' instead of '4k'.

    I put 1 there to imitate non-zero exit status, in shell that translate to failure when executing command. In your case the fio 4k run has not been successful.

    Thanks for your report ! I'll definitely look into it.

    @LTniger said: Suggestion: can you provide output in json format?

    If enough people requested it, I could try implementing it. Otherwise, there's no plan of doing so.

    But it should choose 153G partition instead of 103M one. 103M cant have enough free space so it should be ignored so 153G would be chosen.

  • LisoLiso Member

    @AXYZE said:

    @Liso said:

    @AXYZE said:
    On all Oracle instances (No matter ARM, x86, higher disk capacity. All are on Ubuntu 20.04/22.04) I get this error:
    "Insufficient storage on /dev/sda15"

    Partitions in one of instances:

    /dev/sda1 3.4G used out of 153G  (3%)
    /dev/sda15 297k used out of 103M (1%)
    

    I dont know how this script is coded, but it seems like it chooses partition that has least % usage?
    I suggest to add free space check, if it fails then it ignores that partition (sda15) so then only sda1 could be chosen. If free space check doesn't fail then it would work like now so only based on %. So it would fix problem without introducing any others.

    Benchy will skip a partition which have less then 512 mb space, as that was the space required to perform fio test— on arm system the fio test file will occupy 512 mb. You can see the relevant code below.

    disklimit=2 # In GB
      case "$arch" in
        *arm*|*aarch*)
        [ "$mountpoint" = "/" ] && disklimit="0.5";; # In GB
      esac
      [ -z "$devtype" ] && devtype=$(df -T $devmp | awk 'NR==2{ print $2 }')
      [ "$mountpoint" = "/" ] && mountpoint=$benchy_path
      if [ "$(echo "$disklimit > $devsize" | $bc -l)" -eq 1 ]; then
        printf "%s\n" "Insufficient storage on $devname" | parse_output
        continue # Skip this loop
      fi
    

    From your output, you seem to only have 103 mb of space, thus the message.

    @AXYZE said: On my RackNerd instance 'fio' 4k test never works and it says '1' instead of '4k'.

    I put 1 there to imitate non-zero exit status, in shell that translate to failure when executing command. In your case the fio 4k run has not been successful.

    Thanks for your report ! I'll definitely look into it.

    @LTniger said: Suggestion: can you provide output in json format?

    If enough people requested it, I could try implementing it. Otherwise, there's no plan of doing so.

    But it should choose 153G partition instead of 103M one. 103M cant have enough free space so it should be ignored so 153G would be chosen.

    Well it should behave that way, then I assume the 153G partition left untouched ? Can you post full output here?

  • AXYZEAXYZE Member

    @Liso said:

    @AXYZE said:

    @Liso said:

    @AXYZE said:
    On all Oracle instances (No matter ARM, x86, higher disk capacity. All are on Ubuntu 20.04/22.04) I get this error:
    "Insufficient storage on /dev/sda15"

    Partitions in one of instances:

    /dev/sda1 3.4G used out of 153G  (3%)
    /dev/sda15 297k used out of 103M (1%)
    

    I dont know how this script is coded, but it seems like it chooses partition that has least % usage?
    I suggest to add free space check, if it fails then it ignores that partition (sda15) so then only sda1 could be chosen. If free space check doesn't fail then it would work like now so only based on %. So it would fix problem without introducing any others.

    Benchy will skip a partition which have less then 512 mb space, as that was the space required to perform fio test— on arm system the fio test file will occupy 512 mb. You can see the relevant code below.

    disklimit=2 # In GB
      case "$arch" in
        *arm*|*aarch*)
        [ "$mountpoint" = "/" ] && disklimit="0.5";; # In GB
      esac
      [ -z "$devtype" ] && devtype=$(df -T $devmp | awk 'NR==2{ print $2 }')
      [ "$mountpoint" = "/" ] && mountpoint=$benchy_path
      if [ "$(echo "$disklimit > $devsize" | $bc -l)" -eq 1 ]; then
        printf "%s\n" "Insufficient storage on $devname" | parse_output
        continue # Skip this loop
      fi
    

    From your output, you seem to only have 103 mb of space, thus the message.

    @AXYZE said: On my RackNerd instance 'fio' 4k test never works and it says '1' instead of '4k'.

    I put 1 there to imitate non-zero exit status, in shell that translate to failure when executing command. In your case the fio 4k run has not been successful.

    Thanks for your report ! I'll definitely look into it.

    @LTniger said: Suggestion: can you provide output in json format?

    If enough people requested it, I could try implementing it. Otherwise, there's no plan of doing so.

    But it should choose 153G partition instead of 103M one. 103M cant have enough free space so it should be ignored so 153G would be chosen.

    Well it should behave that way, then I assume the 153G partition left untouched ? Can you post full output here?

    153G partition has everything (system, home etc). This 100M partition is on every Ubuntu template from Oracle, doesnt matter if its x86 or ARM, so everybody with Oracle+Ubuntu can reproduce it. It doesnt even matter if its 20.04 or 22.04.

    You need full output of which commands exactly?

  • LisoLiso Member

    @AXYZE said: You need full output of which commands exactly?

    Sorry if I'm being unclear, I meant does the 153G partition successfully benched ? Because your previous comment left me impression that the fio benchmark has failed at all. Unfortunately I cannot confirm this as I don't have oracle instance.

  • AXYZEAXYZE Member
    edited May 2022

    @Liso said:

    @AXYZE said: You need full output of which commands exactly?

    Sorry if I'm being unclear, I meant does the 153G partition successfully benched ? Because your previous comment left me impression that the fio benchmark has failed at all. Unfortunately I cannot confirm this as I don't have oracle instance.

    No. It wasnt benched. Benchy chose 103M partition instead of bigger, main one (153G in this one example) and then failed. It does it on different 4 Oracle instances on Ubuntu.

    It should chose bigger partition, like yabs.sh does. Yabs.sh works fine.

  • LisoLiso Member

    @AXYZE said:

    @Liso said:

    @AXYZE said: You need full output of which commands exactly?

    Sorry if I'm being unclear, I meant does the 153G partition successfully benched ? Because your previous comment left me impression that the fio benchmark has failed at all. Unfortunately I cannot confirm this as I don't have oracle instance.

    No. It wasnt benched. Benchy chose 103M partition instead of bigger, main one (153G in this one example) and then failed. It does it on different 4 Oracle instances on Ubuntu.

    It should chose bigger partition, like yabs.sh does. Yabs.sh works fine.

    It supposed to work on multi partition layout, can you pm me the details ?

  • LisoLiso Member

    Hi, I have some update to share with you.

    Improvement:

    • Fix failed fio benchmark
    • Fix awk syntax error in alpine
    • Reduce uptime format
    • Adjust output width
    • Remove organization and adding back OS information
    • Automatically remove dependencies after successful run

    I also have added support for json output, you can test this functionality by embedding -j or --json. This is example of json output → http://sprunge.us/zvwzrG.

    For easier use of this script, you can setup an alias to execute benchy—I have added instruction on how to do so.

    $ benchy -os
    # # # # # # # # # # # # # # # # # # # # #
    #             Benchy v2.0               #
    #    https://github.com/L1so/benchy     #
    # # # # # # # # # # # # # # # # # # # # #
    #        13 Jul 2022 14:52 WIB          #
    # # # # # # # # # # # # # # # # # # # # #
    
    Server Insight                                  Hardware Information
    ---------------------                           ---------------------
    OS         : Ubuntu 18.04.6 LTS                 Model       : QEMU Virtual CPU version 2.5+
    Location   : Australia                          Core        : 1 @ 3199.998 MHz
    Kernel     : 4.15.0-20-generic                  AES-NI      : ❌ Disabled
    Uptime     : 79 days, 7 hrs, 27 mins, 12 secs   VM-x/AMD-V  : ❌ Disabled
    Virt       : kvm                                Swap        : 512.0 MiB 
    
    Disk & Memory Usage                             Network Data
    ---------------------                           ---------------------
    Disk       : 29.5 GiB                           ASN         : AS395092  
    Disk Usage : 9.0 GiB (33% Used)                 ISP         : Shock Hosting LLC
    Mem        : 1.9 GiB                            IPv4        : ✔ Enabled
    Mem Usage  : 0.5 GiB (24% Used)                 IPv6        : ✔ Enabled
    
    Disk Performance Check (ext4 on /dev/vda1)
    +---------------------------------------------------------------------------+
    | Size | Read        | Write       | Total       |       IOPS (R,W,T)       |
    +===========================================================================+
    | 4k   | 260.14 MB/s | 260.83 MB/s | 520.98 MB/s | 66.6k  | 66.8k  | 133.4k |
    | 64k  | 3.03 GB/s   | 3.05 GB/s   | 6.08 GB/s   | 49.7k  | 50.0k  | 99.8k  |
    | 512k | 6.58 GB/s   | 6.93 GB/s   | 13.51 GB/s  | 13.5k  | 14.2k  | 27.7k  |
    | 1m   | 7.27 GB/s   | 7.76 GB/s   | 15.03 GB/s  | 7.5k   | 7.9k   | 15.4k  |
    +---------------------------------------------------------------------------+
    
    Ookla Network Speedtest (Region: Oceania)
    +---------------------------------------------------------------------------------------+
    | Provider    | Location          | Download     | Upload       | Data Used | Latency   |
    +=======================================================================================+
    | Vocus       | Perth, AU         |  924.9 MB/s  |  654.4 MB/s  |    2.3 GB |   47.4 ms |
    | Telstra     | Sydney, AU        |  655.9 MB/s  |  850.8 MB/s  |    2.2 GB |   91.7 ms |
    | MyRepublic  | Auckland, NZ      |  778.1 MB/s  |  520.7 MB/s  |    1.9 GB |  126.8 ms |
    | Lightwire   | Hamilton, NZ      |  723.6 MB/s  |  666.3 MB/s  |    2.1 GB |  122.0 ms |
    | Vodafone    | Melbourne, AU     | Failed       | To           | Get       | Data      |
    +---------------------------------------------------------------------------------------+
    
    +-----------------------------------------------+
    | Geekbench 5.4.4 Tryout for Linux x86 (64-bit) |
    +===============================================+
    | Single Core        | 855                      |
    | Multi Core         | 858                      |
    +-----------------------------------------------+
    | https://browser.geekbench.com/v5/cpu/15984293 |
    +-----------------------------------------------+
    | Benchy time spent  | 4 Minutes 35 Seconds     |
    +-----------------------------------------------+
    | Benchy result      | http://sprunge.us/fT6695 |
    +-----------------------------------------------+
    

    Let me know if you had further improvement ideas :smile:

  • Awesome. Thanks boss, hopefully this fixes issue IV had on Manjaro.

  • LisoLiso Member

    @jugganuts said:
    Awesome. Thanks boss, hopefully this fixes issue IV had on Manjaro.

    What issues you encounter on Manjaro ? Currently I don't have access to manjaro, but I see that they are based on Arch, I just tried on arch and it works without problem.

  • Not_OlesNot_Oles Moderator, Patron Provider

    Hello!

    At the request of OP, I changed the thread title from

    "I build YABS spin off with additional enhancement"

    to

    "Benchy.pw | Simple server benchmarking script based on YABS"

    Best wishes!

    Tom

    Thanked by 2jugganuts Liso
  • LisoLiso Member

    Good day everyone, I just added an option to use either gb4 or both (gb4 and gb5) simultaneously.

    $ benchy -q
    # # # # # # # # # # # # # # # # # # # # #
    #             Benchy v2.1               #
    #    https://github.com/L1so/benchy     #
    # # # # # # # # # # # # # # # # # # # # #
    #        28 Jul 2022 06:36 WIB          #
    # # # # # # # # # # # # # # # # # # # # #
    
    Found predefined option !
    Server Insight                                  Hardware Information
    ---------------------                           ---------------------
    OS         : Ubuntu 16.04.3 LTS                 Model       : QEMU Virtual CPU version 2.5+
    Location   : Australia                          Core        : 8 @ 3199.998 MHz
    Kernel     : 4.4.0-87-generic                   AES-NI      : ❌ Disabled
    Uptime     : 150 days, 13 hrs, 49 mins, 38 secs VM-x/AMD-V  : ❌ Disabled
    Virt       : kvm                                Swap        : 512.0 MiB 
    
    Disk & Memory Usage                             Network Data
    ---------------------                           ---------------------
    Disk       : 117.7 GiB                          ASN         : AS395092  
    Disk Usage : 37.5 GiB (32% Used)                ISP         : Shock Hosting LLC
    Mem        : 7.8 GiB                            IPv4        : ✔ Enabled
    Mem Usage  : 1.4 GiB (19% Used)                 IPv6        : ✔ Enabled
    
    +-----------------------------------------------+-----------------------------------------------+
    | Geekbench 5.4.4 Tryout for Linux x86 (64-bit) | Geekbench 4.3.3 Tryout for Linux x86 (64-bit) |
    +===============================================+===============================================+
    | Single Core        | 736                      | Single Core        | 3393                     |
    | Multi Core         | 3747                     | Multi Core         | 16671                    |
    +-----------------------------------------------+-----------------------------------------------+
    | https://browser.geekbench.com/v5/cpu/16284813 | https://browser.geekbench.com/v4/cpu/16592928 |
    +-----------------------------------------------+-----------------------------------------------+
    | Benchy time spent                             | 6 Minutes 31 Seconds                          |
    +-----------------------------------------------+-----------------------------------------------+
    
    


    Output (in json)
    {
      "benchy_ver": "v2.1",
      "startDate": "2022-07-28T06:36:11+07:00",
      "endDate": "2022-07-28T06:42:45+07:00",
      "server_insight": {
        "OS": "Ubuntu 16.04.3 LTS",
        "location": "Australia",
        "kernel": "4.4.0-87-generic",
        "uptime": "150 days, 13 hrs, 49 mins, 38 secs",
        "virt": "kvm"
      },
      "hardware_information": {
        "cpu_model": "QEMU Virtual CPU version 2.5+",
        "cpu_core": "8 @ 3199.998 MHz",
        "cpu_aes": false,
        "cpu_virt": false,
        "swap": "512.0 MiB"
      },
      "disk_info": {
        "disk": "117.7 GiB",
        "disk_usage": "37.5 GiB",
        "disk_percentage": "32%",
        "mem": "7.8 GiB",
        "mem_usage": "1.4 GiB",
        "mem_percentage": "19%"
      },
      "network_data": {
        "asn": "AS395092",
        "isp": "Shock Hosting LLC",
        "ipv4": true,
        "ipv6": true
      },
      "geekbench_test": {
        "geekbench5": {
          "gb_version": "Geekbench 5.4.4 Tryout for Linux x86 (64-bit)",
          "single_core": "736",
          "multi_core": "3747",
          "gb_link": "https://browser.geekbench.com/v5/cpu/16284813"
        },
        "geekbench4": {
          "gb_version": "Geekbench 4.3.3 Tryout for Linux x86 (64-bit)",
          "single_core": "3393",
          "multi_core": "16671",
          "gb_link": "https://browser.geekbench.com/v4/cpu/16592928"
        }
      }
    }
    

    Thanks for keeping up with this thread, I'm open to any ideas :)

    Thanked by 1tototo
  • SaahibSaahib Host Rep, Veteran

    Is there way to run disk tests on specific partition. Say my machine has 4 different type of raid arrays, will it check all or I any specific one ?

  • LisoLiso Member

    @Saahib said:
    Is there way to run disk tests on specific partition. Say my machine has 4 different type of raid arrays, will it check all or I any specific one ?

    No currently there isn't, but surely can be done. By default the script should detect all available disk on system and attempt to bench them one-by-one.

  • ailiceailice Member

    @Liso said:
    Hello everyone, long time no see in this thread, I have some update to share with you all.

    • Added option to use Ookla speedtest.
    • Fix for incorrect number alignment/formatting
    • New layout to fit more information while having less line.
      You can try this new releases.
    wget -qO- benchy.pw | sh -s -- -s
    

    The -s flag make it use speedtest rather than iperf3, the advantage of speedtest is that they have more (!) server to pick from, so I have no trouble filling server for each of continent benchy served (Asia, Africa, North America, South America, Europe, and Australia).

    Credit to this github list which contain exhaustive list of speedtest server.

    Thanks for keeping up with me :smile:


    This is the result on my greencloudvps (excluding geekbench result).

    # # # # # # # # # # # # # # # # # # # # #
    #             Benchy v1.9               #
    #    https://github.com/L1so/benchy     #
    # # # # # # # # # # # # # # # # # # # # #
    #       27 May 2022 10:37 WIB           #
    # # # # # # # # # # # # # # # # # # # # #
    
    Server Insight                                          Hardware Information
    ---------------------                                   ---------------------
    Org         : 365 Online Technology Joint Stock Company Model       : AMD EPYC 7502P 32-Core Processor
    Location    : Singapore                                 Core        : 2 @ 2495.312 MHz
    Kernel      : 4.4.0-122-generic                         AES-NI      : ✔ Enabled
    Uptime      : 60 Days, 17 Hours, 49 Minute, 42 Seconds  VM-x/AMD-V  : ✔ Enabled
    Virt        : kvm                                       Swap        : 1024.0 MiB
    
    Disk & Memory Usage                                     Network Data
    ---------------------                                   ---------------------
    Disk        : 49.2 GiB                                  ASN         : AS59253   
    Disk Usage  : 18.1 GiB (39% Used)                       ISP         : Leaseweb Asia Pacific pte. ltd.
    Mem         : 3.9 GiB                                   IPv4        : ✔ Enabled
    Mem Usage   : 0.3 GiB (8% Used)                         IPv6        : ✔ Enabled
    
    Disk Performance Check (ext4 on /dev/vda1)
    +---------------------------------------------------------------------------+
    | Size | Read        | Write       | Total       |       IOPS (R,W,T)       |
    +===========================================================================+
    | 4k   | 323.11 MB/s | 323.96 MB/s | 647.07 MB/s | 82.7k  | 82.9k  | 165.7k |
    | 64k  | 975.00 MB/s | 980.13 MB/s | 1.90 GB/s   | 15.6k  | 15.7k  | 31.3k  |
    | 512k | 922.33 MB/s | 971.33 MB/s | 1.84 GB/s   | 1.8k   | 1.9k   | 3.8k   |
    | 1m   | 901.31 MB/s | 961.34 MB/s | 1.81 GB/s   | 0.9k   | 1.0k   | 1.9k   |
    +---------------------------------------------------------------------------+
    
    Ookla Network Speedtest (Region: Asia)
    +---------------------------------------------------------------------------------------+
    | Provider    | Location          | Upload       | Download     | Data Used | Latency   |
    +=======================================================================================+
    | Moratel     | Jakarta, ID       |    2.0 GB/s  |    3.6 GB/s  |    7.5 GB |   15.2 ms |
    | Exabytes    | Kuala Lumpur, MY  |  561.4 MB/s  |  188.3 MB/s  |    0.8 GB |    9.6 ms |
    | SingTel     | Singapore, SG     |  108.2 MB/s  |    2.6 GB/s  |    3.4 GB |   73.4 ms |
    | GLBB        | Tokyo, JP         |  400.1 MB/s  |    3.2 GB/s  |    5.8 GB |   92.1 ms |
    | Airtel      | Chennai, IN       |    2.6 GB/s  |    4.7 GB/s  |    8.7 GB |   32.3 ms |
    +---------------------------------------------------------------------------------------+
    

    What provider you using for this bench?

  • LisoLiso Member

    @ailice said:

    @Liso said:
    Hello everyone, long time no see in this thread, I have some update to share with you all.

    • Added option to use Ookla speedtest.
    • Fix for incorrect number alignment/formatting
    • New layout to fit more information while having less line.
      You can try this new releases.
    wget -qO- benchy.pw | sh -s -- -s
    

    The -s flag make it use speedtest rather than iperf3, the advantage of speedtest is that they have more (!) server to pick from, so I have no trouble filling server for each of continent benchy served (Asia, Africa, North America, South America, Europe, and Australia).

    Credit to this github list which contain exhaustive list of speedtest server.

    Thanks for keeping up with me :smile:


    This is the result on my greencloudvps (excluding geekbench result).

    # # # # # # # # # # # # # # # # # # # # #
    #             Benchy v1.9               #
    #    https://github.com/L1so/benchy     #
    # # # # # # # # # # # # # # # # # # # # #
    #       27 May 2022 10:37 WIB           #
    # # # # # # # # # # # # # # # # # # # # #
    
    Server Insight                                          Hardware Information
    ---------------------                                   ---------------------
    Org         : 365 Online Technology Joint Stock Company Model       : AMD EPYC 7502P 32-Core Processor
    Location    : Singapore                                 Core        : 2 @ 2495.312 MHz
    Kernel      : 4.4.0-122-generic                         AES-NI      : ✔ Enabled
    Uptime      : 60 Days, 17 Hours, 49 Minute, 42 Seconds  VM-x/AMD-V  : ✔ Enabled
    Virt        : kvm                                       Swap        : 1024.0 MiB
    
    Disk & Memory Usage                                     Network Data
    ---------------------                                   ---------------------
    Disk        : 49.2 GiB                                  ASN         : AS59253   
    Disk Usage  : 18.1 GiB (39% Used)                       ISP         : Leaseweb Asia Pacific pte. ltd.
    Mem         : 3.9 GiB                                   IPv4        : ✔ Enabled
    Mem Usage   : 0.3 GiB (8% Used)                         IPv6        : ✔ Enabled
    
    Disk Performance Check (ext4 on /dev/vda1)
    +---------------------------------------------------------------------------+
    | Size | Read        | Write       | Total       |       IOPS (R,W,T)       |
    +===========================================================================+
    | 4k   | 323.11 MB/s | 323.96 MB/s | 647.07 MB/s | 82.7k  | 82.9k  | 165.7k |
    | 64k  | 975.00 MB/s | 980.13 MB/s | 1.90 GB/s   | 15.6k  | 15.7k  | 31.3k  |
    | 512k | 922.33 MB/s | 971.33 MB/s | 1.84 GB/s   | 1.8k   | 1.9k   | 3.8k   |
    | 1m   | 901.31 MB/s | 961.34 MB/s | 1.81 GB/s   | 0.9k   | 1.0k   | 1.9k   |
    +---------------------------------------------------------------------------+
    
    Ookla Network Speedtest (Region: Asia)
    +---------------------------------------------------------------------------------------+
    | Provider    | Location          | Upload       | Download     | Data Used | Latency   |
    +=======================================================================================+
    | Moratel     | Jakarta, ID       |    2.0 GB/s  |    3.6 GB/s  |    7.5 GB |   15.2 ms |
    | Exabytes    | Kuala Lumpur, MY  |  561.4 MB/s  |  188.3 MB/s  |    0.8 GB |    9.6 ms |
    | SingTel     | Singapore, SG     |  108.2 MB/s  |    2.6 GB/s  |    3.4 GB |   73.4 ms |
    | GLBB        | Tokyo, JP         |  400.1 MB/s  |    3.2 GB/s  |    5.8 GB |   92.1 ms |
    | Airtel      | Chennai, IN       |    2.6 GB/s  |    4.7 GB/s  |    8.7 GB |   32.3 ms |
    +---------------------------------------------------------------------------------------+
    

    What provider you using for this bench?

    I highlighted the answer

Sign In or Register to comment.