Streaming data test. The numbers behind the concept

I did a test to monitor the real data behind streaming to check if some of the most popular factors we see on the posts really matter. I hope it´s the right place for this. If not please move it to the correct section.

Setup: i9-12900ks + 4090 + 64 GB (6400 MHz) + 990 Pro M2 (7000 MB/s) + 1 GB fibre
Settings: Ultra preset, 4K TAA, live weather, no air traffic and no photogrametry
Scenario: KNZY airport (default) with Airbus H125 chopper (default).

I started game having deleted rolling cache before, to force the creation of a standard 16 GB new one during first test. I did a first flight to cache data and repeated the same flight for a second time afterwards to check how much of the previously cached data was reused on the second flight. For the purpose of test I configured rolling cache to stay at a different drive (the E: drive), to better monitor its activity alone. Basically I have 4 M2 disks:

  • E: (green), where Rolling Cache is located.
  • C: (orange), where Windows 11 is installed.
  • F: (pink), where FS2024 is installed (including Community and the default Streamed Packages folder)
  • G: (blue), where only some ORBX addons are installed.

The columns on the screeshots below define, from left to right: current, min, max and average values. You can see disks, GPU and network usages here. After each screenshot current, min, max and average values were reset on purpose, to have a better picture of the impact of changes in each of those phases. I will round numbers to make things easier to explain.

Update after tests: network speeds use Mbps (there was an error in original units tag at the screenshots).

  1. After starting Windows, the initial situation was:
  • only C: has activity (rest show almost 0 data read/write).
  • no relevant data was downloaded yet

  1. After loading game, and while at world map menu, these are the figures:
  • we downloaded 1 GB from server till we reached the world map
  • average download speed was around 30 MB/s, with max network peak reached ONLY for loading world map
  • green disk write activity shows the initial 16 GB rolling cache creation (it´s 17 GB as data is indeed also added there after its creation)
  • we also see almost 4 GB read from game disk (pink), which shows some default content loading
  • just 300 MB are read from the addons disk (blue) at this point

  1. After selecting airport and spawning at runway:
  • we download 1 GB more that basically goes straight into the rolling cache, as we can see that total writes in green disk increases from 17 GB to 18 GB
  • for the runway spawn we also hit the max network speed however only for very short periods of time, as average speed is still 120 MB/s
  • from game disk we barely read anything new
  • from addons disk we read 4 GB new (some carriers and airports nearby)

After the initial load, which drives the highest workload, departing from North Island Naval Air Station (KNZY), at San Diego and heading north, things start to become interesting.

  1. Just 5 minutes after departure we have this:
  • we downloaded less than 1 GB extra, with just 14 MB/s average download speed and 400 MB/s peak
  • we added the downloaded 1 GB straight into rolling cache
  • game and addons disk show almost no significant new activity

  1. Then, 10 minutes after departure we have:
  • Only 500 MB extra were downloaded
  • average download speed was 13 MB/s with a lower peak now hitting 100 MB/s
  • The extra downloaded data keeps going directly into rolling cache, which has reached 20 GB (so 4 GB new were added into the initial 16 GB cache size)
  • The green disk read activity shows that only 500 MB from cache were read in total at this point, so after those 10 min flight in this first test

Now comes the REAL SHOCK :grinning_face_with_smiling_eyes:. We have basically downloaded 4 GB, for a short 10 min flight and they went straight into the rolling cache. Let´s make some good use of that, ok? Mmmm… not really. We come back to menu and repeat the flight.

  1. While repeating flight, after spawning at runway, we see:
  • basically only 500 MB new were downloaded
  • rolling cache increases in accordance as write activity on green disk adds the extra data
  • we barely see reading activity on the rolling cache (still around 500 MB)

  1. However, after 10 mins flying the same route heading north:
  • we still needed to download around 300 MB extra
  • downloaded data is still added to rolling cache, which reaches 21 GB write activity
  • the effective read data from rolling cache was just 100 MB (green disk read activity was only increased from 500 MB to 600 MB after repeating the same flight with same helicopter on a previously cached area).
  • since the initial spawn at runway during first test the GPU has been using 14 GB and that´s basically the figure also after 10 min on this second test

