Difference between revisions of "Benchmark"

From 太極
Jump to navigation Jump to search
(4 intermediate revisions by the same user not shown)
Line 251: Line 251:
 
* [https://www.keycdn.com/blog/website-speed-test-tools Top 15 Free Website Speed Test Tools of 2018]
 
* [https://www.keycdn.com/blog/website-speed-test-tools Top 15 Free Website Speed Test Tools of 2018]
 
* https://tools.pingdom.com/
 
* https://tools.pingdom.com/
 +
* [https://www.tecmint.com/test-website-loading-speed-in-linux-terminal/ How to Test Website Loading Speed in Linux Terminal]. It works for local IP address.
 +
{{Pre}}
 +
# http
 +
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com
 +
 +
# https
 +
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://taichimd.us/mediawiki/index.php/C
 +
 +
Lookup Time: 0.004311
 +
Connect Time: 0.010050
 +
AppCon Time: 0.049561 (https only)
 +
Redirect Time: 0.000000 (https only)
 +
Pre-transfer Time: 0.049659
 +
Start-transfer Time: 5.035105
 +
 +
Total Time: 5.174981
 +
</pre>
 +
* [https://www.tecmint.com/httpstat-curl-statistics-tool-check-website-performance/ httpstat – A Curl Statistics Tool to Check Website Performance]. It works for both https and local IP.
 +
<pre>
 +
$ wget -c https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py
 +
$ python httpstat.py https://taichimd.us/mediawiki/index.php/C
 +
...
 +
  DNS Lookup  TCP Connection  TLS Handshake  Server Processing  Content Transfer
 +
[    4ms    |      8ms      |    34ms      |      31300ms      |      169ms      ]
 +
            |                |              |                  |                  |
 +
    namelookup:4ms            |              |                  |                  |
 +
                        connect:12ms          |                  |                  |
 +
                                    pretransfer:46ms              |                  |
 +
                                                      starttransfer:31346ms          |
 +
                                                                                total:31515ms
 +
</pre>
  
 
= Network speed =
 
= Network speed =
* 4.5MB/s wifi on raspberry pi 3B+ at home (tested using scp)
+
* 4.5MB/s wifi on raspberry pi 3B+ at home wifi-to-wifi, 7.3MB/s ethernet-to-wifi (tested using scp)
 +
* 5.3MB/s ethernet on UDOO x86 at home wifi-to-ethernet, 62MB/s ethernet-to-ethernet (scp).

Revision as of 19:31, 30 November 2019

Geekbench

Geekbench is a cross-platform benchmark that measures the performance of your computer's processor and memory.

Sysbench

sudo apt-get update
sudo apt-get install sysbench
sysbench --num-threads=1 --test=cpu --cpu-max-prime=20000 --validate run
# sysbench version is 0.4.12

sysbench --threads=1 --test=cpu --cpu-max-prime=20000 --validate run
# sysbench version 1.0.11

The following one was used to benchmark Raspberry Pi 32-bit vs 64-bit.

sysbench --threads=4 --test=cpu --cpu-max-prime=300000 run && 7za b
Device Total time (1-thread) Total time (all threads) Average CPU Mark
Intel Core i7-8750H @ 2.20GHz Macbook Pro 2018 (6 cores) 12407
Xeon E5-1650 (12 threads) 23s 2.5s 11808
Intel i3-4590T (4-core) Dell Optiplex 3020M 5622
AMD Phenom II X6 1055T (6-core) 28s 5.5s 5058
Intel Core2 Quad Q9500 @2.8GHz (4-core) 3542
Intel Core2 Duo E8400 @3.0GHz (2-core) 21.5s 11.5s 2178
Intel Core i3-4010U @ 1.7GHz (4-core) 47.2s 13.4s 2437
Core(TM) i3-3110M @ 2.40GHz (4-core) 35s 10s 3049
Core(TM) i7-2640M CPU @ 2.80GHz (Lenovo T420s) 10s 10s 3933
Atom(TM) z3735G @ 1.33GHz (hp stream 8 2-core) 918
Atom(TM) z2760 @ 1.8GHz (lenovo lynx 2-core) 576
Atom(TM) N270 @ 1.60GHz (EEE PC 2-core) 192s 120s 272
RPi1 (1-core) 1412s
RPi2 (4-core) 768s 191s
RPi2 (4-core) 768s 191s
RPi0-W (1-core) 624s
BeagleBlack (1-core) 673s
UDoo (2-core) 603s 302s
UDoo X86 Advanced Celeron N3160 2.24 GHZ turbo speed (2-core) 1472
ODroid xu4 (8-core) 372s 60s

Note that

watch -n1 "cat /proc/cpuinfo | grep \"MHz\""
sudo cat /sys/devices/system/cpu/*/cpufreq/cpuinfo_max_freq
  • for the Xeon(R) E5-1650 @ 3.2GHz,
brb@T3600 ~ $ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20GHz
stepping        : 7
microcode       : 0x70d
cpu MHz         : 1229.125
cache size      : 12288 KB
physical id     : 0
siblings        : 12
core id         : 0
cpu cores       : 6
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes

brb@T3600 ~ $ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                12
On-line CPU(s) list:   0-11
Thread(s) per core:    2
Core(s) per socket:    6
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               1221.625
BogoMIPS:              6384.41
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K
NUMA node0 CPU(s):     0-11

nbench

wget http://www.tux.org/~mayer/linux/nbench-byte-2.2.3.tar.gz
tar xzvf nbench-byte-2.2.3.tar.gz
cd nbench-byte-2.2.3
make
./nbench

Simple C program

See Time the iterations from 0 to_2147483647

R program

Gross inefficiency in influence.lm, r-source on github

Videos

Raspberry Pi 4B vs Jetson Nano

Disk speed test

dd

Linux and Unix Test Disk I/O Performance With dd Command

  • Test write speed
$ sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync

# External storage
$ sync; dd if=/dev/zero of=/media/user/MyUSB/tempfile bs=1M count=1024; sync
  • Test read speed
$ dd if=tempfile of=/dev/null bs=1M count=1024  # do not use this

# Clear the cache
$ sudo /sbin/sysctl -w vm.drop_caches=3
$ dd if=tempfile of=/dev/null bs=1M count=1024  # consistent with 'disks' utility

hdparm

hdparm is a Linux command line utility that allows to set and view hardware parameters of hard disk drives. -t and --direct measures data transfer rate but bypassing hard drive's buffer cache memory thus reading directly from the disk.

sudo hdparm -t --direct /dev/mmcblk0p1  # eg internal
sudo hdparm -t --direct /dev/mmcblk0p2  # eg sd card
sudo hdparm -t --direct /dev/sda1       # eg USB 
sudo hdparm -Tt /dev/sda
sudo hdparm -t /dev/vdb                 # Measure Hard Disk Device Read Speed
sudo hdparm -T /dev/vdb                 # Measure Hard Disk Cache Read Speed
# Reading cache will give more higher performance than reading 
# from disk because only the cached data will be used and tested.

hdparm -I /dev/sda                      # show information about disk

Example: Silicon-power 512GB ssd. The box says it can read up to 560MB/s & write up to 530MB/s. Below is a test result running on NUC Pentium Silver J5005 CPU.

$ sudo hdparm -t --direct /dev/sdb1
[sudo] password for brb: 

/dev/sdb1:
 Timing O_DIRECT disk reads: 1068 MB in  3.01 seconds = 355.34 MB/sec

On UDOO x86, the SSD is 341.77MB/s. The eMMC speed on UDOO x86 is 130MB/s. A portable HDD has a speed 24-29MB/s.

On phenom server, the HDD speed is 150MB/s (WD black WD4003FZEX 4TB, 2013) and 68MB/s (ST ST3640323as 640GB, 2014).

On Raspberry Pi 3B (sudo apt-get install hdparm), the microSD speed is 22MB/s only. The same SSD plugged to a USB2 port has a speed 34MB/s only.

Website loading

# http
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com

# https
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://taichimd.us/mediawiki/index.php/C

Lookup Time:		0.004311
Connect Time:		0.010050
AppCon Time:		0.049561 (https only)
Redirect Time:		0.000000 (https only)
Pre-transfer Time:	0.049659
Start-transfer Time:	5.035105

Total Time:		5.174981
$ wget -c https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py
$ python httpstat.py https://taichimd.us/mediawiki/index.php/C
...
  DNS Lookup   TCP Connection   TLS Handshake   Server Processing   Content Transfer
[     4ms    |       8ms      |     34ms      |      31300ms      |       169ms      ]
             |                |               |                   |                  |
    namelookup:4ms            |               |                   |                  |
                        connect:12ms          |                   |                  |
                                    pretransfer:46ms              |                  |
                                                      starttransfer:31346ms          |
                                                                                 total:31515ms

Network speed

  • 4.5MB/s wifi on raspberry pi 3B+ at home wifi-to-wifi, 7.3MB/s ethernet-to-wifi (tested using scp)
  • 5.3MB/s ethernet on UDOO x86 at home wifi-to-ethernet, 62MB/s ethernet-to-ethernet (scp).