Open geerlingguy opened 1 year ago
Benchmark of SD card on PiBenchmarks.com: https://pibenchmarks.com/benchmark/67793/
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read this blog post to see the reasons why I mark issues as stale.
I wonder about one thing. You seem to never experienced rpi 4 wifi instability (causing lockup (only wifi lockup) requiring hard reset to get wifi working again). It's daily (or rather hourly) experience here on every rpi 4 board (but only have 4GB, rev 1.5 boards; official PSU). Leaving iperf -t0 running is enough to trigger.
May be this question is wrong here but some of you may have seen the same effect as myself. I am using Sandisk Ultra Fit from 32GB up to 512GB for a long time now on my RPI3 and RPI4 boards and they work fine. Lately I have ordered "new" 256GB Ultra Fit's and they are unusable slow.
Bus 002 Device 008: ID 0781:5583 SanDisk Corp. Ultra Fit Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 9 idVendor 0x0781 SanDisk Corp. idProduct 0x5583 Ultra Fit bcdDevice 1.00 iManufacturer 1 SanDisk iProduct 2 Ultra Fit iSerial 3 0401a026bcbb31d7dc3a43a4fd6a281e69edd0bfafede1b68eed300273ea9b981c960000000000000000000090719afaff806e18835581077c271bb5 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x002c bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 896mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 15 Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 0x0016 bNumDeviceCaps 2 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000002 HIRD Link Power Management (LPM) Supported SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 wSpeedsSupported 0x000e Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 1 Lowest fully-functional device speed is Full Speed (12Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 256 micro seconds Device Status: 0x0000 (Bus Powered)
Bus 002 Device 007: ID 0781:55b1 SanDisk Corp. SanDisk 3.2 Gen1 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 3.20 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 9 idVendor 0x0781 SanDisk Corp. idProduct 0x55b1 bcdDevice 1.10 iManufacturer 1 SanDisk iProduct 2 SanDisk 3.2 Gen1 iSerial 3 A2003921444C4129 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x002c bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 896mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 3 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 0 bMaxBurst 3 Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 0x0016 bNumDeviceCaps 2 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000006 BESL Link Power Management (LPM) Supported SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 wSpeedsSupported 0x000e Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 2 Lowest fully-functional device speed is High Speed (480Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 2047 micro seconds Device Status: 0x000c (Bus Powered) U1 Enabled U2 Enabled
Under Windows both are working at the same speed and without any problem. I also tried to get further information from the vendor but the only comment was that the USB flash drives are only certified for Windows. Has anyone seen similar effects ? Are there any parameters that could make the new Sandisk Ultra Fits work under Linux ?
Basic information
Linux/system information
Benchmark results
CPU
Power
stress-ng --matrix 0
): 5.0 Wtop500
HPL benchmark: 7.2 W (1.64 Gflops/W)Disk
SanDisk Extreme 32GB A1
curl https://raw.githubusercontent.com/geerlingguy/pi-cluster/master/benchmarks/disk-benchmark.sh | sudo bash
Run benchmark on any attached storage device (e.g. eMMC, microSD, NVMe, SATA) and add results under an additional heading. Download the script with
curl -o disk-benchmark.sh [URL_HERE]
and runsudo DEVICE_UNDER_TEST=/dev/sda DEVICE_MOUNT_PATH=/mnt/sda1 ./disk-benchmark.sh
(assuming the device issda
).Also consider running PiBenchmarks.com script.
Network
iperf3
results:Ethernet
iperf3 -c $SERVER_IP
: 939 Mbpsiperf3 --reverse -c $SERVER_IP
: 938 Mbpsiperf3 --bidir -c $SERVER_IP
: 895 Mbps up / 854 Mbps downWiFi
iperf3 -c $SERVER_IP
: 108 Mbpsiperf3 --reverse -c $SERVER_IP
: 103 Mbpsiperf3 --bidir -c $SERVER_IP
: 1 Mbps up / 105 Mbps downGPU
glmark2-es2
result:Memory
tinymembench
results:Click to expand memory benchmark result
``` tinymembench v0.4.10 (simple benchmark for memory throughput and latency) ========================================================================== == Memory bandwidth tests == == == == Note 1: 1MB = 1000000 bytes == == Note 2: Results for 'copy' tests show how many bytes can be == == copied per second (adding together read and writen == == bytes would have provided twice higher numbers) == == Note 3: 2-pass copy means that we are using a small temporary buffer == == to first fetch data into it, and only then write it to the == == destination (source -> L1 cache, L1 cache -> destination) == == Note 4: If sample standard deviation exceeds 0.1%, it is shown in == == brackets == ========================================================================== C copy backwards : 2747.5 MB/s (1.7%) C copy backwards (32 byte blocks) : 2757.0 MB/s (0.1%) C copy backwards (64 byte blocks) : 2749.6 MB/s C copy : 2731.0 MB/s C copy prefetched (32 bytes step) : 2726.8 MB/s C copy prefetched (64 bytes step) : 2727.8 MB/s C 2-pass copy : 2189.6 MB/s (0.4%) C 2-pass copy prefetched (32 bytes step) : 2307.0 MB/s C 2-pass copy prefetched (64 bytes step) : 2292.3 MB/s (0.3%) C fill : 3126.3 MB/s (1.3%) C fill (shuffle within 16 byte blocks) : 3122.2 MB/s (0.9%) C fill (shuffle within 32 byte blocks) : 3105.8 MB/s (0.9%) C fill (shuffle within 64 byte blocks) : 3110.4 MB/s (0.9%) NEON 64x2 COPY : 2735.7 MB/s NEON 64x2x4 COPY : 2734.0 MB/s NEON 64x1x4_x2 COPY : 1099.1 MB/s (0.2%) NEON 64x2 COPY prefetch x2 : 2728.2 MB/s NEON 64x2x4 COPY prefetch x1 : 2725.5 MB/s NEON 64x2 COPY prefetch x1 : 2726.2 MB/s NEON 64x2x4 COPY prefetch x1 : 2728.5 MB/s --- standard memcpy : 2737.5 MB/s standard memset : 3102.7 MB/s (0.9%) --- NEON LDP/STP copy : 2731.7 MB/s NEON LDP/STP copy pldl2strm (32 bytes step) : 2717.2 MB/s NEON LDP/STP copy pldl2strm (64 bytes step) : 2718.5 MB/s NEON LDP/STP copy pldl1keep (32 bytes step) : 2728.9 MB/s NEON LDP/STP copy pldl1keep (64 bytes step) : 2731.1 MB/s NEON LD1/ST1 copy : 2733.4 MB/s NEON STP fill : 3111.4 MB/s (1.1%) NEON STNP fill : 2701.2 MB/s (0.9%) ARM LDP/STP copy : 2735.1 MB/s ARM STP fill : 3084.1 MB/s (0.9%) ARM STNP fill : 2640.1 MB/s (1.3%) ========================================================================== == Memory latency test == == == == Average time is measured for random memory accesses in the buffers == == of different sizes. The larger is the buffer, the more significant == == are relative contributions of TLB, L1/L2 cache misses and SDRAM == == accesses. For extremely large buffer sizes we are expecting to see == == page table walk with several requests to SDRAM for almost every == == memory access (though 64MiB is not nearly large enough to experience == == this effect to its fullest). == == == == Note 1: All the numbers are representing extra time, which needs to == == be added to L1 cache latency. The cycle timings for L1 cache == == latency can be usually found in the processor documentation. == == Note 2: Dual random read means that we are simultaneously performing == == two independent memory accesses at a time. In the case if == == the memory subsystem can't handle multiple outstanding == == requests, dual random read has the same timings as two == == single reads performed one after another. == ========================================================================== block size : single random read / dual random read 1024 : 0.0 ns / 0.0 ns 2048 : 0.0 ns / 0.0 ns 4096 : 0.0 ns / 0.0 ns 8192 : 0.0 ns / 0.0 ns 16384 : 0.0 ns / 0.0 ns 32768 : 0.0 ns / 0.0 ns 65536 : 4.7 ns / 7.4 ns 131072 : 7.2 ns / 9.9 ns 262144 : 10.3 ns / 13.2 ns 524288 : 11.9 ns / 15.1 ns 1048576 : 22.7 ns / 34.8 ns 2097152 : 80.9 ns / 117.8 ns 4194304 : 108.9 ns / 140.9 ns 8388608 : 129.4 ns / 161.1 ns 16777216 : 139.8 ns / 170.3 ns 33554432 : 145.1 ns / 175.4 ns 67108864 : 156.5 ns / 191.4 ns ```Phoronix Test Suite
Results of the pi-general-benchmark.sh:
Other Data
Crypto performance as measured by OpenSSL (see sbc-bench ARMv8 Crypto Extensions):