Schlechte E / A-Leistung - PCIe NVMe Samsung 950 pro

20

Ich habe gerade einen Hardware-Build fertiggestellt, der einen großen Gewinn von dem neuen NVMe-Laufwerk erwartet. Meine vorherige Leistung war geringer als erwartet (~ 3 GB übertragen), daher habe ich die Hauptplatine / CPU / Speicher / Festplatte ersetzt. Während der Leistung ist doppelt so hoch wie war , ist es immer noch die Hälfte , was ich auf meinem 3 Jahre alten macbook pro mit einer SATA6 Platte.

  • CPU: i7-5820k 6core
  • Mobo: MSI X99A MPOWER
  • Speicher: 32 GB
  • Laufwerk: Samsung 950 Pro NVMe PCIe

Ubuntu (auch bestätigt mit 16.04.1 LTS):

Release:    15.10
Codename:   wily

4.2.0-16-generic

$ sudo blkid
[sudo] password for kross: 
/dev/nvme0n1p4: UUID="2997749f-1895-4581-abd3-6ccac79d4575" TYPE="swap"
/dev/nvme0n1p1: LABEL="SYSTEM" UUID="C221-7CA5" TYPE="vfat"
/dev/nvme0n1p3: UUID="c7dc0813-3d18-421c-9c91-25ce21892b9d" TYPE="ext4"

Hier sind meine Testergebnisse:

sysbench --test=fileio --file-total-size=128G prepare
sysbench --test=fileio --file-total-size=128G --file-test-mode=rndrw --max-time=300 --max-requests=0 run
sysbench --test=fileio --file-total-size=128G cleanup


Operations performed:  228000 Read, 152000 Write, 486274 Other = 866274 Total
Read 3.479Gb  Written 2.3193Gb  Total transferred 5.7983Gb  (19.791Mb/sec)
 1266.65 Requests/sec executed

Test execution summary:
    total time:                          300.0037s
    total number of events:              380000
    total time taken by event execution: 23.6549
    per-request statistics:
         min:                                  0.01ms
         avg:                                  0.06ms
         max:                                  4.29ms
         approx.  95 percentile:               0.13ms

Threads fairness:
    events (avg/stddev):           380000.0000/0.00
    execution time (avg/stddev):   23.6549/0.00

Der Scheduler ist eingestellt auf none:

# cat /sys/block/nvme0n1/queue/scheduler
none

Hier ist die lspciInformation:

# lspci -vv -s 02:00.0
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a802 (rev 01) (prog-if 02 [NVM Express])
    Subsystem: Samsung Electronics Co Ltd Device a801
    Physical Slot: 2-1
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 45
    Region 0: Memory at fb610000 (64-bit, non-prefetchable) [size=16K]
    Region 2: I/O ports at e000 [size=256]
    Expansion ROM at fb600000 [disabled] [size=64K]
    Capabilities: [40] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
        Address: 0000000000000000  Data: 0000
    Capabilities: [70] Express (v2) Endpoint, MSI 00
        DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
        DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
            RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
        LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L0s <4us, L1 <64us
            ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
        LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta: Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR+, OBFF Not Supported
        DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
        LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+, EqualizationPhase1+
             EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
    Capabilities: [b0] MSI-X: Enable+ Count=9 Masked-
        Vector table: BAR=0 offset=00003000
        PBA: BAR=0 offset=00002000
    Capabilities: [100 v2] Advanced Error Reporting
        UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
        UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
        CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
        CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
        AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
    Capabilities: [148 v1] Device Serial Number 00-00-00-00-00-00-00-00
    Capabilities: [158 v1] Power Budgeting <?>
    Capabilities: [168 v1] #19
    Capabilities: [188 v1] Latency Tolerance Reporting
        Max snoop latency: 0ns
        Max no snoop latency: 0ns
    Capabilities: [190 v1] L1 PM Substates
        L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
              PortCommonModeRestoreTime=10us PortTPowerOnTime=10us
    Kernel driver in use: nvme

hdparm:

$ sudo hdparm -tT --direct /dev/nvme0n1

/dev/nvme0n1:
 Timing O_DIRECT cached reads:   2328 MB in  2.00 seconds = 1163.98 MB/sec
 Timing O_DIRECT disk reads: 5250 MB in  3.00 seconds = 1749.28 MB/sec

