The Curious Case of SSD Performance In OS X
mr_sifter writes "As we've seen from previous coverage, TRIM support is vital to help SSDs maintain performance over extended periods of time — while Microsoft and the SSD manufacturers have publicized its inclusion in Windows 7, Apple has been silent on whether OS X will support it. bit-tech decided to see how SSD performance in OS X is affected by extended use — and the results, at least with the Macbook Air, are startling. The drive doesn't seem to suffer very much at all, even after huge amounts of data have been written to it."
That is startling!
You can't really draw any conclusions from these results. In one particular Mac, Apple ships a particular Samsung SSD that doesn't degrade, probably because its "clean" performance is already terrible (you might think of it as "pre-degraded"). In other Macs Apple ships Toshiba SSDs that may have completely different behavior. If you put a good SSD (e.g. Intel) in your Mac the behavior will be completely different.
I've got a Vertex 60 in a While unibody macbook and it works fine, boot is 7-9 seconds, apps load almost instantly even if i start 10 at the same time.
I know TRIM doesn't work yet in OS X but the drive seems to take care of itself just fine.
Maybe they should take the drive over to a Windows XP and Windows 7 box and see if it's the drive hardware being resilient or the OS. The G1 intel drives don't drop a ton after use, and they don't support TRIM. It looks like the Intel G1 flash is artificially capped by the controller. It could be similar here.
It depends a lot on how the drive works.
Intel drives actually use the whole drive for scratch space. Until a sector is written to. Then without TRIM it only has its tiny bit of extra scratch space to work with. That's why intel drives degrade so badly without TRIM.
Indilinx Barefoot controllers on the other hand ONLY use their scratch space, they never use the normal writing space of the drive as scratch space.
See here.
http://www.anandtech.com/show/2829/9
While it does show the synthetic tests degrading with lack of trim, even more than the intel drives, the real world use tests show they suffer almost 0% loss in performance.
Depending on which controller the drive is using, TRIM could make almost no difference or a world of difference.
Anand explains it best:
"Only the Indilinx drives lose an appreciable amount of performance in the sequential write test, but they are the only drives to not lose any performance in the more real-world PCMark Vantage HDD suite. Although not displayed here, the overall PCMark Vantage score takes an even smaller hit on Indilinx drives. This could mean that in the real world, Indilinx drives stand to gain the least from TRIM support. This is possibly due to Indilinx using a largely static LBA mapping scheme; the only spare area is then the 6.25% outside of user space regardless of how used the drive is."
It's easier to fight for one's principles than to live up to them.
Apple's description of the zeroing format method we used fits the description of what we wanted in terms of resetting the SSD to a clean state
Zeroing is not the same operation as TRIM. TRIM marks a block as unused, and if you read it you'll either get random data, or zeros (probably the later). Zeroing marks it as in-use, and if you read it you'll get zeros. The SSD's wear management algorithm will move the latter around as though it were real data, whereas it knows the former is "empty" so it won't bother (so the SSD will be faster). In other words, they don't seem to be using a "clean state" at all, which would explain why there's no difference.
Secondly, the SSD in the Macbook Air really isn't very fast at all
Which strengthens the hypothesis that they were comparing one "full" state with another. Pop out the drive, TRIM the whole disk in another OS, and run the benchmark again. It'll probably be a lot faster. It wouldn't surprise me if installing the Mac OS at the factory caused every block on the SSD to be used at least once (e.g. a whole disk image was written), which would mean you'd already be at the worse possible performance degradation.
The article writers made 2 major mistakes that cause their results to be meaningless.
1. They didn't secure erase the drive, which is what actually puts a drive back into a virgin state. They instead wrote zeroes to every sector, which means that the drive controller probably still thinks those zeroed out sectors are still in use.
2. The Samsung drive controller has a form of self cleanup that greatly reduces the need for TRIM.
3. Regardless, the SSD they used was slow as a dog and barely worth using over a HDD.
Seriously though, MAC OS X has its roots with the BSD's of the world (Mach kernel http://developer.apple.com/macosx/architecture/) and one need only visit any of the number of SSD inquiries from the FreeBSD community to get an idea of how Mac OS X would respond at a kernel level: http://forums.freebsd.org/showthread.php?t=1169 for example.
Granted, there are some filesystem differences between the other BSD flavors and MAC OS X, but the architectures are very similar and one can draw the same conclusion as this parent review did:
MAC OS X can run quite well on SSD drives, it just hasn't been sanctioned by Big Brother Jobs yet. Remember too, Apple offered 128GB SSD's in their Mac Book Pro's as far back as 2008, so it's nothing new.
If you don't mind voiding your Apple warranty, I'd say go for it!
According to their tests, TRIM has a big impact on read speeds, yet according to their explanation, TRIM should only have a significant affect on write speeds.
The real "Libtards" are the Libertarians!
2.5 million B.C.: OOG the Open Source Caveman develops the axe and releases it under the GPL. The axe quickly gains popularity as a means of crushing moderators' heads.
100,000 B.C.: Man domesticates the AIBO.
10,000 B.C.: Civilization begins when early farmers first learn to cultivate hot grits.
3000 B.C.: Sumerians develop a primitive cuneiform perl script.
2920 B.C.: A legendary flood sweeps Slashdot, filling up a Borland / Inprise story with hundreds of offtopic posts.
1750 B.C.: Hammurabi, a Mesopotamian king, codifies the first EULA.
490 B.C.: Greek city-states unite to defeat the Persians. ESR triumphantly proclaims that the Greeks "get it".
399 B.C.: Socrates is convicted of impiety. Despite the efforts of freesocrates.com, he is forced to kill himself by drinking hemlock.
336 B.C.: Fat-Time Charlie becomes King of Macedonia and conquers Persia.
4 B.C.: Following the Star (as in hot young actress) of Bethelem, wise men travel from far away to troll for baby Jesus.
A.D. 476: The Roman Empire BSODs.
A.D. 610: The Glorious MEEPT!! founds Islam after receiving a revelation from God. Following his disappearance from Slashdot in 632, a succession dispute results in the emergence of two troll factions: the Pythonni and the Perliites.
A.D. 800: Charlemagne conquers nearly all of Germany, only to be acquired by andover.net.
A.D. 874: Linus the Red discovers Iceland.
A.D. 1000: The epic of the Beowulf Cluster is written down. It is the first English epic poem.
A.D. 1095: Pope Bruce II calls for a crusade against the Turks when it is revealed they are violating the GPL. Later investigation reveals that Pope Bruce II had not yet contacted the Turks before calling for the crusade.
A.D. 1215: Bowing to pressure to open-source the British government, King John signs the Magna Carta, limiting the British monarchy's power. ESR triumphantly proclaims that the British monarchy "gets it".
A.D. 1348: The ILOVEYOU virus kills over half the population of Europe. (The other half was not using Outlook.)
A.D. 1420: Johann Gutenberg invents the printing press. He is immediately sued by monks claiming that the technology will promote the copying of hand-transcribed books, thus violating the church's intellectual property.
A.D. 1429: Natalie Portman of Arc gathers an army of Slashdot trolls to do battle with the moderators. She is eventually tried as a heretic and stoned (as in petrified).
A.D. 1478: The Catholic Church partners with doubleclick.net to launch the Spanish Inquisition.
A.D. 1492: Christopher Columbus arrives in what he believes to be "India", but which RMS informs him is actually "GNU/India".
A.D. 1508-12: Michaelengelo attempts to paint the Sistine Chapel ceiling with ASCII art, only to have his plan thwarted by the "Lameness Filter."
A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (- 1, Flamebait).
A.D. 1553: "Bloody" Mary ascends the throne of England and begins an infamous crusade against Protestants. ESR eats his words.
A.D. 1588: The "IF I EVER MEET YOU, I WILL KICK YOUR ASS" guy meets the Spanish Armada.
A.D. 1603: Tokugawa Ieyasu unites the feuding pancake-eating ninjas of Japan.
A.D. 1611: Mattel adds Galileo Galilei to its CyberPatrol block list for proposing that the Earth revolves around the sun.
A.D. 1688: In the so-called "Glorious Revolution", King James II is bloodlessly forced out of power and flees to France. ESR again triumphantly proclaims that the British monarchy "gets it".
A.D. 1692: Anti-GIF hysteria in the New World comes to a head in the infamous "Salem GIF Trials", in which 20 alleged GIFs are burned at the stake. Later investigation reveals that many of the supposed GIFs were actually PNGs.
A.D. 1769: James Watt patents the one-click steam engine.
A.D. 1776: Trolls, angered by CmdrTaco's passage of the Moderation Act, rebel. After a several-year flame war, the trol
That's not the problem with their antenna. As it turns out, the algorithm they used to show signal strength ("bars") was incorrect... generally showing more signal strength than there really was. So what was happening was this: people thought they had a good signal when they really didn't. Then the slight loss from bridging the antennas pretty much took their connection down. It SHOWED as a big difference, but the real difference was very small.
The same tests done in an area where there is actually a good signal get completely different results. There is almost no different whether the antennas are bridged or not.
FTA: "We simulated this by copying 100GB of mixed files (OS files, multiple game installs, MP3s and larger video files ) to the SSD, deleting them, and then repeating the process ten times,"
Surely you should be deleting half the files - every other file - then rewriting them. If you copy a bunch of files then delete them all you're leaving the drive in pretty much the same state as it was at the start, the only difference between passes wil be due to the wear levelling algorithms inside the drive. Overall performance at the end will mostly be a result of the initial condition of the drive, not what happened during the test.
No sig today...
Actually TRIM ensures there are free blocks of flash ready to be written quickly, otherwise they have to be erased first even if the OS thinks that particular logical address wasn't being used, which has a substantial performance penalty.
The HD in my Macbook Pro was failing and when I was shopping for parts, I noticed that PowerbookMedic (normally I'd just go buy a hard drive locally but I needed to replace the DVD drive as well so I figured why not just get it all in one go) had an SSD available at a reasonable price so I purchased it on the theory that whatever they were shipping was a decent fit for the Mac - they didn't have any maker info on the page but I figured that the only real difference between SSDs would be max bandwidth and anything would be an improvement over a regular HD so I didn't do any research. When it arrived it was a G.Skill drive (128GB).
When I first installed it things were very zippy and I was really happy. After about a month, though, things started to slow down and I started researching and found the SSD fragmentation problem that's been referenced often. Zero'ing out the unused space on the disk did give a bit of a performance boost, but not back to the original levels. Eventually things got so bad that I removed it and replaced it with a regular HD and things got much better.
So, a few points:
1) HFS+ is not magically aligned with SSD's somehow (the Macbook Pro is running Snow Leopard so it's got the latest OS updates). You can still hit the fragmentation problem.
2) A lot of people are saying that overwriting with zero's won't do anything. Any controller will detect a block of zero's as being unused data and just mark the block as such. It's not hard to do, it's an obvious thing to do, and even the worst controller out there has a boatload of firmware in it - they are not just bare flash RAM chips hooked to the ATA bus somehow.
Yes, and as we know, solid state disks lose performance when files are fragmented, because, when the disk spins, err, i mean the electrons, the heat goes around, ah, fuck it.
I have to wonder why they didn't boot into Windows on the same PC and repeat the tests. That would have identified if it was a hardware issue, or a software (Filesystem) issue that caused the irregularity.
Mod parent overrated. TRIM is to help keep the drive running at a good pace once it's been written to over a period.
The problem with SSDs is that they can read/write only a page at a time; they do not address individual bits or sectors. Over time, this means that a given page (I forget the size, maybe 64KB) will have parts of multiple files in it. Therefore, writing to one of the files in that page means that the drive has to re-write each file, and if one of the affected files is spread across several pages, then those pages have to get re-written, and so on. Write performance, and to a lesser extent read performance, goes into the toilet.
Enter TRIM, which keeps files to a minimum number of pages and is typically run in the background as a garbage-collection measure.
Hail Eris, full of mischief...
E pluribus sanguinem
How are Mac users with Mercury Extreme SSD's or the Mushkin ect units doing?
They might be a bit different to the units Apple found at a set price point to max the profits.
Most of the Apple users sites seem to like the idea of a ~ TRIM via a removal of all data, zeroing and a copy back of the OS. Thanks
Domestic spying is now "Benign Information Gathering"
First of all, Apple HFS format family has been critized for using the exact same areas of disk (for B Trees, journal) eventually wearing them off. I didn't buy the claims until I noticed an external USB drive has couple of bad sectors on exact "metadata"/B-tree area. Another USB drive got wasted (actually converted to fat32) and I finally agreed to that claim. It is magnetic drive I talk about, on SSD things can really get ugly.
They could move the B-Trees and journal, actually advanced disk optimizers like iDefrag does it every time whenever it spots that they aren't close to beginning of drive but it seems they didn't even implement that basic counter measure. BTW; obvious but, nobody should "defrag" a SSD drive.
I was expecting they add such enhancements with the OS X version shipping with Macbook Air and yet, nothing happened. It is not bad as NTFS but, HFS+ has to have some workarounds for SSD.
Wonder if "We do ZFS, no it is target of patant trolls" period has something to do with it. No matter what people say, they were really serious about ZFS until Sun CEO stupidly leaked it and that company whined about their patents made them totally give up the idea.
Perhaps, something like UFS+ in future?
You both need to read up on TRIM (and I'll leave it at that)... http://en.wikipedia.org/wiki/TRIM
Slashdot is going down the crapper.
The problem is that a Flash based SSD needs to have a pool of unused blocks to work around the block-erase stupidity. However, trim only "solves" the problem when there is a good deal of free space on the drive anyway; when the drive nears full, it is useless. At the current pricing, people don't buy SSDs to keep them empty, and one would not expect an SSD to perform badly when full, as with rotating rust.
The solution is to provision enough extra blocks on the drive beyond the advertised capacity. While the vendors refuse to do this, you may do so yourself. Simply create an empty partition the drive--just make sure it isn't ever written or zeroed.
Anyway, the vendors' motivation to cut corners here should be perfectly clear.
Jes, I know the Intel MMU pages are either 4k or 4M. And people like "saving disk" since on average half a blocksize is wasted per file. But 4k is a tiny blocksize, set IIRC for newspools that few use. It only wastes 10 MB on a 5,000 file/dir system. That is not enough!
A 128 kB blocksize to match the hardware bs would "waste" a more reasonable 320 MB. Only 1% of the minimum 32 GB SSD.
So basically if I understand it well, this is in effect an anti-fragmentation measure. When files get fragmented performance starts to degrade. In a way I have the feeling that if you match the block size of files written to the block size of the SSD (optionally padding with zeros to fill it up) you could get quite a performance boost - and only when the drive starts to fill up start using the unused, zeroed out fragments from the blocks.
Or would it be possible use the anti-fragmentation measures built in into many file systems directly instead of TRIM?
while Microsoft and the SSD manufacturers have publicized its inclusion in Windows 7, Apple has been silent on whether OS X will support it
Isn't that kind of like comparing apple's and lemons?
windos cant boot from hpfs+ (or ext3 or reiserfs (3.6 or 4), or zfs or really anything new and high performance except for uh, ex(tra)fat, then again these filesystems might require acls or a layer to account for windos acls)
sure you could reformat it and install windows, but this would be unfair as we know the performance would suffer on writes to blocks that need to be erased before they can be written. another possibility would be a proper flash erase and then install windows to rule out some "hardware issue". so far the implication is that its the windows ntfs filesystem and (after the necessary testing) some linux filesystems that may be doing something differently to hpfs+.
the latter is correct. filesystems that mac and linux use don't have fragmentation issues anywhere near the extreme that NTFS does.
That gives me the idea that an SSD should be tested with different file systems as well to see effects. Such as ext2 (no journaling), ext3/4 (ext2 with journaling: often seen as an issue because of the many writes), Apple's HSF+, and NTFS, and then as far as possible with and without TRIM enabled. Could be interesting. Preferably identical hardware, each file system with it's native OS.
That said I don't recall having seen any story here about such tests: which file system is best for your SSD (performance wise, wear/tear wise). Also I still haven't heard about SSD-specific file systems, while that would make sense to me considering the large technical differences between HDD and SSD. A file system should be able to take advantage of that.
. It wouldn't surprise me if installing the Mac OS at the factory caused every block on the SSD to be used at least once (e.g. a whole disk image was written), which would mean you'd already be at the worse possible performance degradation.
Disk images on the mac made by hdiutil (which is what Disk Utility is largely a front-end to) are almost always a copy based off files or just in-use blocks to a new image- the image is copied bit-by-bit back (for speed) and then the filesystem is expanded afterwards. This allows Apple to have one disk image, not one for each size hard drive shipped- and gives maximum speed (for magnetic drives.)
Please help metamoderate.
The question was asked in TFA comments whether or not OS X disk journaling was turned on. The question was not answered. It seems to me that this would have a profound effect on performance.
Ask Me About... The 80's!
Yes and no. Wear-leveling happens with or without TRIM, but what TRIM does is tell the SSD controller that a block can be treated as "virgin", meaning it can be overwritten in a single pass. This is an optimization as normally one must read the contents of an entire block, combine it with the incoming data, erase the block on-disk and finally write the newly-merged data.
Contrary to popular ignorance, the slowdown is not caused by "fragmentation" - that's backwards, when the drive is clean it is cheating by skipping part of the write cycle. In other words, an SSD's dirty performance is its normal, sustainable speed. When it is clean, it can go faster because it is being LAZY, by short-cutting the Read-Erase-Update cycle. For obvious reasons, most SSD vendors, particularly in the consumer segment, advertise the maximum speed when really the honest thing would be to advertise the minimum speed.
-Billco, Fnarg.com
OSX rulez! it will even get you laid, especially if you have an ssd :D
http://www.youtube.com/watch?v=coAep95p5kY
No, no, no. TRIM is not a SSD memory management command, and has nothing to do with fragmentation. It is also important for storage technologies other than SSD.
Of course blocks/sectors on any device will have multiple files on each sector. SSDs are no different in that regard. What gets presented to the filesystem is still a block device.
It probably does not help NTFS that much for use on SSDS that by default it has a 4K block size (whereas HFS+ has a 16KB blocksize).
A SSD's erase block size is generally 128KB, and a properly configured filesystem, will therefore be 128K aligned. So the "perfect" allocation cluster size for a SSD for optimal performance would be 128K block size, but alas, few file systems other than ZFS will do so..
The ATA TRIM command is equivalent to the SCSI PUNCH command.
It is basically a way for the OS to tell the disk subsystem, that certain blocks of the disk is now NOT USED; in other words, the disk layer can throw them away.
This is referred to block layer discard
It allows the disk to know that a bunch of blocks are no longer used by the filesystem and can be discarded.
If the block device is a SSD, once it receives a TRIM command, and a whole 128K erase block has been trimmed, it would generally make sense for the device to schedule the underlying flash pages that block resides on to be erased and prepared to have new data written to it.
Unlike with a standard hard drive, when you are dealing with flash memory: a flash memory page that had any data on it has to be completely erased before any new data can be written to it.
Write performance will go to hell if the SSD runs out of non-erased memory pages to store data to. Since it means a usable page will have to be erased to store that block.
When an existing block gets overwritten, new (unused) flash memory has to be consumed as if it was an entirely new block.
Therefore, if there ARE non-erased memory pages available to store data to, When you overwrite a non-TRIM'ed block, one of the free/remaining non-erased underlying memory pages will likely be consumed (since there is not enough time to quickly erase a page to implement 'overwriting')
You mean don't use Linux, it turns you into queer bait. As a gay man, all I can say is: "pfft, I wish".
I have the feeling that if you match the block size of files written to the block size of the SSD (optionally padding with zeros to fill it up) you could get quite a performance boost - and only when the drive starts to fill up start using the unused, zeroed out fragments from the blocks.
With SSDs it's erase block size that matters most. When a page of memory on a SSD device is being overwritten, the page has to be erased first, and then its contents rewritten.
Of course if your OS implements SCSI PUNCH or ATA TRIM, immediately when a block is freed, your SSD drive can have the memory erased ahead of time, and ready to use with minimal write latency.
Most SSDs use an erase block size of 128K. So you would want your entire filesystem's allocation blocks 128K aligned.. in NTFS world, this would mean you need to align the disk partition, at least prior to Vista/Windows 2008.
I believe MacOS automatically aligns partitions. This issue alone could explain why things might get so bad with Windows, let alone the ridiculously small 4K block size, or fragmentation issues that plague NTFS filesystems.
And the ideal allocation cluster size is 128K (by default NTFS cluster size is 4K, which is not suitable. for best performance change in such a scenario it to 64K)
You can think of the performance issue that can occur as something like RAID stripe crossing.
If you have two 4K blocks side by side, and you need to overwrite just those two blocks.. if they are on different 128K erase blocks, your SSD will be having to write 256K of memory to change 8K of data.
If those 2 NTFS blocks are on the same SSD block, your ssd flushes and writes 128K of data, maybe.
This is before we start thinking about wear-levelling algorithms,
or the fact an efficient SSD will likely keep a pool of non-erased blocks, to satisfy write requests against.
So as long as there is memory left that was scheduled for erasure and flushed due to TRIM or flushed due to being overwritten, there would be no reason to require an extra in-line ERASE (increasing write latency).
So the pool of non-erased pages are important, and the critical elements effecting write performance are (1) time to update header blocks to re-map disk blocks to unused flash pages, and (2) time to copy the erase block with changes to the newly mapped location.
I was going to mod this up, but that doesn't do it justice. Really had me laughing there, that was good.
I read TFA and all I got was this lousy cookie
All SSDs have a bit more storage than their rating. Partitioning a little less space on a vendor-fresh drive can double or triple the extra storage available to the SSD's internal wear leveling algorithms. For all intents and purposes this gives you the equivalent of TRIM without having to rely on the OS and filesystem supporting it. In fact, it could conceivably give you better performance than TRIM because you don't really know how efficient the TRIM implementation is in either the OS or the SSD. And because TRIM is a serialized command and cannot be run concurrently with read or write IOs. There are a lot of moving parts when it comes to using TRIM properly. Systems are probably better off not using TRIM at all, frankly.
In case people haven't figured it out, this is one reason why Intel chose multiples of 40G for their low-end SSDs. Their 40G SSD competes against 32G SSDs from other vendors. Their 80G SSD competes against 64G SSDs from other vendors. You can choose nominal performance by utilizing 100% of the advertised space or you can choose to improve upon the already excellent Intel wear leveling algorithms simply by partitioning it for (e.g.) 32G instead of 40G.
We're already seeing well over 200TB in endurance from Intel's 40G drives partitioned for 32G. Intel lists the endurance for their 40G drives at 35TB. I'm afraid I don't have comparitive numbers for when all 40G is used but I am already very impressed when 32G is partitioned for use out of the 40G available.
Unfortunately it is nearly impossible to stress test a SSD and get results that are even remotely related to the real world, since saturated write bandwidth eventually causes erase stalls when the firmware can no longer catch up. In real-world operation write bandwidth is not pegged 100% of the time and the drive can pre-erase space. Testing this stuff takes months and months.
Also, please nobody try to compare USB sticks against real (SATA) SSDs. SSDs have real wear leveling algorithms and enough ram cache to do fairly efficient write combining. USB sticks have minimal wear leveling and basically no ram cache to deal with write combining.
-Matt
All cell phone vendors goose the signal strength meter. All that happened was that Apple goosed it so much they got caught red-handed and were forced to admit it. It certainly was NOT a software bug or a mistake. There is no way it could have been anything but intentional (before they got caught) IMHO.
-Matt
Euh, the SSD doesn't know anything about the filesystem layout, thus files.
New things are always on the horizon
I did add noatime to ext4 mount options for my SSD.
New things are always on the horizon
Therefore, writing to one of the files in that page means that the drive has to re-write each file, and if one of the affected files is spread across several pages, then those pages have to get re-written, and so on.
What? Why? Yes, you can only erase an SSD a block at a time, but you don't have to re-write any other blocks. You just read the affected block into memory, erase the block, update the copy in memory with the changed data, and write it back. The only other data you have to change is the block lookup table used for wear leveling, which maps a logical block ID to a physical block of memory.
I wonder if they've done something non-standard but clever to mimic the functionality of TRIM? Like explicitly overwriting any deleted blocks with zeroes at delete time (or soon afterwards, as a low priority job) so that they don't need to be erased when recycled? If that's even possible with current APIs...
Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
Yes, and as we know, solid state disks lose performance when files are fragmented, because, when the disk spins, err, i mean the electrons, the heat goes around, ah, fuck it.
Your reply was witty, but all of the EEs here on Slashdot will tell you that, for example, trying to write to random addresses in, for example, DDR2 memory when you could have written the same data to contiguous addresses, is a very bad idea. The only reason programmers don't feel this difference quite so much is that the cache hierarchy of the CPU is babying them.
Not if the SSD has mor physical blocks than logical. If it had it could erase all physical blocks that were not mapped to logical blocks and use one of them at the next write.
Why haven't patches been made for all the major file systems so that they have am option to run "SSD mode"? In SSD mode the file system tells the SSD which blocks to erase. What is so diff?
Social Credit would solve everything...
Actually, you can clear bits to 0 at any time, bit by bit if desired. You can only set bits back to 1 sector by sector. That erase process is not fast. Because of that, we would like to queue up sectors for erase as soon as they're no longer needed. However, most filesystems just mark a block as free and assume it can be freely overwritten without penalty.
TRIM informs the SSD that a given block of data (which is likely smaller than the erase sector) will not be needed again. That way, when the erase sector needs to be copied in order to modify a block, the unwanted ones can be skipped and so become ready to be written immediately.
There's a lot of misinformation in these comments, and parent actually seems to know what they're talking about...
TRIM is sooo outdated. With the new iTrim you can take care of your disk by simply shaking the notebook.
And if you don't belive it Steve WILL multitouch your retina.
Are you being sarcastic or just proving my point?
24db loss is FAR from a slight loss. It means the range you can get an equivalent signal has just been divided by 8!
Can I get this as a Civilization IV mod?
Minor nitpick: it's "Marconi", not "Marcoli"... unless I missed the joke in that...
Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
They used the "write zero" disk erase method, which in fact un-erase every NAND block of the disk, which in turn forces the disk to erase each block again as it writes. Thats why they see such consistency of results : they are measuring the worst possible case where the disk is forced to the slow path for each block.
To erase NAND, you need to erase it by block, and the resulting block is full of 1's. Writing to NAND is a question of writing zeros in places, you can't write 1's on NAND unless you erase it.
So in a way, their test is showing that OSX is much, much better than windows when the disk is dirty, but that apple hasn't implemented the "trim" that allows the disk to re-erase nand 'free' blocks.
They didn't test it on a high performance platform. The Air is, unsurprisingly, optimized as a low battery usage mobile device. This implies a number of things, none of them good for trying to do high speed SSD testing. A more appropriate platform would be a Mac Pro, and perhaps look at adding on a high speed SATA card for good measure.
Now I can appreciate testing on a non-performance system too, but not if your objective is to test TRIM. In that case you need to be on a high end system so that the system isn't where things slow down, and difference will be due to the disk. Then, once you've established that, you can test if that difference matters to lower end computers.
The tests I read about were done by AnandTech. And yes, 24db is considerable, but it should not be enough to cause connection loss if you had a good signal to start with. That was my point, and that was what the article said their tests showed as well.
By way of comparison, they also found that the way you hold an Android Nexus can attenuate your signal up to 18db... even without bridging any antennas. So it's not like the iPhone 4 has a totally unique problem. It's just a little worse than some.
When files get fragmented performance starts to degrade
Nope, fragmented files are not a problem at all for flash. The problem is fragmented free space. Flash is partitioned into cells. Once a cell is blank (all ones), you can write to it once, then you have to erase it. Imagine that your cell size is 64KB and you write 32KB files all over it, then delete every alternate one. Now, before you can write any files, you have to erase a cell. If you want to write a 1KB file, you have to read a 32KB file into a buffer somewhere, erase a 64KB block, rewrite the 32KB file, and then write the 1KB file. This is very slow. With the TRIM command, you can tell the drive that the 32KB blocks are no longer in use, and it can compact the allocated space while the drive is idle, then have some free space for writing into, without needing an erase, later.
I am TheRaven on Soylent News
When files get fragmented performance starts to degrade
Nope, fragmented files are not a problem at all for flash.
With fragmented in this case I meant fragmented over many partial cells instead of using only complete cells except for the last one. Not fragmented as in the sense for platters where it means the file is scattered all over the disk.
I seem to recall osx or to be more precise hfs auto defragments a file when it is loaded. ie it loads a file then says "oooh messy" and writes it back in the background.
So the file second invisible write happens after the initial write time and in fact after a subsequent read time operation.
I wonder if osx is just doing things when it isn't being measured and files are constantly moving to spare gaps as a result.
(Someone must know more about hfs than my fuzzy memory to verify/refute this theory).
And, as I said, that doesn't matter. The files can be split over a lot of different cells and it won't matter more than a tiny bit when it comes to transfer. The cells are only used for writing. For reading, the entire thing is random access. You will need to send more commands to access non-contiguous blocks, but that's a pretty small overhead. It's the fragmentation of empty space, not the fragmentation of files, which causes problems for flash.
I am TheRaven on Soylent News
particularly liked 1799 :-)
The funny part is that you think the caveman was dumb enough to release his new invention under GPL and give up every advantage he had.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
Definitely you can do that - the problem you run into is the tradeoff between block size and storage efficiency, because you lose space at the end of a block of data. And you care about it more on small expensive disks than on big cheap ones. Some file systems deal with this by having two different block sizes, the smaller one used for frags, but even so, the bigger the big block size, the more you lose.
However, I'd expect Apple to do a better job of tuning their file systems to the media type than Windows does.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I RTFA and at the END realized the IDIOTS had done a ZERO-FILL of the SSD (so clean tests on a DIRTY drive), then read through two pages of comments and saw many others who realized it too. Please pull this fkng waste of time off /. Too late to get my time back but maybe help someone else.
1 phone is not some phones.. it's 1 phone and it's been critized as well when it was released.. The iphone4 has 24db loss. :p
This is considerable
Every 3db you double the range. 24/3 = lose 8x range. 18/3 = 6x range
So, unless you're right next to the antenna you actually don't get a signal at all, that's why so many are affected!
Think about it:
When you have the best reception, you are at around -50dbm.
When you are at the worse reception you are at around -110dbm (which is pretty good reception capabilities by the way)
when you remove 24db that's between 1/3 and half of the phone possibilities (which is more than half the range of course, as said higher)
Still sounds little to you?
Let's make a small example that looks a little more shocking maybe. The base number is random, I do get signal over 15km with some phones and towers, it depends on the area and the tower's power, and the phone sensitivity, but it gives an idea. Inside cities, the range is much less so the impact is bigger.
iPhone "holding it wrong": 500m range
Nexus 1 "holding it wrong": 666m (ops, the beast)
iPhone "holding it right": 4km
Why would anyone post something so awesome as AC?
1 phone is not some phones.. it's 1 phone and it's been critized as well when it was released.. The iphone4 has 24db loss. This is considerable :p
You are generalizing too much. They also listed other phones that lose considerable signal depending on how you hold them. I just gave one example. It really isn't a unique problem to the iPhone.
Frankly, I'll take AnandTech's tests over your theory any day. Theory and practice should be the same... in theory. In practice, they rarely are.
-110dbm is pretty sensitive, I'll grant. But I did not say that 24db was little at all. Please do not put words in my mouth. I made two claims only: (1) that things were not quite the way most people thought they were, and (2) that 24db is not that much more than some other phones, like the Nexus.
Correction: I did initially say "very small", and that is wrong. It isn't very small. But again, it isn't a great deal more than some other phones.
Well you see I don't put words into your mouth :P
I know only of the Nexus one has other phone that really has a problem with this, other phones have a much lower attenuation.
All phones have the "issue" because it's how radio waves work, however, the iPhone 4 has a real design flaw. It's a shame, since the receiver is actually good otherwise.
My "theory" is not really one, it's just data you can lookup and actually agrees with Anandtech.
Simply, many people think it's really a software issue and 24db is not much, but it's huge, and Anandtech didn't really emphasize that in a clear manner (well, they're not flamebait like me haha)
In my example @ 500m you would probably still see 5 bars on the iPhone while your range has been cut by 8x.
Since they are (24db) the measured db from Adnandtech, it's actually pretty precise and not much a of a theory vs practice thing.
You're saying the "Samsung SSD doesn't degrade because it's initial performance is already so terrible"?!
That makes no sense at all. Think about it. Even if the drive was slow enough. out of the box, that a read operation took 10 seconds to complete, that should result in it being more like 20 or 30 seconds when the drive is all fragmented up.
Unless a drive had 0 performance (never returned a result when you did a read or write), it should be possible to measure it degrading in performance from a clean setup and a fragmented one....
Clockwise in the northern hemisphere, and anti-clockwise in the sourthern hemisphere (or is that backwards, I can never remember).
A good joke all the way to the end, yet you missed a perfect opportunity to add an AYB reference, however old and dusty and outdated it might be.
A.D. 2101: War was beginning. Japanese-to-English translators found to be in particularly high demand.
The should use ATA7 secure delete command instead, to flash the entire SSD (physicaly) to the initial value https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
This procedure describes how to use the hdparm command to issue a Secure Erase ATA instruction to a target storage device. When a Secure Erase is issued against a SSD drive all its cells will be marked as empty, restoring it to factory default write performance.
http://www.gucciusaoutlet.net/index.php?main_page=index&cPath=75&zenid=aa7cf3c1c03ba16b9ac00c8cd2a23ef2