Conclusions:

  • Network speed peaks are only reached during initial flight loading, while very modest usage is needed for regular and periodic streaming activities when no photogrametry is used
  • Most of the download efforts are dedicated to populate a significantly big rolling cache
  • The effective usage of the already cached data on disk is 100 MB. Yes, that´s it :man_shrugging:. After 10 mins of the first flight we cached 4 GB, however we just read again 100 MB of those 4 GB from cache after 10 mins of the second flight over the same area with he same helicopter.

In my opinion the streaming concept is needed and is perfectly correct to use it. However the principle of using a so heavy rolling cache does not appear to add anything extra except saving the already downloaded data on disk for no real reason. According to tests the read activity shows very few reuse of cached data with the standard 16 GB rolling cache setting.

Maybe this could help in other situations but when you check the statistics profiler you can see that most of the main 3D data (the player aircraft models, the liveries, etc) are still loaded in the memory directly. On the other hand the “Streamed Packages” folder keeps a copy of the configs from the main assets.

Therefore, do we really need 128 GB caches or can we stay with default 16 GB ones? Indeed, do we need a rolling cache at all if some data still needs to be downloaded anyway even if we have a cache and the reading activity from it is so low? After these tests I don´t think it really adds significant improvements other than storing all downloaded data at a given file.

I hope this helps.

Cheers

8 Likes

After 10 mins of the first flight we cached 4 GB, however we just read again 100 MB of those 4 GB from cache after 10 mins of the second flight over the same area with he same helicopter.

Thats because it was still in your RAM, no need to reread it from SSD. Clear your RAM or reboot, then you’ll see stuff read from the cache.

2 Likes

That´s indeed the point. Why do we need a rolling cache if data needed for the current flight can be still available in memory, which is much faster?

Extrapolating the tests figures after a continuous 40 mins flight we would add 16 GB to cache, so we would deplete the standard cache size and new data will start to overwrite the cache.

On the other hand, after a few flights over non cached areas most of the old existing cached data will be overwritten and will be therefore useless anyway. We all know users can´t cache the entire world, not even a relevant portion of a country, with regular disk sizes. That´s why we need world data streaming.

Yes, if you fly around the same area during the whole day this could make some sense to save some server bandwidth but I still think it´s more efficient for user systems to store things in memory and just release them when they are no longer needed, so some time after you passed the initial area and after each flight is terminated. That´s why we have fast RAM and VRAM nowadays.

Cheers

1 Like

My question is: When I’m flying a plane that’s in my Communtiy folder (i.e not streamed) and I fly over the same scenery 5 times, with a sim restart every time, does the sim prefer to use the cached data first, or does it ignore the cache and treat the scenery as if it’s never been cached, streaming it again…and again…and again.

Unless things have changed a lot compared to FS2020 case, autogen (trees and generic buildings) would be still generated at client based on source data from server, so this portion of scenery can change each time as some of those things are random. For instance you won’t have exactly the same amount of trees, sizes and shapes but the same types of trees and forest density. I therefore understand you would only cache the source data itself (biomes) but you may need to download again some new textures for instance.

Bing textures and terrain elevation should be the same everytime, provided that terrain textures shaders are still also valid, so that should be also cached completely. POIs and handcrafted airport buildings are unchanged too so they should be also cached. Same would happen to player aircraft and their liveries (if you use non community/local content), that don’t change except due to icing and dirty textures.

Basically in such situation you describe, and provided that cache data was not overwritten during those 5 flights (so there’s still some available room on it), game should use the cached data most of the times and only update things like live weather (and related clouds textures) and some autogen models/textures. At least I understand that’s why they added the usage of the cache for downloaded content. If this is not the case then I don’t understand why we have it.