hdparm -v:

 sudo hdparm -v /dev/nvme0n1

/dev/nvme0n1:
SG_IO: questionable sense data, results may be incorrect
 multcount     =  0 (off)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 488386/64/32, sectors = 1000215216, start = 0

fstab

UUID=453cf71b-38ca-49a7-90ba-1aaa858f4806 /               ext4    noatime,nodiratime,errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
#UUID=C221-7CA5  /boot/efi       vfat    defaults        0       1
# swap was on /dev/sda4 during installation
UUID=8f716653-e696-44b1-8510-28a1c53f0e8d none            swap    sw              0       0
UUID=C221-7CA5  /boot/efi       vfat    defaults        0       1

fio

Dies hat einige vergleichbare Benchmarks es ist weit weg. Als ich mit fio und disabled getestet habe sync, ist das eine andere Geschichte:

sync=1
1 job  - write: io=145712KB, bw=2428.5KB/s, iops=607, runt= 60002msec
7 jobs - write: io=245888KB, bw=4097.9KB/s, iops=1024, runt= 60005msec

sync=0
1 job  - write: io=8157.9MB, bw=139225KB/s, iops=34806, runt= 60001msec
7 jobs - write: io=32668MB, bw=557496KB/s, iops=139373, runt= 60004msec

Hier sind die vollständigen syncErgebnisse für einen Job und 7 Jobs:

$ sudo fio --filename=/dev/nvme0n1 --direct=1 --sync=1 --rw=write --bs=4k --numjobs=1 --iodepth=1 --runtime=60 --time_based --group_reporting --name=journal-test
journal-test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=1
fio-2.1.11
Starting 1 process
Jobs: 1 (f=1): [W(1)] [100.0% done] [0KB/2368KB/0KB /s] [0/592/0 iops] [eta 00m:00s]
journal-test: (groupid=0, jobs=1): err= 0: pid=18009: Wed Nov 18 18:14:03 2015
  write: io=145712KB, bw=2428.5KB/s, iops=607, runt= 60002msec
    clat (usec): min=1442, max=12836, avg=1643.09, stdev=546.22
     lat (usec): min=1442, max=12836, avg=1643.67, stdev=546.23
    clat percentiles (usec):
     |  1.00th=[ 1480],  5.00th=[ 1496], 10.00th=[ 1512], 20.00th=[ 1528],
     | 30.00th=[ 1576], 40.00th=[ 1592], 50.00th=[ 1608], 60.00th=[ 1608],
     | 70.00th=[ 1608], 80.00th=[ 1624], 90.00th=[ 1640], 95.00th=[ 1672],
     | 99.00th=[ 2192], 99.50th=[ 6944], 99.90th=[ 7328], 99.95th=[ 7328],
     | 99.99th=[ 7520]
    bw (KB  /s): min= 2272, max= 2528, per=100.00%, avg=2430.76, stdev=61.45
    lat (msec) : 2=98.44%, 4=0.58%, 10=0.98%, 20=0.01%
  cpu          : usr=0.39%, sys=3.11%, ctx=109285, majf=0, minf=8
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.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.0%, >=64=0.0%
     issued    : total=r=0/w=36428/d=0, short=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: io=145712KB, aggrb=2428KB/s, minb=2428KB/s, maxb=2428KB/s, mint=60002msec, maxt=60002msec

Disk stats (read/write):
  nvme0n1: ios=69/72775, merge=0/0, ticks=0/57772, in_queue=57744, util=96.25%

