LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 03-15-2011, 10:01 AM   #1
Skaperen
Senior Member
 
Registered: May 2009
Location: center of singularity
Distribution: Xubuntu, Ubuntu, Slackware, Amazon Linux, OpenBSD, LFS (on Sparc_32 and i386)
Posts: 2,684
Blog Entries: 31

Rep: Reputation: 176Reputation: 176
SSD performance


I don't know if Linux has any impact on this. I got a new SSD drive. It's the high speed X25-E in 32GB from Intel. I've been benchmarking it at various read blocksizes. Smaller blocksizes are performing poorly as generally expected, with larger blocksizes performing better. One peculiar thing shows up is that going from a blocksize of 16k to a blocksize of 32k actually has a slight, but consistently detected, performance drop. Going from 256k to 512k also levels off while 1024k rises some. So it seems odd powers of 2 have some kind of effect somewhere. Any ideas? Beyond 4M (tested previously to 64M) it has leveled out.

Code:
feynman/root/x0 /root 5# time ( for ((b=4096;b<5000000;b*=2)) ; do echo ${b} ; for ((n=0;n<3;++n)) ; do dd if=/dev/sdb iflag=direct bs=${b} of=/dev/null 2>&1 | fgrep byte | suffix ", blocksize=${b}" ; done ; done )
4096
32000000000 bytes (32 GB) copied, 360.33 s, 88.8 MB/s, blocksize=4096
32000000000 bytes (32 GB) copied, 360.365 s, 88.8 MB/s, blocksize=4096
32000000000 bytes (32 GB) copied, 360.06 s, 88.9 MB/s, blocksize=4096
8192
32000000000 bytes (32 GB) copied, 235.057 s, 136 MB/s, blocksize=8192
32000000000 bytes (32 GB) copied, 234.897 s, 136 MB/s, blocksize=8192
32000000000 bytes (32 GB) copied, 235.132 s, 136 MB/s, blocksize=8192
16384
32000000000 bytes (32 GB) copied, 174.264 s, 184 MB/s, blocksize=16384
32000000000 bytes (32 GB) copied, 174.109 s, 184 MB/s, blocksize=16384
32000000000 bytes (32 GB) copied, 174.215 s, 184 MB/s, blocksize=16384
32768
32000000000 bytes (32 GB) copied, 175.676 s, 182 MB/s, blocksize=32768
32000000000 bytes (32 GB) copied, 176.206 s, 182 MB/s, blocksize=32768
32000000000 bytes (32 GB) copied, 177.156 s, 181 MB/s, blocksize=32768
65536
32000000000 bytes (32 GB) copied, 159.999 s, 200 MB/s, blocksize=65536
32000000000 bytes (32 GB) copied, 161.076 s, 199 MB/s, blocksize=65536
32000000000 bytes (32 GB) copied, 160.757 s, 199 MB/s, blocksize=65536
131072
32000000000 bytes (32 GB) copied, 147.679 s, 217 MB/s, blocksize=131072
32000000000 bytes (32 GB) copied, 149.442 s, 214 MB/s, blocksize=131072
32000000000 bytes (32 GB) copied, 147.795 s, 217 MB/s, blocksize=131072
262144
32000000000 bytes (32 GB) copied, 144.417 s, 222 MB/s, blocksize=262144
32000000000 bytes (32 GB) copied, 145.543 s, 220 MB/s, blocksize=262144
32000000000 bytes (32 GB) copied, 145.663 s, 220 MB/s, blocksize=262144
524288
32000000000 bytes (32 GB) copied, 145.042 s, 221 MB/s, blocksize=524288
32000000000 bytes (32 GB) copied, 144.958 s, 221 MB/s, blocksize=524288
32000000000 bytes (32 GB) copied, 144.901 s, 221 MB/s, blocksize=524288
1048576
32000000000 bytes (32 GB) copied, 142.932 s, 224 MB/s, blocksize=1048576
32000000000 bytes (32 GB) copied, 143.45 s, 223 MB/s, blocksize=1048576
32000000000 bytes (32 GB) copied, 143.724 s, 223 MB/s, blocksize=1048576
2097152
32000000000 bytes (32 GB) copied, 141.895 s, 226 MB/s, blocksize=2097152
32000000000 bytes (32 GB) copied, 141.851 s, 226 MB/s, blocksize=2097152
32000000000 bytes (32 GB) copied, 141.258 s, 227 MB/s, blocksize=2097152
4194304
32000000000 bytes (32 GB) copied, 140.868 s, 227 MB/s, blocksize=4194304
32000000000 bytes (32 GB) copied, 140.633 s, 228 MB/s, blocksize=4194304
32000000000 bytes (32 GB) copied, 140.569 s, 228 MB/s, blocksize=4194304
[[ 98m31s real 5911.992 - user 21.140 - sys 435.680 - 7.72% ]]
feynman/root/x0 /root 6#
Anyone know what the erase size is for this device?
 
