Wer seinen PC selbst zusammen gebaut hat oder hat bauen lassen,
sollte am Anfang, bevor die Garantie abläuft, gründlich testen.
Nach meinen privaten Erfahrungen hatte ich die meisten Rückläufer
am Anfang bei den Speicherriegeln und einmal beim Motherboard.
CPU's sind mir noch garnicht ausgefallen im Sinne eines Defektes.
Ich hatte allerdings einmal das Problem das die CPU
noch nicht mit den BIOS harmonierte.
Dadurch war ich gezwungen, eine weitere CPU zu kaufen
um das BIOS updaten zu können.
Eine einzige nicht NAS Festplatten
fiel bisher bei mir nach ca. 6 Monaten aus,
weitere nicht NAS Festplatten nach mehr als 5 Jahren.
Alle bisher verwendeten NAS-Platten
habe ich wegen der zu klein gewordenen Größe,
vor Ausfall ausortiert.
Dieses Problem, entweder Ausfall am Anfang oder spät,
also z.B. kurz nach abgelaufener Garantie
wird auch Badewannenkurve bezeichnet.
Möchte ich mir nur mal schnell einen Überblick über mein System verschaffen,
kann ich z.B. hardinfo
empfehlen.
Das Programm ist vergleichbar mit den Windows-Gerätemanager.
Man erhält also etliche Hardware- und Software-Informationen.
sudo apt-get install hardinfo hardinfo einige Info nur als root sichtbar
harinfo
eignet sich nicht für alle gründlicheren und längeren Tests.
kernel.org
6 Useful Linux Apps to Stress Test and Benchmark CPU Performance
pcwelt.de
Linux_So_testen_Sie_die_Leistung_Ihrer_Hardware-Benchmark
Zum Anfang
Da Speicherfehler nicht inbedingt sofort auftreten,
sollte man bei diesen Test über Nacht laufen lassen.
Hierfür eignet sich hervorragend memtest86+
,
weil es Betriebssystem unabhängig testet.
Somit werden nur ca. 1,8 MB (größe des Programms) nicht getestet.
Es gibt noch memtest86
ohne +, welche ich nicht verwenden würde,
auch wenn es etwas vergleichbares von Passmark Pty Ltd. ist.
sudo apt-get install memtest86+
Wie bereits beschrieben, läßt sich das Programm nicht direkt unter Linux aufrufen.
In /usr/lib/memtest86+
befinden sich
lediglich eine .elf
und eine .iso
-Datei.
Dafür ist im Boot-Menü ein weiterer Eintrag enthalten.
Wenn man memtest86+
auswählt,
wird bereits ohne weitere Konfiguration mit den Testen losgelegt.
memtest.org
Memtest86+
Zum Anfang
Eine sehr einfache Möglichkeit die CPU zu belasten ist, mit dd
Zufallszahlen berechnen zu lassen und die Ergebnisse weg zu schmeissen.
Wenn die Möglichkeit besteht, würde ich dabei die Stromaufnahme,
die Temperatur und Lüfterdrehzahl messen.
Die Messung sollte erfolgen wenn ich dd
ein Mal, zwei Mal, etc. aufgerufen habe.
Die Anzahl der Aufrufe, richtet sich nach der Anzahl der Kerne.
Für die Temperatur und Drehzahl hat das Motherboard eigene Sensoren.
Hier:
asrock.com
Fatal1ty B450 Gaming-ITX/ac mit AM4 Sockel;
Ryzen 5 2600 6 core eingebaut
Die entsprechende Linux-Bibliothek lm-sensors
muß ggf. installiert werden.
Damit die Werte stimmen, muß ggf. die Konfiguration in
/etc/sensors3.conf
angepasst werden.
Um möglichst viele Sensoren zu finden, sind sie zunächst zu suchen.
su apt install lm-sensors bei DEB 10 bereits installiert apt install psensor grafische Ausgabe sensors-detect Scannt nach Sensoren bash: sensors-detect: command not found whereis sensors-detect bei DEB 10 woanders sensors-detect: /usr/sbin/sensors-detect /usr/share/man/man8/sensors-detect.8.gz /usr/sbin/sensors-detect alles mit y bestätigen … AMD Family 17h thermal sensors... Success! (driver `k10temp') Found `Nuvoton NCT6792D Super IO Sensors' Success! (address 0x290, driver `nct6775') Using driver `i2c-piix4' for device 0000:00:14.0: AMD KERNCZ SMBus Module i2c-dev loaded successfully. … To load everything that is needed, add this to /etc/modules: #----cut here---- # Chip drivers nct6775 #----cut here---- If you have some drivers built into your kernel, the list above will contain too many modules. Skip the appropriate ones! Do you want to add these lines automatically to /etc/modules? (yes/NO)y Successful! Monitoring programs won't work until the needed modules are loaded. You may want to run '/etc/init.d/kmod start' to load them. Unloading i2c-dev... OK Unloading cpuid... OK /etc/init.d/kmod start [ ok ] Starting kmod (via systemctl): kmod.service. /usr/sbin/service kmod start alternativ exit
Nun hat man durch Eingabe von psensor
die Möglichkeit
sich ein paar Temperaturen anzuschauen.
Beim ersten Start ist die Darstellung leider etwas verwirrend.
Wenn man allerdings den Textbereich nach rechts schiebt,
sieht man einen Verlauf. Tdie
ist die Temperatur der CPU.
Nun kann man, entsprechend der Anzahl der Kerne,
dd
aufrufen und gucken was passiert.
dd if=/dev/urandom of=/dev/null & 1. im Hintergrund ausgeführt [1] 4503 dd if=/dev/urandom of=/dev/null & 2. im Hintergrund ausgeführt [2] 4505 …
Die dargestellte Kurve entstand zunächst durch Messung der Leerlauftemperatur.
Dann habe ich hier durch 12 maliges Aufrufen von dd
Volllast erzeugt.
Nachdem ein eingeschwungener Zustand erreicht war, habe ich einen Screenshot erstellt.
Nach der Messung, habe ich in einen Terminalfester top
laufen lassen, um die Prozess-Id's zu sehen.
und in einen anderen Fenster habe ich z.B. via kill 4505
einen Prozess nach den anderen beendet.
s-tui
wäre eine Alternative, welche auch via ssh
im Terminal-Fenster Balkendiagramme darstellen kann.
Wird lediglich ein momentaner Wert benötigt, reicht auch sensors
oder zyklisch aufgerufen watch sensors
.
sensors iwlwifi_1-virtual-0 Adapter: Virtual device temp1: +38.0°C radeon-pci-2600 Adapter: PCI adapter temp1: +61.5°C (crit = +120.0°C, hyst = +90.0°C) k10temp-pci-00c3 Adapter: PCI adapter Tdie: +41.6°C (high = +70.0°C) Tctl: +41.6°C
Interessanterweise zeigt sensors
bei mir keine Lüfterdrehzahl an,
obwohl in /etc/sensors3.conf
Angaben zu finden sind.
acpi -t
rückt unter DEB 10 für das Fatal1ty B450 Gaming-ITX/ac keine Informationen raus.
sysbench
findet Synaptic unter DEB 10 nicht.
Zur Erinnerung: Am Anfang startete ich sensors-detect
und bekam unter anderem folgende Meldung.
su /usr/sbin/sensors-detect alles mit y bestätigen … #----cut here---- # Chip drivers nct6775 #----cut here----
nct6775
wurde zwar korrekt /etc/modules
hinzugefügt.
Aber durch den versäumten Neustart wirkt das noch nicht.
Alternativ kann man sofort mit modprobe
einen Treiber nachladen.
/usr/sbin/modprobe nct6775 nct6775 nachgeladen
Danach hat z.B. sensors
neben der Drehzahl,
noch Spannungen angezeigt.
Bei vielen Werten muß man das aber in Frage stellen,
da das offensichtlich nicht passen kann (z.B. -128°C bis 117°C)
Guckt man in /etc/sensors3.conf
findet man nicht den NCT6792D, aber den NCT6775.
cat /etc/sensors3.conf custom configuration files located in /etc/sensors.d … chip "w83627ehf-*" "w83627dhg-*" "w83667hg-*" "nct6775-*" "nct6776-*" \ "nct6779-*" "nct6791-*" "nct6795-*" "nct6796-*" label in0 "Vcore" 0.400 .. 0.69 label in2 "AVCC" 3.424 3.440 label in3 "+3.3V" 3.408 3.424 label in7 "3VSB" 3.424 label in8 "Vbat" 3.280 3.296
Die ergänzten Spannungswerte stammen aus sensors -u
.
Leider habe ich nur bei einigen Spannungen mehrere Werte
bei unterschiedlicher Belastung messen können.
Laut hisevilness.com
AMD Ryzen 5 2600 overclocking guide
bewegt sich der empfohlene Spannungsbereich zwischen 1.300 und 1.350 V.
→ 0.400 ≙ 1.3 V; 0.688 ≙ 1.35 V
→ Steigung: 50 / 288; Offsett: 1.23
Da noch keine sichtbare Datei in /etc/sensors.d
existiert,
habe ich eine neue angelegt.
su nano /etc/sensors.d/additional.conf chip "nct6792-*" # ausgelesen mit sensors -u label in0 "Vcore" ignore in1 label in2 "AVcc" label in3 "v3" ignore in4 ignore in5 label in6 "v6" label in7 "3V_SB" label in8 "VBat" label in9 "v9" label in10 "v10" label in11 "v11" label in12 "v12" label in13 "v13" ignore in14 label fan2 "CPU" # 1319..1925 label temp1_input "Sys118" # geht nicht label temp2_input "CPU-63" label temp4_input "Aux107" label temp5_input "Aux108" label temp6_input "-" compute in0 @ * (25/144) + 1.23, (@ - 1.23) * (144 / 25) set in0_min 1.29 # 0.400 0.408 0.472 0.608 0.632 0.640 set in0_max 1.36 # 0.648 0.656 0.664 0.672 0.688 set in2_min 3.08 # 3.424 3.440 set in2_max 3.78 # set in3_min 3.07 # 3.408 3.424 set in3_max 3.77 # set in6_min 0.56 # 0.624 0.632 0.640 0.648 0.656 0.664 0.672 set in6_max 0.84 # 0.680 0.712 0.720 0.736 0.744 0.760 0.768 set in7_min 3.08 # 3.424 set in7_max 3.77 # set in8_min 2.95 # 3.280 3.296 set in8_max 3.61 # set in9_min 1.65 # 1.832 1.840 set in9_max 2.02 # set in10_min 0.17 # 0.184 0.192 0.200 set in10_max 0.21 # set in11_min 0.12 # 0.128 0.136 0.144 0.152 set in11_max 0.16 # set in12_min 1.45 # 1.616 1.624 1.632 1.648 1.656 1.680 set in12_max 1.94 # 1.688 1.712 1.720 1.736 1.744 1.752 set in13_min 0.15 # 1.680 1.688 set in13_max 1.86 # sensors -s aktualisiert die set Werte
Exemplarisch habe ich damit in0 = Vcore
korrigiert
und den Alarm für die Spannungen geändert.
Nach der Installation von lm-sensors
holt man sich gewöhlich
auch eine Fehlermeldung mit auf den Schirm.
Und zwar immer dann, wenn man den Bildschirm entsperrt.
Da ich die Temperatur nicht benötige, kann ich in
Psensor > Preferences > Blatt: Providers > Abschnitt: Hard disk drive > udisk2
die Unterstützung abschalten.
Nach einem Neustart sollte die Fehlermeldung verschwunden sein.
kernel.org
Lm_sensors - Linux hardware monitoring
linuxhint.com
How to Check CPU Temperature in Linux
phoenixnap.com
How to Check CPU Temperature on Linux
pinguin.gws2.de
Ubuntu: Temperaturen des Systems anzeigen - Diagnosetool
cyberciti.biz
Linux Read CPU Temperature Sensor Chip Data Including Voltage and Fan Speed With lm-sensors
wpitchoune.net
psensor is a graphical hardware temperature monitor for Linux
web.archive.org
How to figure out the voltage labels and scaling factors
die.net
sensors.conf(5) - Linux man page
nuvoton.com
LPC Super I/O for Desktop & Server - NCT6792D-A
pcgameshardware.de
Spannung beim Ryzen 5 2600
Zum Anfang
Als schnell zu installierenden Test meiner passiven Radeon HD6450
habe ich nur glxgears
gefunden.
Dabei ist die Frame-Anzahl nicht so wichtig.
Wichtiger ist jedoch, das die Grafik-Karte bei hohen Temperaturen
noch stabil läuft und die Temperatur sich auf ein bestimmtes Niveau einpendelt.
su apt install mesa-utils exit glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. 305 frames in 5.0 seconds = 60.907 FPS 301 frames in 5.0 seconds = 60.004 FPS
Im 2. Terminal-Fenster habe ich die Temperatur-Messung gestartet.
watch sensors radeon-pci-2600 Every 2.0s: sensors radeon-pci-2600 b41: Wed Jan 5 18:50:58 2022 radeon-pci-2600 Adapter: PCI adapter temp1: +68.5°C (crit = +120.0°C, hyst = +90.0°C)
Nach etwa 30 Minuten ist die Temperatur von 54°C auf 67°C gestiegen.
Den "Screenshot" habe ich übrigens via Ctrl-Shift-A Ctrl-Shift-C gemacht. 18:15
Programme wie gputest
oder glmark2
sind in Synaptic unter DEB 10 nicht zu finden.
maketecheasier.com
How to Stress Test a Graphics Card on Linux
Zum Anfang
wikipedia.org
SMART steht für Self-Monitoring, Analysis and Reporting Technology und
steht eigentlich bei allen heutigen Platten zur Verfügung.
Die wichtigsten Parameter des Kommandos smartctl
sind folgende.
Um die Festplatten zu überprüfen gibt es smartmontools
, welches zunächst installiert wird.
Dann suche ich mit fdisk
die zu überprüfende Festplatte heraus und starte den Test.
su apt install smartmontools fdisk -l bis deb 9 /sbin/fdisk -l ab deb 10 Disk /dev/nvme0n1: 447.1 GiB, 480103981056 bytes, 937703088 sectors … Disk /dev/sda: 2,7 TiB, 3000592982016 bytes, 5860533168 sectors …
Beim ersten Laufwerk handelt es sich um eine M2 PCI SSD
und beim zweiten Laufwerk um eine klassische, über S-ATA angeschlossene, Festplatte.
su smartctl -i /dev/sda bis deb 9 bash: smartctl: command not found ab deb 10 whereis smartctl ab deb 10 smartctl: /usr/sbin/smartctl /usr/share/man/man8/smartctl.8.gz /usr/sbin/smartctl -i /dev/sda ab deb 10 smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-15-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate NAS HDD Device Model: ST3000VN000-1H4167 Serial Number: Z300HMZ3 LU WWN Device Id: 5 000c50 063922d0d Firmware Version: SC42 User Capacity: 3.000.592.982.016 bytes [3,00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5900 rpm Form Factor: 3.5 inches Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-2, ACS-3 T13/2161-D revision 3b SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Sun Apr 11 19:29:22 2021 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled
Ist dies die gewünschte Platte, kann man mit den eigentlichen Test anfangen.
su /usr/sbin/smartctl -s on /dev/sda ab deb 10 smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-14-amd64] (local build) Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org === START OF ENABLE/DISABLE COMMANDS SECTION === SMART Enabled. smartctl -t long /dev/sda bis deb 9 /usr/sbin/smartctl -t long /dev/sda ab deb 10 smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-15-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Extended self-test routine immediately in off-line mode". Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 448 minutes for test to complete. Test will complete after Mon Apr 12 03:15:40 2021 Use smartctl -X to abort test.
Wie man sieht, benötigt dieser Test beachtlich viel Zeit (ca. 7,5 Stunden).
Man könnte nun ab und zu gucken ob der Test schon abgeschlossen ist mit folgenden Befehl.
su smartctl -l selftest /dev/sda bis deb 9 /usr/sbin/smartctl -l selftest /dev/sda ab deb 10 smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-15-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Self-test routine in progress 30% 6968 - # 2 Extended offline Completed without error 00% 2716 - # 3 Extended offline Completed without error 00% 13 -
Irgendwann ist der Test abgeschlossen und man möchte das Ergebnis sehen.
Sinnvoll ist es, mindestens Jährlich, diesen Test zu durchlaufen und
die Ergebnisse in eine Datei zu speichern.
su smartctl -a /dev/sda bis deb 9 /usr/sbin/smartctl -a /dev/sda ab deb 10 smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-15-amd64] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate NAS HDD Device Model: ST3000VN000-1H4167 Serial Number: Z300HMZ3 LU WWN Device Id: 5 000c50 063922d0d Firmware Version: SC42 User Capacity: 3.000.592.982.016 bytes [3,00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5900 rpm Form Factor: 3.5 inches Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-2, ACS-3 T13/2161-D revision 3b SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Mon Apr 12 09:21:26 2021 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x82) Offline data collection activity was completed without error. Auto Offline Data Collection: Enabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 128) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 448) minutes. Conveyance self-test routine recommended polling time: ( 2) minutes. SCT capabilities: (0x10bd) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 116 099 006 Pre-fail Always - 108431584 3 Spin_Up_Time 0x0003 092 091 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 629 5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 074 060 030 Pre-fail Always - 28099755 9 Power_On_Hours 0x0032 093 093 000 Old_age Always - 6977 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 627 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 188 Command_Timeout 0x0032 100 099 000 Old_age Always - 1 189 High_Fly_Writes 0x003a 001 001 000 Old_age Always - 263 190 Airflow_Temperature_Cel 0x0022 065 055 045 Old_age Always - 35 (Min/Max 22/38) 191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 24 193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 629 194 Temperature_Celsius 0x0022 035 045 000 Old_age Always - 35 (0 17 0 0 0) 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Completed without error 00% 6970 - # 2 Extended offline Completed without error 00% 2716 - # 3 Extended offline Completed without error 00% 13 - SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
Die Interpretation der Daten ist leider ein wenig schwierig…
Laut Wiki sollte zumindest die Anzahl der Start- und Stop-Vorgänge minimiert werden
und der Temperaturbereich eingehalten werden.
Ich persönlich hatte bisher nur einen einzigen Hardware-Ausfall (innerhalb der ersten Monate).
In den meisten Fällen waren es unter Windows amok gelaufene Programme, schlechte Treiber, etc.
Also Software-Fehler…
Unabhängig davon, würde ich immer NAS-Laufwerke (konzipiert für den Dauereinsatz) empfehlen.
Zum Anfang
Bei einer SSD Force MP510 habe ich folgende Meldung bekommen
Read NVMe SMART/Health Information failed: NVMe Status 0x2002
.
Eine Möglichkeit ist es, sich unter
smartmontools.org
die aktuellsten Platten-Daten runter zu laden und die aktuelle Datei (bei DEB 10 von 2018) auszutauschen.
su cp /home/a1/Downloads/drivedb.h /var/lib/smartmontools/drivedb/
Leider war meine SSD dort auch noch nicht enthalten.
Für diesen Fall gibt es die Möglichkeit einen Bericht zu erstellen. Siehe…
smartmontools.org
My ATA/SATA drive is not in the smartctl/smartd database
Zum Anfang
Eine einfache Möglichkeit die Lesegeschwindigkeit einer Platte unter Umgehung des Caches zu testen,
ist mehrmals (2 - 3 Mal laut man
) hdparm
aufzurufen.
sudo apt install hdparm hddtemp /usr/sbin/fdisk -l Disk /dev/nvme0n1: 447.1 GiB, 480103981056 bytes, 937703088 sectors Disk model: Force MP510 … Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors Disk model: ST3000VN000-1HJ1 … Disk /dev/sdb: 7.5 GiB, 8027897856 bytes, 15679488 sectors Disk model: DataTraveler 2.0 sudo /usr/sbin/hdparm --direct -tT /dev/sda /dev/sda: Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.12 MB/sec Timing O_DIRECT disk reads: 536 MB in 3.00 seconds = 178.50 MB/sec /usr/sbin/hddtemp /dev/sda /dev/sda: ST3000VN000-1HJ166: 35°C
Damit habe ich zumindest einen optimal erreichbaren Wert ermittelt.
Je nachdem wie geschickt ich bei der
Partitionierung war,
komme ich unterschiedlich nah an diesen theoretischen Wert ran.
df -h Filesystem Size Used Avail Use% Mounted on … /dev/nvme0n1p1 28G 11G 16G 41% / /dev/nvme0n1p6 396G 204G 173G 55% /home /dev/sda3 2.7T 1.3T 1.3T 49% /mnt/sda3 cd /mnt/sda3/a0/ sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.550016 s, 2.0 GB/s sync; dd if=/dev/urandom of=tempfile bs=1M count=1024; sync 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 15.2704 s, 70.3 MB/s dd if=tempfile of=/dev/null bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.11175 s, 9.6 GB/s sudo sync && /sbin/sysctl -w vm.drop_caches=3 vm.drop_caches = 3 dd if=tempfile of=/dev/null bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.26363 s, 171 MB/s rm tempfile sudo systemctl reboot
Man sieht schön, dass wenn man den Cache nicht ausschaltet, kommen da fantastische Werte heraus.
Und die Schreibrate wird wesentlich vom zu schreibenen Inhalt bestimmt.
Schreibe ich Zufallszahlen wird die CPU beansprucht
und das Laufwerk kann schlecht komprimieren.
Schreibe ich Nullen, hat die CPU nicht viel zu tun, aber das Laufwerk könnte optimieren.
Nach dem Test reboote ich, weil ich an Kernel-Variablen gedreht habe.
Nun habe ich eine SSD Corsair MP510, welche bestimmte Dateien kriechend langsam liest.
Der folgende Befehl läßt sich leider nur auf SATA-SSDs anwenden.
Bei einer PCIe M2 SSD bekomme ich eine Fehlermeldung.
su /usr/sbin/hdparm -I /dev/nvme0n1 | grep -i TRIM HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device sudo /usr/sbin/hdparm -I /dev/sda | grep -i TRIM * Data Set Management TRIM supported (limit 8 blocks) * Deterministic read ZEROs after TRIM
thomas-krenn.com
Test mit smartctl
smartmontools.org
smartmontools
ubuntuusers.de
Festplatten-Geschwindigkeitstest
shellhacks.com
Disk Speed Test (Read/Write): HDD, SSD Performance in Linux
stackpointer.io
Linux: Clear Memory Cache
cyberciti.biz
How to reload sysctl.conf variables on Linux
stackexchange.com
Slow USB 3 write speed
blackmoreops.com
USB and SSD drive speedtest in Linux
https://wiki.ubuntuusers.de/SSD/TRIM/
Zum Anfang
Beim Übertragen von Daten via USB-Stick benutze ich möglichst unter Windows den Totalcommander
und unter Linux das Programm Krusader.
Der Hintergrund ist der, dass beide Programme die Möglichkeiten einer Datei-Synchronisation nach Inhalt,
statt nach Datum und Dateilänge, ermöglichen.
Leider gab es speziell bei den Wechseldatenträgern z.B. USB-Speicher, SD-Cards, etc.
Betrugsversuche, sodaß dagegen in der Windows-Welt das Programm H2testw
entwickelt wurde.
Es beschreibt den Speicher so weit wie möglich und misst die Schreibgeschwindigkeit.
Danach wird das geschriebene gelesen und überprüft.
Man bekommt also nebenbei noch ganz wertvolle Informationen.
Das Pendant in der Linux-Welt ist F3
- Fight Flash Fraud.
Es besteht aus f3write
, welches 1 GB Dateien mit Namen N.h2w auf den Datenträger schreibt
und f3read
um diese Dateien zu überprüfen.
WARNUNG: alle Daten auf den zu schreibenden Medium können verloren gehen!
Nachdem ein externes Speichermedium z.B. via Thunar gemounted wurde,
kann f3write
mit den Pfad zum Speichermedium gestartet werden.
Hier z.B. /media/a1/AIR/
.
sudo apt install f3 f3write /media/a1/AIR/ F3 write 7.1 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. Free space: 7.46 GB Creating file 1.h2w ... OK! Creating file 2.h2w ... OK! Creating file 3.h2w ... OK! Creating file 4.h2w ... OK! Creating file 5.h2w ... OK! Creating file 6.h2w ... OK! Creating file 7.h2w ... OK! Creating file 8.h2w ... OK! Free space: 0.00 Byte Average writing speed: 11.94 MB/s
Die Überprüfung findet auf ähnliche art und weise statt.
f3read /media/a1/AIR/ F3 read 7.1 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. SECTORS ok/corrupted/changed/overwritten Validating file 1.h2w ... 2097152/ 0/ 0/ 0 Validating file 2.h2w ... 2097152/ 0/ 0/ 0 Validating file 3.h2w ... 2097152/ 0/ 0/ 0 Validating file 4.h2w ... 2097152/ 0/ 0/ 0 Validating file 5.h2w ... 2097152/ 0/ 0/ 0 Validating file 6.h2w ... 2097152/ 0/ 0/ 0 Validating file 7.h2w ... 2097152/ 0/ 0/ 0 Validating file 8.h2w ... 955424/ 0/ 0/ 0 Data OK: 7.46 GB (15635488 sectors) Data LOST: 0.00 Byte (0 sectors) Corrupted: 0.00 Byte (0 sectors) Slightly changed: 0.00 Byte (0 sectors) Overwritten: 0.00 Byte (0 sectors) Average reading speed: 24.30 MB/s
Warum auch immer, hatte ich Schwierigkeiten mit den unten genannten µSD-Cards.
Weder der Delock 91704 USB3.0 Reader noch der Transcend TS-RDF9K konnten die µSD anzeigen.
Bezeichnung | Platz | Schreibgeschw. | Lesegeschw. | Adapter |
---|---|---|---|---|
SanDisk Ultra Plus UHS-I Card, up to 150 MB/s V10 A1 C10 SDSQUBC-128G-GN6MA |
119 GB | 8,73 MB/s | 20,14 MB/s | Lexar Card Reader LRWM01U-7000 Rev C |
SanDisk Extreme UHS-I Card, up to 170 MB/s V30 A2 U3 SDSQXAH-064G-GN6AA |
59 GB | 11,02 MB/s | 19,36 MB/s | Lexar Card Reader LRWM01U-7000 Rev C |
SanDisk Extreme III, C6 BH0835111730D |
3,77 GB | 20,25 MB/s 16,5 MB/s |
Lesefehler 11,17 MB/s 18.4 MB/s |
Transcend TS-RDF9K Delock 91443 H2testw 1.4 |
Zum Anfang
heise.de
H2testw 1.4 - Speicher und Speed-Test von nicht volatilen Medien
wordpress.com
testing-sd-cards-with-linux
linuxreviews.org
HOWTO_test_SD_cards_and_identify_fake_ones_(mostly_sold_on_ebay) - f3write, f3read
github.com
AltraMayor f3 - f3write, f3read, f3probe, f3fix
linux-usb.org
USB Testing on Linux - testusb, usbtree
giga.de
USB-Stick: Geschwindigkeit testen – so geht's
blogspot.com
Increase USB Flash Drive Write Speed - alignment
linuxhint.com
List USB Devices Linux