$ sudo fio --filename=/dev/nvme0n1 --direct=1 --sync=1 --rw=write --bs=4k --numjobs=7 --iodepth=1 --runtime=60 --time_based --group_reporting --name=journal-test
journal-test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=1
...
fio-2.1.11
Starting 7 processes
Jobs: 6 (f=6): [W(2),_(1),W(4)] [50.4% done] [0KB/4164KB/0KB /s] [0/1041/0 iops] [eta 01m:00s]
journal-test: (groupid=0, jobs=7): err= 0: pid=18025: Wed Nov 18 18:15:10 2015
  write: io=245888KB, bw=4097.9KB/s, iops=1024, runt= 60005msec
    clat (usec): min=0, max=107499, avg=6828.48, stdev=3056.21
     lat (usec): min=0, max=107499, avg=6829.10, stdev=3056.16
    clat percentiles (usec):
     |  1.00th=[    0],  5.00th=[ 2992], 10.00th=[ 4512], 20.00th=[ 4704],
     | 30.00th=[ 5088], 40.00th=[ 6176], 50.00th=[ 6304], 60.00th=[ 7520],
     | 70.00th=[ 7776], 80.00th=[ 9024], 90.00th=[10048], 95.00th=[12480],
     | 99.00th=[15936], 99.50th=[18048], 99.90th=[22400], 99.95th=[23936],
     | 99.99th=[27008]
    bw (KB  /s): min=  495, max=  675, per=14.29%, avg=585.60, stdev=28.07
    lat (usec) : 2=4.41%
    lat (msec) : 2=0.57%, 4=4.54%, 10=80.32%, 20=9.92%, 50=0.24%
    lat (msec) : 250=0.01%
  cpu          : usr=0.14%, sys=0.72%, ctx=173735, majf=0, minf=63
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.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.0%, >=64=0.0%
     issued    : total=r=0/w=61472/d=0, short=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: io=245888KB, aggrb=4097KB/s, minb=4097KB/s, maxb=4097KB/s, mint=60005msec, maxt=60005msec

Disk stats (read/write):
  nvme0n1: ios=21/122801, merge=0/0, ticks=0/414660, in_queue=414736, util=99.90%

Ausrichtung

Ich habe die Ausrichtung mit überprüft parted, sowie die Mathematik basierend auf http://www.intel.com/content/dam/www/public/us/en/documents/technology-briefs/ssd-partition-alignment-tech -brief.pdf

kross@camacho:~$ sudo parted
GNU Parted 3.2
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s                                                           
(parted) print all                                                        
Model: Unknown (unknown)
Disk /dev/nvme0n1: 1000215216s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start       End          Size        File system     Name                                 Flags
 1      2048s       206847s      204800s     fat32           EFI system partition                 boot, esp
 2      206848s     486957055s   486750208s  ntfs                                                 msftdata
 3      486957056s  487878655s   921600s     ntfs                                                 hidden, diag
 4      590608384s  966787071s   376178688s  ext4
 5      966787072s  1000214527s  33427456s   linux-swap(v1)

kross@camacho:~$ sudo parted /dev/nvme0n1
GNU Parted 3.2
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) align-check opt 1                                                
1 aligned
(parted) align-check opt 2
2 aligned
(parted) align-check opt 3
3 aligned
(parted) align-check opt 4
4 aligned
(parted) align-check opt 5
5 aligned

TLDR;

Ich habe das Gefühl, dass ich etwas grundlegend Falsches eingestellt habe, obwohl meine Forschung nichts ergeben hat. Ich erwarte einen Durchsatz von ca. 4x für mein 3 Jahre altes MacBook Pro mit SATA6 und erhalte die Hälfte davon mit NVMe. Ich fügte hinzu, noatime,nodiratimewas mir eine kleine Verbesserung brachte, aber nichts wie das 4x, das ich erwarte. Ich habe den 15.10-Server neu partitioniert / neu installiert, nur um sicherzugehen, dass ich nichts mehr hatte und die gleichen Ergebnisse erzielt habe.

fioZeigen meine Ergebnisse über Synchronisierung / keine Synchronisierung ein Problem an?

Also ich habe einen sauberen Schiefer und kann alles probieren. Was kann ich versuchen, um meine Leistung auf das gleiche Niveau zu bringen? Referenzen sind willkommen.