A test would help here just to be sure of what game indeed does.

Cheers

My assumption goes to the classic problem of “when to bust the cache”.

Theoretically it makes sense to always read from cache and never try to load from the network, but practically there is a ton of logic around when to actually rely on the cache or not.

For example, if your network is fast (1 GB/s!) and you didn’t set any bandwidth limits (I don’t think this was mentioned?) why would the game read from the HD if its read speed is slower, just bypass the cache and get the data directly into memory via streaming would result in a better experience.

Even if your HD is as fast, or faster, why hit the cache if you don’t set any bandwidth limitations, streaming will get you “live” data regardless (classic always bust cache).

I’d be curious to see if you set super strict bandwidth limitations what would happen. I assume the streaming gets throttled and the cache ends up being used more aggressively. Or if you nuked your network speed to be vastly lower (idk the right way to do this for an experiment) the cache would step in due to network latency.

1 Like

I can imagine some reasons:

  • reduces stress on server (now thin client involves more downloads)
  • prevents data loss (if memory is released you have to download missing data again) which again involves stress on server
  • not all players have fast networks
  • not all players have large/fast memory setups
  • Xbox has a fixed amount of memory

But yes, I also understand the general principle behind the streaming concept should be to rely more on live data and basically have a simplified front end on clients for rendering and for user inputs.

If you still need to cache 1TB every day for a regular session we just have virtual game disks but we are still using the same old style concept: client disks which are slower when managing large data sets and memory frequenly busy to release content so that footprint is small but having to reload it again few minutes after that.

Basically the well known old main thread limitations when memory data swap happened but now caused by large cache being overwritten after few minutes usage.

Cheers

I’d honestly run the test again and tweak the settings for network bandwidth to try to nerf your network settings.

On the Azure side of things, its a top-tier cloud provider so “stress on the server” is basically a non-factor due to scaling.

If your network is slow, my guess is the cache will step in and you wont see any issues from the user-experience side of things. Otherwise the network you tested with is pretty fast, so I’m not that surprised the sim bypassed caching, especially if your network stayed fast the entire time without any hiccups.

To be honest I don’t want to do much more testing as I will upgrade my system during next weeks, so I wanted to check if it was interesting to buy PCI-E 5.0 disks or they would just help during initial flight loading only. Devs or other users can test this cache topic deeply. I just shared data here because I saved that for myself, but in case it helps it’s here for everyone.

My main target was to evaluate cache performace as I have not seen significant improvements between 16GB or larger caches or when placing it on a separate disk which is not used (so using a dedicated disk for it).

On the other hand disks, as well as network, hit max speeds only at very specific cases during initial loading and for short periods of time, so I don’t see that large cache on faster disks or faster networks are better than a fast RAM and VRAM for instance during regular scenery updating. Game uses half of my 64GB RAM and also half of my 24 GB VRAM in most cases, as far as I have seen.

Cheers

Yea I assume RAM is a big player regardless of where the data comes from (cache or network) that’s for sure.

If anything its a data point for the community, thanks for reporting :salute:

2 Likes

That’s an interesting idea. I’ll limit my bandwidth in the sim to various degrees and run some tests.

Was unlimited for the tests above.

Guys, I was curious about TheWumboWing proposal to reboot between tests so that memory was cleared completely, so I repeated some of yesterday´s tests, also reseting current/min/max/average values before starting each test phase. There´s a clear diference now.

I used same test conditions. I did a first 5 mins flight to force a new 16 GB rolling cache creation. Results were similar as yesterday: we download 4 GB and cache write activity reaches 20 GB (16 GB initial size + addition of the downloaded 4 GB). Then I rebooted PC and launched game again to test full usage of cached data.

