How to Measure your Server's Disk Writes for SSD consideration
Posted on Jan 18, 2013 by Paul White
Before anyone considers throwing an SSD
into your server, its important to be sure your server is not going to destroy that SSD
with writes after a few months. In this guide I will show you how to use Performance monitoring in Windows Server 2008
R2 to determine what kind of write activity your server is currently doing. Then after that we can calculate our daily and annual writes, allowing us to determine how long that shiny new SSD
will last in our server.
Why do we care about Write endurance on SSDs?
drives use Flash
NAND memory which has a limited number of writes it can handle before it goes bad. MLC based SSDs are said to last for 3000 - 5000 writes per cell, while TLC only lasts about 1000 writes per cell.
How do we calculate how long an SSD will last for?
Lets say we have a TLC based SSD
with a capacity of 250 GB. Each Cell can last for 1000 writes, meaning you should be able to write the entire drive 1000x before cells start to go bad. This means you would have to write 250 TB before the SSD
's write endurance becomes an issue. This is a lot for consumer based systems, but for servers its a different story. Servers run 24/7 and are constantly writing to the drives. Even your conservative estimates on how much writing your server is doing are bound to be low. I originallly guesstimated my server did about 10GB of writes per day. The actual value turned out to be closer to 60 GB per day. This is on a Web Server that I thought we mostly reads.
Using Performance Monitors to measure our Bytes written
Windows Server 2008
R2 has a tool called Performance Monitors that will allow you to log various system properties. Its especially useful for when you are trying to determine bottlenecks. Its also available on other windows Operating systems
To Open Performance Monitors
Start > Control Panel > Administrative Tools > Performance Monitor
Open Data Collector Sets
Right Click on User Defined > New > Data Collector Set
Name it something you can rememer, I called mine Disk Tracker
Then select Create manually and click Next
Select Create Data Logs and check Performance Counters, then click Next
Sample Interval can be as often as you wish, but typcially do once every minute.
Click on Add and a list of performance counters will show up.
Select Physical Disk and Disk Write Bytes / sec.
Under Instanance of selected Object select only the drive you will be considering replacing with an SSD
. In this case we are selecting C:
Then click Add and OK
On the next screen click Finish
Now you should see your Disk Tracker Collector Set listed under User Defined.
Next we need to start the tracker to get some data. Right click on Disk Tracker and click Start.
Performance Monitor is now monitoring your server with your user defined Collector Set. Let this run for a while. I recommend letting it run for more than an hour. If you have any special scheduled tasks that run less often than hourly I recommend you make sure to allow it to run long enough to collect that data as well. You can now close Performance Monitor. It will continue to run in the background, even if you log off your server it will still be running.
We will come back to stop the counters and retrieve our data in a few hours.
A Few Hours later..
Now that we have given our server a few hours to log its activities, we need to go back into Performance Monitor to stop our Data Collector.
Right click on Disk Tracker and select Stop.
Now Open Reports > User Defined > Disk Tracker and Select the Newest Report. Each time you start and stop your Data Collector there will be a new report displayed under here. I had ran my report before hence the reason you see multiple reports for mine.
From our data you can see we ran our Performance Counters for 2 Hours 28 minutes. The average Bytes Written per second was 539,153.467, or about 540 KB / sec.
Determining our Daily and Annual Bytes Written.
539,153 Bytes per second
32,349,180 Bytes per Minute
1,940,950,800 Bytes per Hours
46,582,819,200 Bytes per Day
or 43.38 GB per Day
Assuming a Write Capacity of 250 TB for a Samsung 840 SSD
( 250 GB size )
250,000 / 43.38 = 5763 Days / 365 Days per year = 15.7 Years.
So in my case as long as I don't intend to use my drive for more than 15 years I should be good. Its important to keep in mind these calculations are assuming perfect wear balancing by my the SSD
's Controller, which can't be expected. Its also assuming the drive will not be kept at capacity, as the more data you keep on the drive the faster it will wear out, even though the drive does have a large reserve for provisioning.
These figures are also assuming I would be running everything off a single SSD
. In my case I will be putting about 6 of them into a raid
10 array, which means the data will be striped across three drives and mirrored by another 3. With the load being spread across 3 drives this means I could theoretically last 3 times as long before the drives will go bad.
No Comments have been submitted