kross
quelle
Was ist die Ausgabe von smartctl --scanund smartctl --all /dev/xxxwo xxxist dann was auch immer im ersten Befehl aufgetaucht ???
Fabby
@ Fabby apt-get install smartmontoolsschlägt fehl mit grub-probe: error: cannot find a GRUB drive for /dev/nvme0n1p3. Check your device.map.. Es scheint (basierend auf meinen Bemühungen), dass update-grubes aufgrund eines grub-probeFehlers nicht gut funktioniert . smartctl -i /dev/nvme0n1kehrt /dev/nvme0n1: Unable to detect device type. Please specify device type with the -d option. NVMe in der erscheint nicht smartctl -hals Gerätetyp.
Kross
Was ist die Ausgabe von uname --kernel-release&&lsb_release --code --short???
Fabby
4.2.0-16-generic wily
Kross
Ich könnte völlig falsch liegen und ich kann die Quelle derzeit nicht finden, aber da ich es mir vorstelle, brauchst du einen SkylakeProzessor, um diese SSDs mit voller Geschwindigkeit laufen zu lassen ...
wawa

Antworten:

5

Vielen Dank für Ihre Frage, es war unglaublich hilfreich für mich.

Ich habe eine sehr ähnliche Erfahrung, unterschiedliche Hardwareeinstellungen (ich verwende eine Intel NVMe SSD). Ich verwende aber auch Ubuntu 16.04. Angesichts Ihrer Beweise und eines ähnlichen Ergebnisses in diesem Artikel war ich überzeugt, dass das Problem darin bestand, wie Ubuntu die NVMe-Laufwerke einrichtete.

Ich war entschlossen, das Problem zu lösen, ohne Ubuntu vollständig aufzugeben. Aber egal was ich tat, ich war nicht in der Lage, Geschwindigkeiten über 2000 MB / s zu erreichen, wenn ich mit hdparm genau so testete, wie Sie es beschrieben haben.

Also grub ich ein bisschen und fand eine Anleitung von Intel. Ich habe alles ausprobiert, was in diesem Handbuch vorgeschlagen wurde, und festgestellt, dass ein Teil anders war. Im unteren Bereich werden die korrekten Ausrichtungen der Laufwerkpartitionen erläutert. Dies ist der Teil, der nicht mit meiner Installation übereinstimmt. Mein Startblock war nicht durch 4096 Bytes teilbar. Es wurde eine Sektorgröße von 512 Byte anstelle einer Sektorgröße von 4 KB verwendet.

Sicher genug, ich habe die Festplatte formatiert, um die Partition mit einem durch 4096 teilbaren Wert zu starten, und ENDLICH konnte ich Geschwindigkeiten von 2000 MB / s erreichen.

Im Moment sind es durchschnittlich 2,3 GB / s, wenn ich davon ausgehe, dass es etwas höher ist. Ich sudo fdisk -ltadele dies damit, dass beim Ausführen des NVMe-Laufwerks immer noch eine physische Sektorgröße von 512 Bytes angezeigt wird. Ich habe vor, die Ermittlungen fortzusetzen, aber ich hoffe, das hilft Ihnen!

cwoodwar6
quelle
Danke, ich werde meine Ausrichtung noch einmal überprüfen. Ich weiß, dass ich das irgendwann untersucht habe, aber es lohnt sich auf jeden Fall, mit diesen Informationen einen neuen Blick darauf zu werfen.
Kross
Ich habe die Frage mit meiner Ausrichtung aktualisiert. partedsagt, es ist ausgerichtet, basierend auf der 512-Blockgröße, aber es ist nicht teilbar durch 4096. Also möchte ich nur bestätigen: Ihre Sektorgröße bleibt bei 512 und das einzige, was Sie getan haben, ist, die Partition an einem durch 4096 teilbaren Ort zu starten , richtig?
Kross
Gute Erklärung: blog.kihltech.com/2014/02/…
kross
1
Ugh, was soll ich jetzt mit meiner vorhandenen Festplatte machen ... versuchen Sie, die Größe zu ändern / zu verschieben, oder dd, hmmm, nicht sicher. In der Tat scheint dies die Hauptursache zu sein.
Kross
5

Achtung: Diese Antwort ist alt. Ab Linux 4.19 ist blk_mq der Standard-Scheduler . Es ist sehr wahrscheinlich, dass sich das Problem für Ihre PCIe NVMe SSD, die langsame Stems ausführt, an einer anderen Stelle ergibt.

Ursprüngliche Antwort:

Bitte hinzufügen

scsi_mod.use_blk_mq=1

Ansonsten glaube ich nicht, dass Sie die Vorteile der erhöhten Befehlswarteschlange und der Befehle pro Warteschlange von NVMe sehen werden.

