[[+content_image]]
A
A
Alexander2019-01-13 02:23:22
Solid State Drives
Alexander, 2019-01-13 02:23:22

Why is SSD performance poor in Centos 7?

I decided to measure the performance of ssd (Samsung SSD 840 EVO 250GB)
There is an OS on the disk
Results:
[[email protected] test]# hdparm -t /dev/sde
/dev/sde:
Timing buffered disk reads: 146 MB in 3.17 seconds = 46.04 MB/ sec
Now the question is: why such low performance and where to dig?
OS: CentOS Linux release 7.2.1511 (Core)
[[email protected] test]# fdisk -l /dev/sde
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/sde: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
# Start End Size Type Name
1 2048 2000895 976M EFI System EFI System Partition
2 2000896 2975743 476M Microsoft basic
3 2975744 488396799 231,5G Linux LVM
[[email protected] test]# hdparm -I /dev/sde
/dev/sde:
ATA device, with non-removable media
Model Number: Samsung SSD 840 EVO 250GB
Serial Number: S1DBNSBF151834F
Firmware Revision: EXT0BB6Q
Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
Used: unknown (minor revision code 0x0039)
Supported: 9 8 7 6 5
Likely used: 9
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 488397168
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
Logical Sector-0 offset: 0 bytes
device size with M = 1024*1024: 238475 MBytes
device size with M = 1000*1000: 250059 MBytes (250 GB)
cache/buffer size = unknown
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 1 Current = 1
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* DOWNLOAD_MICROCODE
SET_MAX security extension
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* WRITE_{DMA|MULTIPLE}_FUA_EXT
* 64-bit World wide name
Write-Read-Verify feature set
* WRITE_UNCORRECTABLE_EXT command
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* Gen1 signaling speed (1.5Gb/s)
* Gen2 signaling speed (3.0Gb/s)
* Gen3 signaling speed (6.0Gb/s)
* Native Command Queueing (NCQ)
* Phy event counters
* unknown 76[15]
* DMA Setup Auto-Activate optimization
Device-initiated interface power management
* Asynchronous notification (eg. media change)
* Software settings preservation
* SMART Command Transport (SCT) feature set
* SCT Write Same (AC2)
* SCT Error Recovery Control (AC3)
* SCT Features Control (AC4)
* SCT Data Tables (AC5)
* reserved 69[4]
* DOWNLOAD MICROCODE DMA command
* SET MAX SETPASSWORD/UNLOCK DMA commands
* WRITE BUFFER DMA command
* READ BUFFER DMA command
* Data Set Management TRIM supported (limit 8 blocks)
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
supported: enhanced erase
2min for SECURITY ERASE UNIT. 8min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50025388a01e2b6b
NAA : 5
IEEE OUI : 002538
Unique ID : 8a01e2b6b
Checksum: correct

Answer the question

In order to leave comments, you need to log in

[[+comments_count]] answer(s)
S
Stanislav Bodrov, 2019-01-13
@jenki

By default, Centos 7 runs the Elevator disk scheduler, which is well tuned for disk drives and not so much for solid state drives.
You need to switch to the Deadline scheduler, which is well tuned for SSD.

A
Anatoly Denisov, 2019-01-25
@Wildcorsa

You can try "Trim":
fstrim --all
If it helps, you can put this command in crontab.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question