Old 03-15-2011, 10:19 AM   #2
business_kid
LQ Guru
 
Registered: Jan 2006
Location: Ireland
Distribution: Slackware, Slarm64 & Android
Posts: 16,363

Rep: Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335Reputation: 2335
The 1st thing that strikes me is that the drive will be well worn before you put data onto it.

SSD is a form of ram, which must have an internal organisation. That is, there is a transparent mapping from head,track,sector to physical addresses in flash. It stands to reason that there would be an optimum size. Further, at close to 220Mb/S I would expect you to be fairly close to motherboard speed limits, so a whole lot of unpredictable things could happen there.
 
Old 03-15-2011, 11:01 AM   #3
onebuck
Moderator
 
Registered: Jan 2005
Location: Central Florida 20 minutes from Disney World
Distribution: SlackwareŽ
Posts: 13,925
Blog Entries: 44

Rep: Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159
Hi,

Look at 'Solid State Drives (SSDs)' to get some useful information, section: 3.1.3 Using MBR - DEPRECIATED METHOD - Using GPT is Recommended.

I use the INtel X25-V SATA SSD 40GB with good results.
Very satisfied for the $ spent.


EDIT: Look at SSD Benchmarking

EDIT2: Look at http://www.linuxquestions.org/questi...2/#post4245239

Last edited by onebuck; 03-15-2011 at 11:13 AM. Reason: add link
 
Old 03-15-2011, 11:41 AM   #4
Skaperen
Senior Member
 
Registered: May 2009
Location: center of singularity
Distribution: Xubuntu, Ubuntu, Slackware, Amazon Linux, OpenBSD, LFS (on Sparc_32 and i386)
Posts: 2,684

Original Poster
Blog Entries: 31

Rep: Reputation: 176Reputation: 176
It's SLC, so it should last a lot longer than MLC. And this is reading, which is not supposed to involve doing the flash erases that wear them out.

The motherboard controller could be the culprit. It's a SuperMicro X8STE. I moved it over to my desktop, and get speeds of 262 to 274 MB/sec. And my desktop has the same SuperMicro X8STE motherboard. The server has Ubuntu server 10.04.2 while the desktop has Ubuntu desktop 10.10 (both amd64 versions). The server has a Xeon with ECC RAM and the desktop has a Core i7 with non-ECC RAM (yes, both can work in sock 1366 with X58 chipset). Maybe it's the ECC that is slowing down the transfers?

The server also has a 9650SE RAID card, but the SSD was connected directly to a motherboard SATA port, not the RAID card. The RAID was mostly idle (though the OS resides on the RAID, so there would be some activity). One of the purposes of examining the SSD is to put the OS on there instead of on the RAID (but swap space would stay on the RAID, or be eliminated).

Code:
lorentz/root /root 146# time ( for ((b=262144;b<5000000;b*=2)) ; do echo ${b} ; for ((n=0;n<3;++n)) ; do dd if=/dev/sdg iflag=direct bs=${b} of=/dev/null 2>&1 | fgrep byte | suffix ", blocksize=${b}" ; done ; done )
262144
32000000000 bytes (32 GB) copied, 122.239 s, 262 MB/s, blocksize=262144
32000000000 bytes (32 GB) copied, 122.326 s, 262 MB/s, blocksize=262144
32000000000 bytes (32 GB) copied, 122.242 s, 262 MB/s, blocksize=262144
524288
32000000000 bytes (32 GB) copied, 117.801 s, 272 MB/s, blocksize=524288
32000000000 bytes (32 GB) copied, 117.785 s, 272 MB/s, blocksize=524288
32000000000 bytes (32 GB) copied, 117.764 s, 272 MB/s, blocksize=524288
1048576
32000000000 bytes (32 GB) copied, 117.845 s, 272 MB/s, blocksize=1048576
32000000000 bytes (32 GB) copied, 117.822 s, 272 MB/s, blocksize=1048576
32000000000 bytes (32 GB) copied, 117.819 s, 272 MB/s, blocksize=1048576
2097152
32000000000 bytes (32 GB) copied, 117.615 s, 272 MB/s, blocksize=2097152
32000000000 bytes (32 GB) copied, 117.632 s, 272 MB/s, blocksize=2097152
32000000000 bytes (32 GB) copied, 117.631 s, 272 MB/s, blocksize=2097152
4194304
32000000000 bytes (32 GB) copied, 116.706 s, 274 MB/s, blocksize=4194304
32000000000 bytes (32 GB) copied, 116.631 s, 274 MB/s, blocksize=4194304
32000000000 bytes (32 GB) copied, 116.668 s, 274 MB/s, blocksize=4194304
[[ 29m36s real 1776.562 - user 0.370 - sys 45.520 - 2.58% ]]
lorentz/root /root 147#
 