Hinweis: Ich weiß, dass es für Arch ist, aber vielleicht möchten Sie auch das Wiki besuchen, um weitere Informationen zum Optimieren von I / O zu erhalten.

DarthRevan13
quelle
2
Vielen Dank für das Hinzufügen, ich habe es auf Ubuntu 16.04.1 LTS ausprobiert und keinen Unterschied festgestellt. Ich hatte große Hoffnung, aber leider hat sich daran nichts geändert.
Kross
2
Das gleiche gilt für mich, kein merklicher Unterschied in der Leistung von HDParm-Benchmarks.
wordsforthewise
Gleiche für mich. Ich habe meine Antwort unten aktualisiert und eine Verringerung der Startgeschwindigkeit um 1 Sekunde festgestellt.
WinEunuuchs2Unix
3

Dieser Thread ist ein Jahr alt (Oktober 2016). Eine der am höchsten bewerteten Antworten empfiehlt einen Intel NVMe-Treiber, der zwei Jahre alt ist (2015).

Im Februar 2017 veröffentlichte Samsung ein Firmware-Update , das ein Linux-basiertes Boot-ISO-Installationsprogramm verwendet. Unter demselben Link finden Sie Treiber, die Sie für Windows 7/8/10 installieren können. Ich werde in Kürze sowohl mein neues Samsung 960 Pro als auch einen brandneuen Dell-basierten i7-6700-Laptop installieren. Zusammen mit dem Flashen des BIOS und dem Aktualisieren anderer Dell-basierter Treiber.

Ich denke, es ist wichtig, diese alten Threads erneut zu besuchen und neuen Benutzern aktuelle Links (auf jeden Fall ab dem 11. Oktober 2017) zur Verfügung zu stellen, damit sie alle Optionen offen haben.

Unter Linux gibt es viele Google-Suchanfragen, die auf eine langsame Leistung von Samsung 960 Pro abzielen, die nur halb so schnell ist wie Windows. Ich empfehle daher jedem, so viele Optionen wie möglich zu finden.


Nach der Implementierung des scsi_mod.use_blk_mq=1Kernel-Parameters:

$ systemd-analyze
Startup finished in 7.052s (firmware) + 6.644s (loader) + 2.427s (kernel) + 8.440s (userspace) = 24.565s

Entfernen des Kernel-Parameters und Neustart:

$ systemd-analyze
Startup finished in 7.060s (firmware) + 6.045s (loader) + 2.712s (kernel) + 8.168s (userspace) = 23.986s

Es scheint also, dass scsi_mod.use_blk_mq=1das System langsamer und nicht schneller wird. Zu einer Zeit mag es jedoch von Vorteil gewesen sein.

WinEunuuchs2Unix
quelle
Nur zu Ihrer Information: Zu einem bestimmten Zeitpunkt verlangsamte das Aktivieren von SCSI-Multiqueue zwar bestimmte Geräte, es wurden jedoch verschiedene Probleme behoben. Ab dem Kernel v4.19 aktiviert Linux standardmäßig scsi-mq . Hinweis: Mir ist nicht klar, ob diese Option Auswirkungen auf NVMe-Laufwerke hat (im Gegensatz zu SCSI / SATA-Laufwerken).
Anon
1

Hier einige interessante Informationen: Unter Windows wird das Laufwerk erst nach Deaktivierung der Cache-Leerung gemäß den Überprüfungs-Benchmarks ausgeführt. Normalerweise wird das nicht direkt gemacht; Stattdessen wird der Treiber des Herstellers (in diesem Fall Samsung NVMe-Treiber) installiert.

Wenn Sie einen Benchmark mit dem Treiber des Herstellers durchführen und anschließend das Leeren des Cache in Windows deaktivieren, erhalten Sie dieselben Zahlen. Dies ist wahrscheinlich nicht der Fall, wenn der Anbieter das Leeren des Caches nicht ignoriert.

Übersetzt in Linux-Land bedeutet dies, dass Sie unter Windows diese Leistung deaktivieren müssen fsync, um die großen Benchmark-Zahlen zu erhalten, die Sie in allen Überprüfungen sehen Ein Verlust zum falschen Zeitpunkt kann, abhängig von der Implementierung, den gesamten FS beschädigen (neu angeordnete Schreibvorgänge erzeugen "unmögliche" Situationen).

