SSD benchmarks generally include two fundamental file I/O tests: Sequential and 4K random R/W. At a very top-level, sequential tests consist of large, individual files transfers (think: media files), which is more indicative of media consumption and large file rendering / compilation. 4K random tests employ thousands of files approximating 4KB in size each, generally producing results that are more indicative of what a user might experience in a Windows or application-heavy environment.
Theoretically, this would also be the test to which gamers should pay the most attention. A "pure gaming" environment (not using professional work applications) will be almost entirely exposed to small, random I/O requests generated within the host OS, games, and core applications. A particularly piratical gamer -- or just someone consuming large movie and audio files with great regularity -- would also find use in monitoring sequential I/O in benchmarks.
This article looks at a few things: What types of I/O requests do games spawn most heavily and what will make for the best gaming SSDs with this in mind? There are a few caveats here that we'll go through in a moment -- namely exactly how "noticeable" various SSDs will be in games when it comes to performance. We used tracing software to analyze input / output operations while playing five recent AAA titles and ended up with surprisingly varying results.
UPDATE: Clarified several instances of "file" vs. "I/O" usage.
Previous & similar articles that may be of assistance or of interest:
The Question: I/O Request Sizes & Number of Files / IO Operations for Games
This test was mostly conducted as a curiosity, but it will also help shape our SSD testing suite going forward. This is a part of our effort to publicize our internal testing as we prepare to test products -- something few other sites delve deeply into. By measuring the most common I/O requests in gaming (and other) use case scenarios, we can properly build an SSD test bench to reflect real-world use. It also means that—as a user—you'll be able to take this information and better understand SSD purchases and reviews as they pertain to your uses.
Out of curiosity, we're also answering another simple question: How many I/O requests do games actually issue during play? During loading? How many writes do games perform? Raw data lower down will show this.
Video Explanation of This Test, I/O Requests, Gaming I/O, & Impact on Endurance
Using HD Tune Pro to monitor active I/O requests during gaming and game-loading scenarios, we'll measure read & write ranging from 0.5K to >64K. Special attention will be paid to the 4K size, as that is generally what is tested in random read/write tests when performing SSD reviews.
Games are incredibly diverse in their optimization, as we've learned from our Watch Dogs, Titanfall, & GRID: Autosport optimization and GPU benchmarks. Five games will be tested:
We're testing two instances of each game: Load I/O and "gaming" I/O. The former will be measured strictly during initial launch of the game, the latter will be tested during a 6-minute live gaming session. In the case of multiplayer games, this will be measured only in full servers (max population), just in case. GRID, Watch_Dogs, and Metro will be tested in singleplayer environments.
HD Tune Pro's monitoring will be initiated upon test start. In the case of load tests, this will be prior to launch and will end upon menu accessibility. In the case of gaming tests, the monitoring will begin on the menu and will terminate after 6 minutes of in-game play. This monitoring includes any level loading or cell transitions during this time.
All testing was conducted while using a 256GB Samsung 840 Pro SSD, though the SSD will not impact I/O requests (that's dictated by the software).
The system was kept in a constant thermal environment (21C - 22C at all times) while under test. 4x4GB memory modules were kept overclocked at 2133MHz. All case fans were set to 100% speed and automated fan control settings were disabled for purposes of test consistency and thermal stability.
A Disclaimer: Don't Take This too Seriously
Before we get to the results, I want to demystify a few concepts regarding SSD performance. Here's the thing: In gaming, it's really going to be almost entirely irrelevant which SSD you opt for in terms of speed (ignoring other factors - like endurance and longevity).
Games are notoriously sub-optimized when compared to other applications, especially taking into consideration console porting and console storage limitations. We've already reported on this extensively with Watch_Dogs, which shipped with memory leaks and other issues. Professional applications will inarguably take advantage of higher-end SSDs. Adobe Premiere, for instance, can encode faster with SSDs that offer higher sequential performance. Encryption performance is also heavily impacted depending on the SSD and controller used. Today, though, we're strictly focusing on games. The rest will come with time.
If gaming performance will be effectively the same with most SSDs, though, it seems almost odd to test such a thing. Testing the common I/O sizes in gaming will give a greater understanding of how games operate and will help in our efforts of making SSD reviews easier to understand. SSD reviews can be several pages long, often filled with half a dozen tests, and those are meaningless if the reader has no relative performance basis to interpret the data. That's what this provides. This article should supply some sort of "oh, right, 4K operations are those and are that common in games" type of knowledge when reading a review.
As for SSD differences: You'll see the most performance difference in loading the game (launch), but it's still going to be within milliseconds or a second of other comparable SSDs. Launch performance can be several seconds faster than an HDD, of course. Once in-game, loading cells (zone transitions with no loading screen, like in Skyrim) will be almost completely seamless with any SSD, though they might present a very brief stutter on a hard drive. You've likely seen it if you've played Skyrim, especially when modded with large texture packs and other I/O-intensive mods. That's not to say that your choice in SSD is irrelevant -- definitely the opposite -- but just that the goal here isn't to definitively state that one SSD is better than another "at gaming."
This disclaimer noted, let's get to the results!
GAMING - SSD Results - 4K Random vs. Other Throughput
Everything is measured in percentage of operations read or written. A table further below shows the actual count of operation requests, in case you're curious.
Eyes will likely be immediately drawn to Metro's outlandish favor of 32K operations. What you're looking at is a chart of 5 different games, each being measured for 9 different I/O request sizes (read only). What we learn from this chart is that 32K and 16K operations are more popular than previously expected. 4K is heavily used -- which is good, since most tests are based on this assumption -- but it would seem that games are trending toward 16K and 32K packages for more efficient loading.
Almost no operations are above 64K in size. Only Battlefield 4 and GRID: Autosport contain any noteworthy amount of >64K operations.
Now for the writes:
This chart shows the same games and operation sizes, but in writes. It's clear where the bulk of the transactions rest here: 4K writes. From this, it is understood that 4K random write performance would be the most immediately relevant to gaming applications. I was somewhat surprised to see as many >64K operations as we do. Watch_Dogs makes sense -- it's dealing with bigger world data and local save data that's pretty large. I'm not sure about the others without speaking to the games' engineers.
How Many I/O Operations do Games Perform?
If you're curious about how many operations are actually requested while gaming -- not just percentages -- we've tracked that, too. A few outliers make charts effectively useless, so we've elected for a simple table instead:
|GRID: Autosport Read||2||1||0||81||4||36||135||0||296||7.2MB|
|GRID: Autosport Write||56||11||0||685||42||104||11||0||1090||66.4MB|
|Metro: LL Read||0||0||0||42||47||58||10003||1||10294||320MB|
|Metro: LL Write||72||31||33||709||40||50||1||1||1112||77.8MB|
Metro's read count is the most impressive, sitting at just above 10,000 32K operations processed by the SSD during our 6 minute playtest (3 different levels loaded). All 10,003 of these I/O requests accounted for 320MB read from disk, with 77.8MB (1112 operations) written to disk.
Titanfall is similarly impressive, but in the opposite direction -- the game only performed 8 read operations during our play session (a single level), yet performed 352 write operations (primarily 4K). These accounted for 274MB of data written to the disk during play, but only 156KB read from disk.
Battlefield 4 only read and wrote a combined total of ~70.5MB of data (3.2MB read, 67.3MB written). It is reasonable to assume that a large count of Battlefield's I/O transactions occur on a client/server level, and might not ever hit a local disk.
It looks like BF4 and Titanfall are a bit more write-intensive (percentage-wise) than their counterparts, though Watch_Dogs is almost even with reads:writes.
Either way, it's fun data to look at!
Continue to page 2 to see data from the initial launch of each game.
LAUNCH - SSD Results - 4K Random & Sequential vs. Other Throughput
Our skittles-colored chart looks a little less chaotic when examining the load distribution for each game. These tests were conducted strictly from the launch of a game to arrival on the menu screen.
The above shows read I/O 32K is easily the most prevalent operation size transacted when loading a game or loading a level. 16K after that, then 4K, then 8K. Large I/O requests (>64K) are uncommon.
Looking at writes:
Whoa! That's a lot of 4K transactions. Games love writing dozens of small (4K) operations during launch and level transitions. These writes can be attributed in part to log files and auto-saves. Following 4K in popularity are 16K operations, then 8K. We see a surprisingly high count of 0.5K and 1K operations written during initial game loading.
Percentages only go so far, though. Here's a table with the total count of operations loaded during game launch:
|GRID: Autosport Read||5||27||9||236||227||98||454||0||1279||26.3MB|
|GRID: Autosport Write||4||8||3||28||1||7||0||1||87||1.1MB|
|Metro: LL Read||7||21||7||167||56||141||490||1||1044||60.5MB|
|Metro: LL Write||11||4||3||571||48||229||1||2||939||8.2MB|
Somewhat surprisingly, GRID: Autosport performs the most reads upon launch. Metro still wins-out in total I/O, but GRID loads a significant count of 4K, 8K, and 32K initially. Battlefield 4 writes (relatively) large amounts of data to the disk just launching the game, though we're unsure of what these requests are.
Conclusion - What Can We Learn from This Experiment?
The main takeaway is just how much data is written to the disk every day -- though we see a surprisingly efficient execution of data while gaming. Note that although some of these games might write hundreds of megabytes of data during a play session, almost none of that data is actually permanently stored. That's why your disk doesn't inflate like a balloon after an hour of gaming -- it's caching and dumping data as needed, meaning most of these files are temporary. That still burns P/E cycles on the NAND, but that's largely unnoticeable unless you're seriously stressing your SSD with other applications elsewhere.
After this, it's worth noting just how common 32K operations are in modern games. Although any modern SSD will perform effectively identically when gaming -- at least as far as the user can see -- we can take this information and incorporate it into future synthetic gaming tests. It could become more relevant as games continue to move toward large storage requirements (like Titanfall's 50GB), especially PC-based games like Star Citizen. Looking to the future is always important when building test cases.
That noted, I personally found the fact that these games are only loading ~70MB (or less) of data during initial launch to be somewhat shocking. I'd anticipated gigabytes of reads, given the size of the games, but I suppose it makes sense: Watch Dogs, Titanfall, and the others don't need all their texture files and level data immediately accessible at launch. They just need the menu and the input functions, maybe a background video. So loading small amounts of data is fine, then the rest is fetched when the user progresses to a playing state. Surprising efficiency in the I/O department for these games. This perhaps indicates that storage isn't the only load-time bottleneck going forward -- maybe the CPU is getting choked-up on tasks (inefficient task queuing or execution?) or something similar.
At the end of the day, it's cool stuff, interesting information, and just fun to learn. That's why we do this.
Hope you all found this study as interesting as we did! Nothing ground-breaking, just some good, old-fashioned science. Studying hardware is what keeps the job fun.
- Steve "Lelldorianx" Burke.