Old 03-15-2011, 12:19 PM   #5
Skaperen
Senior Member
 
Registered: May 2009
Location: center of singularity
Distribution: Xubuntu, Ubuntu, Slackware, Amazon Linux, OpenBSD, LFS (on Sparc_32 and i386)
Posts: 2,684

Original Poster
Blog Entries: 31

Rep: Reputation: 176Reputation: 176
Quote:
Originally Posted by onebuck View Post
My testing so far has been on the whole device. It has not been partitioned, yet. GPT in this case has the disadvantage of chopping a whole megabyte off the end (as well as beginning) ... when one is keeping whole megabyte alignments (which I generally recommend even for spinning platter drives, for better cache performance, among other things).

I'd only be losing 33 sectors at the end if I were disregarding any alignment. This device has exactly 32000000000 bytes, so there's an exact 1M chunk at the end, which the 33 sectors occupies. Maybe they need to make the secondary table optional in GPT (based on my pattern of using MBR over the past 16 years, I have zero use for the secondary table). That it is mandatory is a disadvantage of GPT (IMHO). If it were optional, then it would be a clear advantage.
Code:
lorentz/root /root 147# fdisk -l /dev/sdg

Disk /dev/sdg: 32.0 GB, 32000000000 bytes
255 heads, 63 sectors/track, 3890 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdg doesn't contain a valid partition table
lorentz/root /root 148# gdisk -l /dev/sdg
GPT fdisk (gdisk) version 0.5.1

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.
Disk /dev/sdg: 62500000 sectors, 29.8 GiB
Disk identifier (GUID): EF2EBE12-8FF6-0BA1-F087-3515DAD67007
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 62499966
Total free space is 62499933 sectors (29.8 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
lorentz/root /root 149#
Quote:
Originally Posted by onebuck View Post
I use the INtel X25-V SATA SSD 40GB with good results.
Very satisfied for the $ spent.
That's an MLC model. How does it show up in fdisk/gdisk?

Quote:
Originally Posted by onebuck View Post
EDIT: Look at SSD Benchmarking
While the "Using dd" section is also testing reading of buffer cached data, ordinarily, when I am only interested in the drive itself, I use the options "iflag=direct" (for read testing) or "oflag=direct" (for write testing) to bypass as much buffering as I can (I also do these at times for other reasons).

BTW, I've often gotten inconsistent results from hdparm for benchmarking.

Quote:
Originally Posted by onebuck View Post
The big thing I'm asking about is the non-uniform rise in performance with increased block size (e.g. why does it go back down at 32k and stay level at 512k). Basically, why do I not see an increase in performance when doubling the block size, but do when quadrupling it. Maybe because I'm hitting or missing certain sizes that tend to be optimal or non-optimal?
 
Old 03-15-2011, 03:13 PM   #6
jefro
Moderator
 
Registered: Mar 2008
Posts: 21,997

Rep: Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628Reputation: 3628
Here is a good place to look at too.

http://openbenchmarking.org/result/1...IV49&obr_imw=y
 
Old 03-15-2011, 03:40 PM   #7
onebuck
Moderator
 
Registered: Jan 2005
Location: Central Florida 20 minutes from Disney World
Distribution: SlackwareŽ
Posts: 13,925
Blog Entries: 44

Rep: Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159
Hi,
Look at On-the-fly Data Compression for SSDs article. Especially the feedback comments.


EDIT: "Inside the X25-M Controller: Wear Leveling, Write Amplification Control" & "Intel SSD Optimizer White Paper"

Last edited by onebuck; 03-15-2011 at 04:14 PM. Reason: add link
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
SSD partitioning aloisius-a Linux - Hardware 4 02-18-2011 01:34 AM
SSD hydraMax Linux - Hardware 4 01-09-2011 12:09 PM
ssd slack66 Slackware 5 06-24-2010 12:56 AM
LXer: Three Simple Tweaks for Better SSD Performance LXer Syndicated Linux News 0 11-25-2009 07:40 PM
LXer: SSD vs. SATA RAID: A performance benchmark LXer Syndicated Linux News 0 07-30-2008 08:00 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 01:24 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration