PDA

View Full Version : OCZ Agility EX 60GB SSD


phoronix
11-09-2009, 09:30 AM
Phoronix: OCZ Agility EX 60GB SSD

Back in August we reviewed the OCZ Agility SATA 2.0 SSD, which we found to be a reputable solid-state drive that offered nice performance under Linux. However, a step up from the Agility series is the Agility EX line. The OCZ Agility EX is designed to offer maximum performance with its SLC NAND-based storage and Indilinx controller. How though does the performance of this $400 SSD for just 60GB of storage compare to their other MLC-based SSDs under Linux? We have the benchmarks.

http://www.phoronix.com/vr.php?view=14358

buletov
11-09-2009, 11:15 AM
How much data in total was written to the disks while testing?

The key issue with all SSDs is the stuttering that starts happening once the disk starts rewriting data over the previously used sectors.

While it is claimed that “..the combination of the Indilinx Barefoot controller, Samsung flash memory, and 64MB of on-board cache delivers blistering, stutter-free performance, eliminating the bottleneck imposed by traditional mechanical hard disks..”, I would really like to see this in a real life sittuation.

Are there any specific disk test profiles in the PTS that would test this stutter issue?

Dragoran
11-09-2009, 11:22 AM
How much data in total was written to the disks while testing?

The key issue with all SSDs is the stuttering that starts happening once the disk starts rewriting data over the previously used sectors.

While it is claimed that “..the combination of the Indilinx Barefoot controller, Samsung flash memory, and 64MB of on-board cache delivers blistering, stutter-free performance, eliminating the bottleneck imposed by traditional mechanical hard disks..”, I would really like to see this in a real life sittuation.

Are there any specific disk test profiles in the PTS that would test this stutter issue?

This controller does support the ATA TRIM command (assuming a recent firmware), so it should be a non issue when the fs and os support it.

EXT4 + recent kernel (2.6.30+) should be fine.

n0nsense
11-09-2009, 11:23 AM
I'm SSD owner for over a year and half,
But I still can't be sure that my SSD configured properly to give max performance.
The unanswered questions are:
What is the best files system to use. (performance and stability)
What options to use when creating it.
What options to use when mounting it.
What scheduler to use.
What about "TRIM" which supposed to solve performance degradation.

Some how there is no "human readable info" that i could find.
Following some guides I couldn't complete them.
For example, i could not increase block size to 64K (or actually any above)
I'll Be glad to read and even help in creating such manual.

buletov
11-09-2009, 11:37 AM
Here is a great article about SSDs:

AnandTech: The SSD Relapse: Understanding and Choosing the Best SSD (http://www.anandtech.com/storage/showdoc.aspx?i=3631&p=1)

The article author's work on the same subject was even linked by the Mr. Torvalds himself, as well as Wikipedia.

karl
11-09-2009, 02:05 PM
I just to make a small observation: TRIM doesn't work yet on Linux.
The way TRIM itself was put into ATA protocol is bad: TRIM commands aren't tagged and at least one SSD takes hundreds of milliseconds to process a TRIM command.
read more here: http://lwn.net/Articles/347511/
and here: http://thread.gmane.org/gmane.linux.kernel/876737/focus=878130


but there is a tool that you can run to get the same effect:

http://www.ocztechnologyforum.com/forum/showthread.php?t=60882

Dragoran
11-09-2009, 02:34 PM
I'm SSD owner for over a year and half,
But I still can't be sure that my SSD configured properly to give max performance.
The unanswered questions are:
What is the best files system to use. (performance and stability)
What options to use when creating it.
What options to use when mounting it.
What scheduler to use.
What about "TRIM" which supposed to solve performance degradation.

Some how there is no "human readable info" that i could find.
Following some guides I couldn't complete them.
For example, i could not increase block size to 64K (or actually any above)
I'll Be glad to read and even help in creating such manual.

I would recommend ext4 as filesystem.It does send discard requests to the block layer (which sends the ATA TRIM command to the drive) brtfs works too, but it is not ready for general use yet-

Creating the fs is a different matter, ideally it should be aligned to the SSD's erase block size, or a multiple of that.

For that I recommend 512 if because it works for any SSD.
To do this you have to create the partitions using fdisk.

fdisk -H 32 -S 32 /dev/yourssd
When creating the first partition use 2 as starting sector.

After that you can create the file system. When using mkfs.ext4 you do not want/should set the blocksize to 64k but you should do the following:

-E stripe-size=128

This would result into a stripe-size of 4*128 (assuming block size stays at 4 which is the default).

As for mounting it I would just pass "noatime", it causes unnecessary write accesses that might hurt your SSDs life time.

Some people recommend not using a journal, but if you care about your data don't do that.

I hope this answers your questions.

n0nsense
11-10-2009, 06:21 AM
I would recommend ext4 as filesystem.It does send discard requests to the block layer (which sends the ATA TRIM command to the drive) brtfs works too, but it is not ready for general use yet-

Creating the fs is a different matter, ideally it should be aligned to the SSD's erase block size, or a multiple of that.

For that I recommend 512 if because it works for any SSD.
To do this you have to create the partitions using fdisk.

fdisk -H 32 -S 32 /dev/yourssd
When creating the first partition use 2 as starting sector.

After that you can create the file system. When using mkfs.ext4 you do not want/should set the blocksize to 64k but you should do the following:

-E stripe-size=128

This would result into a stripe-size of 4*128 (assuming block size stays at 4 which is the default).

As for mounting it I would just pass "noatime", it causes unnecessary write accesses that might hurt your SSDs life time.

Some people recommend not using a journal, but if you care about your data don't do that.

I hope this answers your questions.

Kind off :)
it is pretty similar to what i found here:
http://blogs.gentoo.org/nightmorph/2009/08/09/ssds-and-filesystems-part-2
And here
http://thunk.org/tytso/blog/category/computers/ssd/
They suggest 4K alignment (and somehow, intuitively i tend to agree)
Anyway the question about TRIM is not completely answered in my case.
My SSD is the old dumb one. without firmware upgrades. So it does not support this command. The question is partially answered in the second link blog post. But not optimistically :)
My suggestion was to do 2 things:
1. To do research on FS + SSD (which i would help) which will examine dumb and smart SSD's behavior coupled with few promising file systems with different mount options. It will be very time consuming, so i'm ready to volunteer to do what i can.
2. To use conclusions of this study to write comprehensive guide.
May be this data would be used by distributions like Sabayon, Ubuntu, OpenSUSE, Fedora and other to make better installations.

H.i.M
12-04-2009, 04:19 PM
What is so great about this ssd?
I use a very old (about 1 year) ssd which has better performance after a firmware upgrade than the vertex and is much cheaper (about 160€).

I dont know which options they have exactly used, but iozone eg with option 2gb has a much better performance then the vertex.

Or is the testing-system missconfigured?

Link to my test:
http://global.phoronix-test-suite.com/index.php?k=profile&u=mellhen-30330-13024-20301

It would be nice to receive the comparison like my
"phoronix-test-suite benchmark mellhen-30330-13024-20301"
to compare my results with the vertex ones.

greetings
h.i.m

I think it could be difficult to compare results because of:

mellhen@mellhen-mobile:~$ phoronix-test-suite benchmark aio-stress


The following dependencies will be installed:
- build-essential
- libaio-dev

This process may take several minutes.
sudo: aptitude -y install build-essential libaio-dev: command not found

====================================
Installing Test: aio-stress
Estimated Install Size: 0.5 MB
====================================


The aio-stress installer exited with a non-zero exit status. Installation failed.

================================================== =====
aio-stress is not installed.
To install, run: phoronix-test-suite install aio-stress
================================================== =====

Would you like to install these tests now (Y/n)?

Checking For Needed External Dependencies.

The following dependencies will be installed:
- build-essential
- libaio-dev

This process may take several minutes.
sudo: aptitude -y install build-essential libaio-dev: command not found

====================================
Installing Test: aio-stress
Estimated Install Size: 0.5 MB
====================================


The aio-stress installer exited with a non-zero exit status. Installation failed.

================================================== =====
aio-stress is not installed.
To install, run: phoronix-test-suite install aio-stress
================================================== =====


mellhen@mellhen-mobile:~$ phoronix-test-suite benchmark dbench


The following dependencies will be installed:
- build-essential
- autoconf
- libpopt-dev

This process may take several minutes.
sudo: aptitude -y install build-essential autoconf libpopt-dev: command not found

====================================
Installing Test: dbench
Estimated Install Size: 46.4 MB
====================================

dbench-4.0/
dbench-4.0/COPYING
dbench-4.0/INSTALL
dbench-4.0/Makefile.in
dbench-4.0/README
dbench-4.0/autogen.sh
dbench-4.0/child.c
dbench-4.0/client.txt
dbench-4.0/config.h.in
dbench-4.0/configure.in
dbench-4.0/dbench.1
dbench-4.0/dbench.c
dbench-4.0/dbench.h
dbench-4.0/fileio.c
dbench-4.0/install-sh
dbench-4.0/io.c
dbench-4.0/mkproto.pl
dbench-4.0/proto.h
dbench-4.0/snprintf.c
dbench-4.0/sockio.c
dbench-4.0/socklib.c
dbench-4.0/system.c
dbench-4.0/tbench_srv.c
dbench-4.0/util.c
./autogen.sh: 3: autoheader: not found
/usr/share/phoronix-test-suite/pts/test-resources/dbench/install.sh: 8: ./configure: not found
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install'. Stop.

The dbench installer exited with a non-zero exit status. Installation failed.

================================================== =
dbench is not installed.
To install, run: phoronix-test-suite install dbench
================================================== =

Would you like to install these tests now (Y/n)? Y

Checking For Needed External Dependencies.

The following dependencies will be installed:
- build-essential
- autoconf
- libpopt-dev

This process may take several minutes.
sudo: aptitude -y install build-essential autoconf libpopt-dev: command not found

====================================
Installing Test: dbench
Estimated Install Size: 46.4 MB
====================================

dbench-4.0/
dbench-4.0/COPYING
dbench-4.0/INSTALL
dbench-4.0/Makefile.in
dbench-4.0/README
dbench-4.0/autogen.sh
dbench-4.0/child.c
dbench-4.0/client.txt
dbench-4.0/config.h.in
dbench-4.0/configure.in
dbench-4.0/dbench.1
dbench-4.0/dbench.c
dbench-4.0/dbench.h
dbench-4.0/fileio.c
dbench-4.0/install-sh
dbench-4.0/io.c
dbench-4.0/mkproto.pl
dbench-4.0/proto.h
dbench-4.0/snprintf.c
dbench-4.0/sockio.c
dbench-4.0/socklib.c
dbench-4.0/system.c
dbench-4.0/tbench_srv.c
dbench-4.0/util.c
./autogen.sh: 3: autoheader: not found
/usr/share/phoronix-test-suite/pts/test-resources/dbench/install.sh: 8: ./configure: not found
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install'. Stop.

The dbench installer exited with a non-zero exit status. Installation failed.

================================================== =
dbench is not installed.
To install, run: phoronix-test-suite install dbench
================================================== =

H.i.M
12-04-2009, 04:40 PM
I try to install the suite "disk-ssd".

mellhen@mellhen-mobile:~$ phoronix-test-suite install disk-ssd

Checking For Needed External Dependencies.

The following dependencies will be installed:
- build-essential
- libaio-dev
- autoconf
- libpopt-dev

This process may take several minutes.
sudo: aptitude -y install build-essential libaio-dev autoconf libpopt-dev: command not found
Already Installed: iozone

====================================
5 Tests To Be Installed
Estimated Download Size: 15.21 MB
Estimated Install Size: 277.2 MB
====================================


====================================
Installing Test: aio-stress
Estimated Install Size: 0.5 MB
====================================


The aio-stress installer exited with a non-zero exit status. Installation failed.

====================================
Installing Test: dbench
Estimated Install Size: 46.4 MB
====================================

dbench-4.0/
dbench-4.0/COPYING
dbench-4.0/INSTALL
dbench-4.0/Makefile.in
dbench-4.0/README
dbench-4.0/autogen.sh
dbench-4.0/child.c
dbench-4.0/client.txt
dbench-4.0/config.h.in
dbench-4.0/configure.in
dbench-4.0/dbench.1
dbench-4.0/dbench.c
dbench-4.0/dbench.h
dbench-4.0/fileio.c
dbench-4.0/install-sh
dbench-4.0/io.c
dbench-4.0/mkproto.pl
dbench-4.0/proto.h
dbench-4.0/snprintf.c
dbench-4.0/sockio.c
dbench-4.0/socklib.c
dbench-4.0/system.c
dbench-4.0/tbench_srv.c
dbench-4.0/util.c
./autogen.sh: 3: autoheader: not found
/usr/share/phoronix-test-suite/pts/test-resources/dbench/install.sh: 8: ./configure: not found
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install'. Stop.

The dbench installer exited with a non-zero exit status. Installation failed.

====================================
Downloading Files: pgbench
Estimated Download Size: 13.19 MB
====================================



Downloading File: postgresql-8.4.0.tar.bz2

--2009-12-04 23:28:21-- ftp://ftp.li.kernel.org/pub/.3/ftp.postgresql.org/source/v8.4.0/postgresql-8.4.0.tar.bz2
=> `postgresql-8.4.0.tar.bz2.pts'
Resolving ftp.li.kernel.org... 129.143.116.10
Connecting to ftp.li.kernel.org|129.143.116.10|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/.3/ftp.postgresql.org/source/v8.4.0 ... done.
==> SIZE postgresql-8.4.0.tar.bz2 ... 13839282
==> PASV ... done. ==> RETR postgresql-8.4.0.tar.bz2 ... done.
Length: 13839282 (13M)

100%[================================================== ================================================== =================>] 13,839,282 278K/s in 44s

2009-12-04 23:29:05 (309 KB/s) - `postgresql-8.4.0.tar.bz2.pts' saved [13839282]


====================================
Installing Test: pgbench
Estimated Install Size: 230 MB
====================================


====================================
Downloading Files: postmark
Estimated Download Size: 0.01 MB
====================================



Downloading File: postmark_1.51.orig.tar.gz

--2009-12-04 23:31:13-- http://www.gtlib.cc.gatech.edu/pub/debian/pool/main/p/postmark/postmark_1.51.orig.tar.gz
Resolving www.gtlib.cc.gatech.edu... 128.61.111.11, 128.61.111.9, 128.61.111.10, ...
Connecting to www.gtlib.cc.gatech.edu|128.61.111.11|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13394 (13K) [application/x-gzip]
Saving to: `postmark_1.51.orig.tar.gz.pts'

100%[================================================== ================================================== =================>] 13,394 50.3K/s in 0.3s

2009-12-04 23:31:15 (50.3 KB/s) - `postmark_1.51.orig.tar.gz.pts' saved [13394/13394]


====================================
Installing Test: postmark
Estimated Install Size: 0.1 MB
====================================

[...]

====================================
Downloading Files: tiobench
Estimated Download Size: 0.02 MB
====================================



Downloading File: tiobench-0.3.3.tar.gz

--2009-12-04 23:31:15-- http://transact.dl.sourceforge.net/sourceforge/tiobench/tiobench-0.3.3.tar.gz
Resolving transact.dl.sourceforge.net... 202.55.147.10
Connecting to transact.dl.sourceforge.net|202.55.147.10|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://downloads.sourceforge.net/sourceforge/tiobench/tiobench-0.3.3.tar.gz?download&failedmirror=transact.dl.sourceforge.net [following]
--2009-12-04 23:31:17-- http://downloads.sourceforge.net/sourceforge/tiobench/tiobench-0.3.3.tar.gz?download&failedmirror=transact.dl.sourceforge.net
Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://switch.dl.sourceforge.net/project/tiobench/tiobench/0.3.3/tiobench-0.3.3.tar.gz [following]
--2009-12-04 23:31:17-- http://switch.dl.sourceforge.net/project/tiobench/tiobench/0.3.3/tiobench-0.3.3.tar.gz
Resolving switch.dl.sourceforge.net... 130.59.138.21, 2001:620:0:1b::21
Connecting to switch.dl.sourceforge.net|130.59.138.21|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 28282 (28K) [application/x-gzip]
Saving to: `tiobench-0.3.3.tar.gz.pts'

100%[================================================== ================================================== =================>] 28,282 --.-K/s in 0.1s

2009-12-04 23:31:18 (250 KB/s) - `tiobench-0.3.3.tar.gz.pts' saved [28282/28282]


====================================
Installing Test: tiobench
Estimated Install Size: 0.2 MB
====================================

[..]

./tiobench.pl --help for usage options


The following tests failed to install:

- aio-stress
- dbench


--->
- aio-stress
- dbench

...failed to install..


[RESULT 1] without wiper.sh (TRIM deactivated).
Now its much more comparable i think.
Just take a look:

http://global.phoronix-test-suite.com/index.php?k=profile&u=mellhen-30126-21570-3234

Results in short:

IOzone write
OCZ Ag. EX = 192.47
FTM64GX25H = 178.64 (2nd of 5)

IOzone read
OCZ Ag. EX = 89.93
FTM64GX25H = 128.07 (1st of 5)

PostgreSQL
OCZ Ag. EX = 2926.39
FTM64GX25H = 1788.54 (2nd of 5)

Threaded I/O Tester 0.3.3 random write
OCZ Ag. EX = 30.16 (5th of 5)
FTM64GX25H = 8.5 (!) (1st of 5)

Threaded I/O Tester 0.3.3 random read
OCZ Ag. EX = 3794
FTM64GX25H = 1315.33 (1st of 5)

unfortunately it was not possible to install aio-stress and dbench. These would have been the most interesting tests i think.

[RESULT 2]
wiper.sh + DiskTRIM
when trimming procedure was executed iozone got "no space left on device". But as you can see. trimming will speed up your ssd. It has to be part of the kernel! while you do massive file operations, e.g copying a film collection; Trimming cant be used, because of "no space left On device" errors. After your trimming procedure has finished, space is available again...

http://global.phoronix-test-suite.com/index.php?k=profile&u=mellhen-816-7976-25217

bts555
01-03-2010, 05:37 AM
Wheres the endurance test ? I had a OCZ SOLID SERIES 30GB drive and after 48hrs continual database updates it ground to a halt. OCZ tech support informed me i need to reposition my partitions on 32Kb boundaries, which i did, in addition to reinstalling windows. Afer reformatting, windows regularly suffers 30s stutters during which time windows is unusable. With all the internet references to stuttering, this is clearly a feature of SSDs in general and not a fault confined to this drive, so its a test that needs to be done on any drive being evaluated. But its missing from your tests. So how long before the agility EX goes into non-recoverable stutter mode ?