How to Measure your Server's Disk Writes for SSD consideration

How to Measure your Server's Disk Writes for SSD consideration

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?

SSD 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
Performance Counters in Windows Server 2008 R2

Open Data Collector Sets
Right Click on User Defined > New > Data Collector Set

Performance Counters Create New Data Collector Set

Name it something you can rememer, I called mine Disk Tracker
Then select Create manually and click Next

Performance Counters Create New Data Collector Set

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
Performance Counters Physical Disk Bytes Written per second
On the next screen click Finish

Now you should see your Disk Tracker Collector Set listed under User Defined.
Performance Counters Data Collector Set

Next we need to start the tracker to get some data. Right click on Disk Tracker and click Start.
Performance Counters Data Collector Set
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.
Performance Monitor Bytes Written Physical Desk

The Results

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.

4829 Visitors

Categories associated with How to Measure your Server's Disk Writes for SSD consideration


No Comments have been submitted
Email Needed to confirm comment, but not made public.
Type Code
Security Check
When you Post your Comment, you'll be sent a confirmation link. Once you click this link your thoughts will be made public.. Posts that are considered spam will be deleted, Please keep your thoughts and links relavent to this Article