Die SSDs für "Rechenzentren" von Samsung sind mit Kondensatoren ausgestattet, um sicherzustellen, dass zwischengespeicherte Daten korrekt gelöscht werden. Dies ist bei ihren Consumer-Laufwerken nicht der Fall.

Ich habe dies gerade aus den ersten Prinzipien heraus heraus ausgearbeitet, nachdem ich gestern meinem neuen Build eine 1-TB-NVMe hinzugefügt habe. Ich bin nicht besonders glücklich und habe Kontakt mit dem Samsung-Support aufgenommen, um zu erfahren, was sie sagen - aber ich bezweifle, dass ich zurückhöre.

Barry Kelly
quelle
Haben sie etwas gesagt?
Csaba Toth
0

Da ich noch keinen Kommentar abgeben kann, muss ich antworten. :-(

Ich habe kein vergleichbares Laufwerk, aber ich würde vermuten, dass die Werte von hdparm in Ordnung sind. In diesem Fall würde ich davon ausgehen, dass Sie sysbench nur suboptimal verwenden. Versuchen Sie, mit dem Parameter --num-threads zu experimentieren, um das Laufwerk stärker zu belasten. Zumindest auf meinem Computer betrug der Unterschied zwischen 1 Thread (der Standardeinstellung) und 16 Threads auf einer Standard-SATA-SSD etwa 1: 4. Meines Wissens nach beginnen NVMe-Laufwerke zu leuchten, je mehr parallele Aufgaben sie belasten.

AlvaHenrik
quelle
Ich benutze es auf die gleiche Weise wie mbpro, und es ist die Hälfte der Leistung, was keinen Sinn ergibt.
Kross
Ich habe gerade einen fioTest mit 1 und 7 Threads hinzugefügt und einen Verweis auf eine Reihe von Benchmarks, die ihn als Basis verwenden.
Kross
0

Die meisten SSDs fallen flach ins Gesicht, wenn das Flag sync = 1 (D_SYNC) ist. Leider ist dies ein bekanntes Problem für Ceph-Zeitschriften. Auf dieser Seite finden Sie weitere Informationen und eine Liste der Laufwerke, die bei aktivierter Synchronisierung eine gute Leistung erbringen:

http://www.sebastien-han.fr/blog/2014/10/10/ceph-how-to-test-if-your-ssd-is-suitable-as-a-journal-device/

Labyrinth
quelle
Vielen Dank, aber ich habe diesen Artikel bereits oben unter der Überschrift " fio" referenziert, und Sie können anhand der Benchmarks erkennen, dass meine SSD Intel 750 NVMe 400GB 261 MB/s (1 job) 884 MB/s (5 jobs)bei der Synchronisierung eine weitaus geringere Leistung erbringt als die vorherige Generation Samsung XP941 256GB 2.5 MB/s (1 job) 5 MB/s (7 jobs). Es ist zwar bekannt, aber immer noch weniger, als es sein sollte.
Kross
0

Mein M.2-Steckplatz war auf 10 Mbit / s begrenzt. Ich habe einen PCIe-Adapter verwendet, um diese Einschränkung zu umgehen : https://www.amazon.com/Lycom-DT-120-M-2-PCIe-to-PCIe-3-0-x4-Adapter-Support-M-2 -PCIe-2280-2260-2242 / dp / B00MYCQP38 /

Ihr Motherboard sagt, dass es in beide Richtungen volle 32 Mbit / s liefert, und das stimmt vielleicht, aber ich dachte, ich würde den Adapter erwähnen, weil er für mich funktioniert (ich habe ungefähr die doppelte Geschwindigkeit beim Einstecken in den integrierten M.2-Steckplatz). Ich glaube, es waren 25 Dollar und wenn Sie schon genug Zeit damit verbracht haben, herumzuspielen, ist dies möglicherweise einen Versuch wert.

Ich schrieb über meine Erfahrungen in meinem Amazon-Test: https://www.amazon.com/gp/customer-reviews/R21BXILGXW4D9C/ref=cm_cr_arp_d_rvw_ttl?ie=UTF8&ASIN=B01639694M

GlenPeterson
quelle