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||1279||26.3MB|
|GRID: Autosport Write||4||8||3||28||1||7||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.