Update after tests: network speeds use Mbps (there was an error in original units tag at the screenshots).

  1. After loading game and at world map menu the data shows the following:
  • instead of downloading the initial 1 GB during game loading as yesterday, the activity shows that they are read from cache (see green disk read activity). Today we just downloaded less than 100 MB from server.

  1. After spawning at runway we have:
  • we have downloaded 700 MB, added 300 MB to cache but reused 1.5 GB from cache (green disk read activity increases from 900 MB to 2.4 GB)
  • both network speed and cache disk read speed have short fast peaks, but average speeds were still quite low (last column)

  1. Then 5 mins after departure we have:
  • we have downloaded only 150 MB new, however those 150 MB new were also added to cache (see green disk write activity reaching 500 MB)
  • After those 5 mins we read around 700 MB from cache, reaching a total of 3.1 GB in green disk

Additional conclusions:

  • For this situation the cache clearly helps during initial game loading (almost no data is downloaded)
  • The cache also seems to help during initial flight loading, as the highest reading activity is seen once at runway. However we still need to download a relevant amount of data there (700 MB). Why so much? Maybe just the new cloud textures and weather data according to current situation and small different textures for autogen.
  • The tradeoff afterwards, during regular flying and standard scenery updating, looks better than yesterday. We only downloaded 150 MB new after 5 mins, instead of 1 GB, and they are still going straight into cache as yesterday.
  • However the average disk read activity and network activity are still very far from max capacity during standard scenery updating. Only during short periods of time we see peaks close to max, in particular at initial game loading and initial flight loading
  • Cache clearly helps but maybe a better tradeoff is to cache main assets only (aircraft, liveries, etc) as they won´t change, but still download the entire world data from scratch.

It would be great to be able to disable cache completely (as in MSFS case) to check last point. In my case disabling rolling cache in MSFS produced much better scenery streaming results than enabling it, no matter the size I selected. Scenery streaming is still the most relevant factor in the process for FS2024 as well, as player´s assets (aircraft, livery, avatar, etc) should not change after initial loading.

I still have doubts about the negative impact of managing several GB data cache files in short periods of time. Even for RAM too big data dumps in short time have impact on main thread latency. That was also the case with MSFS and FPS drops to low 20s or 10s could be seen there. At least I also see short periodic freezes with FS2024 during regular scenery loading as well, even at normal scenery areas, so something in blocking main thread and manipulators thread even if scenery is not so dense. Those freezes also happen during initial spawn (at the “click to start flight” step), which is one of the heaviest data exchanges we can see.

I hope it helps.

Cheers

1 Like

Thanks for the extensive testing.
Can’t you disable the cache by simply deleting it?
Or does the sim recreate a 16GB RC on startup if it doesn’t find one?

No, you can´t disable it. If you delete the file itself it will create a new default one (16 GB) during game loading. And there´s no option to disable it at the UI itself either.

Cheers

1 Like

If I understood the dev stream correctly, the Rolling Cache has a bug in it where it doesn’t always release previous data when it’s supposed to. Fix is coming with SU2.

2 Likes

This is unlikely with modern SSDs. A gigabit connection has a max theoretical throughput of 125 MB/s. In the data you collected the 925 DL rate is most likely Mbits which would translate to 115 MB/s.

1 Like

Oooooh yes… I forgot the Mbits conversion, thanks :+1:

Anyway I haven´t seen my M2s reaching max transfer rates, nor even close to it, during regular scenery updating. They stay on the higher range during game loading and initial flight loading and only for brief periods of time. Same applies to network. I understand the regular scenery updating is therefore not requiring so much data transfer (whichever the data origin is), at least according to the total disk reads and network downloads we can see during tests. The critical points are clearly the game loading and the initial flight loading themselves.

Cheers

Your system is exactly the same as mine,

Thank you for taking the time and effort to do this innovative and detailed analysis. :).

1 Like

How do the observations prove that conclusion?

By checking the disks read speed vs network download speed. But two posts above you can see that I missed the Mbps units, so network speeds were not in MB/s during tests. The values were fine but they were Mbps, so they can´t be directly compared with disk speeds without an additional conversion.

So, ignore that conclusion. I have just removed that from my original post so that it´s not misleading.

Cheers