Jump to content

Photo
- - - - -

ArmA 2 I/O analysis results


  • Please log in to reply
485 replies to this topic
Thread Starter
qwertz
qwertz

    Staff Sergeant

  • Members
  • 228 posts

Posted 18 October 2009 - 06:51 #1

THIS THREAD IS CONTINUING THE "RAMDISK" THREAD - PLEASE CONTINUE THE RAMDISK DISCUSSION HERE!

Original thread: http://forums.bistud...ead.php?t=88388

_________________________________________________________________
Update 19 Oct 2009

I have pimped my analysis tool a little so that everyone can download and use it to easily analyze his/her own ArmA 2 disk performance.

I am not a programmer so this is one large Excel file. It includes all instructions, and the process is rather simple (read the instructions carefully though).

If you use it, It would be great if you guys would share the results here in the forum so we can all learn more.

Here's the download link to the ArmA_2_IO_Analysis_v0.22.zip file (now version 0.22, should work with everyone's data now):

ArmA_2_IO_Analysis_v0.22.zip

Please let me know what you think, i.e. if there are any problems with the tool.


___________________________________________________________________

OK guys,

here's the results of a few hours of analysis (I will just post them and comment later/tomorrow in detail) - very interesting findings:

Posted Image

Arma does not use file caching - period. This means all the tools that are advertising to optimize the windows cache are useless for our purpose. On the other hand, it means that Arma is really 100% streaming the content. Because as a 32 bit app it can only address 2GB max (and I have yet to see it use more than 1GB), with >9GB of game assets, it means that there must be a LOT of disk activity.

Lets have a closer look:

This is 3 x the same data, sorted (1) by PBO name (2) by MB/s per PBO and (3) by total number of read I/Os per PBO. You can use the two tables in the middle and on the right to see which PBO's you should prioritize when you have limited RAM available for a RAMdisk - just look at the "FS (MB) cum.(ulated)" column. Also, note that my 6 minutes of gameplay left some PBOs completely untouched - this alone saves 1.7GB, but might be caused by the rather short game play time for the dataset.

Posted Image

This dataset is based upon 6 minutes of gameplay, with ProcMon capturing all file activity in the ArmA 2 folder (for this exercise, the ArmA 2 folder was on my 2 x Velociraptor RAID0 disk array, not on the RAMdrive). As you can see, ProcMon recorded over 10,000 read events, totalling ~1GB of data reads in 360 seconds :eek:. This is mostly "random read" activity - wait a moment - hard disks are not very good at random read - this might get interesting.

Here is another look at the data, now on the 360 seconds timeline - and this is the key to understanding why we have stutter with HDDs but not with RAMdisks:

Posted Image



On average, ArmA 2 creates a load of 30 IOPS and reads 2.9 MB/s. This might sound harmless, but as the graph shows, the distribution of I/Os is not at all even - it shows heavy spiking !

As a reference, this is what a fast HDD (Velociraptor) is capable of:

Posted Image

As you can see, in random read the fastes consumer HDD is capable of 50-141 IOPS, and 0.07-50.00 MB/s (mind you, your average 7200 rpm HDD is way slower). What is more important is that as you can see above, the average I/O size across all reads recoreded is 97 KB. The mighty Velociraptor is somewhere between 50 and 127 IOPS for this I/O size. So, the spikes on the IOPS graph are definitely saturating the HDD, causing stutter.

But it gets worse. The 97k average I/O size is not evently spread out on the timeline, either. As you can see on the graph above, it oscillates between a few KB to up to 1000 KB, and many times it dips into the 200k and bigger numbers.

At these I/O chunk sizes, even a single Velociraptor can not deliver the 50+ Iops and 10+ MB/s that ArmA 2 is churning through !!

This is what causes the stutter - ArmA 2 simply oversaturates the average hard disk subsystem. And this is why a RAMdisk helps so much in increasing the smoothness of the game!

This also means that this data is not reflective of what the real I/O need for ArmA 2 is - without the HDDs bottlenecking, we would see higher numbers here. I will do the same test running off the RAMdrive when I have time to verify/falsify this thesis.

Also have in mind that I am still working with averages here and one-second "buckets" - there might be more extreme oscillation going on that is just not visible at this resolution.

First conclusion: put ArmA 2 on the fastest disk subsystem you have. This test was run on a Veloci RAID0, and I had a lot of stutter (well, coming from my RAMdisk, that is). Even on my Vertex SSD RAID0, there is still stutter. Only the RAMdisk removed the bottleneck completely - go figure.

I'm tired now, will share some more observations with you tomorrow.

Best,

qwertz

Edited by qwertz, 21 January 2012 - 00:51.


tankbuster
tankbuster

    First Lieutenant

  • Members
  • 5340 posts

Posted 18 October 2009 - 07:15 #2

Resize those images, fella. You'll break the internet posting more than 100k pics!
Documentation is not a dirty word.
: TeamSPAFF : PRACS : RKSL : Stella Artois : Creme Eggs : Elite Warriors :

Making working streetside IEDs since 2011.

Peonza
Peonza

    Nazis are not welcome here

  • Banned
  • 46 posts

Posted 18 October 2009 - 07:34 #3

Cool find. Now it explains why some people playing with 8800 cards owns ones with 4870's in arma mark

Greg
Greg

    Staff Sergeant

  • Members
  • 327 posts

Posted 18 October 2009 - 07:40 #4

Very interesting findings Qwertz. This kind of profiling would be useful to BIS if they chose to pay attention to it.

4 IN 1
4 IN 1

    Second Lieutenant

  • Members
  • 4601 posts

Posted 18 October 2009 - 08:23 #5

I personally dont think there is much for BI can do on this matter

I don't use a pump to scare somebody. I use a pump to shoot somebody.


-Travis Haley - Magpul Dynamics - Art of the Dynamic Shotgun

1911 mag, twinkie, twinkie, cupcake, primary weapon magazine... OH! There it is!


-Christ Costa - Art of the Art of the Tactical Carbine 1

.kju -PvPscene-
.kju -PvPscene-

    Brigadier General

  • Members
  • 12275 posts

Posted 18 October 2009 - 08:25 #6

Sincere thanks for the in depth analysis Qwertz!

One aspect nice to verify is that if lower graphic settings
mean less data to stream / read from the HDD.

PS: BI can make special contracts with SSD or RAM drive companies. :P



Current active projects: None :(

Maintained/assisted projects: IFA3, Blitzkrieg


Help: Got a crash? Report it! What is the RPT log file?


Inkompetent
Inkompetent

    Warrant Officer

  • Members
  • 2068 posts

Posted 18 October 2009 - 09:04 #7

Very nice analysis indeed!

It was already known that RAM/SSD drives vastly improve ArmA2 performance, but it's lovely to get see some actual numbers on it :)

Alex72
Alex72

    Moderator

  • 5101 posts

Posted 18 October 2009 - 09:09 #8

Thanks a lo Qwertz!

RAMDISK it is! Since ARMA2 is the only thing i play really.
Posted Image

Bono_LV
Bono_LV

    Sergeant

  • Members
  • 111 posts

Posted 18 October 2009 - 09:40 #9

Thank you for taking your time to do this analysis. Really informative.

On other side, I must agree with 4in1. I don't think there is anything that BIS can improve with that.

Also... It would be nice if someone of community could find explanation why buildings in Arma 2 are such a fps killer.

PogMoThoin
PogMoThoin

    Staff Sergeant

  • Members
  • 349 posts

Posted 18 October 2009 - 11:18 #10

This explains why the Sahrani caa1 mod runs much smoother than Chernarus, no constant loading of the plants2_tree.pbo or structures.pbo as the map is less dense in plants and buildings.

Now I've only 4GB ram (wow, I just said it, 4GB is loads), there must be a way we can add the most used .pbo's to a 1GB ramdisk or force the game to load them to ram. Hope BI are watching, this is an idea for the next patch

Nice work qwertz

Main pc: (Windows 7 64bit)
Asus P5Q Pro, Core 2 Quad Q9550 E0 @ 3.8Ghz, 1024MB XFX HD6870, 4x 2GB GSkill PC2 8000, 40GB Intel X25-V SSD, 2x 36GB Raptors Raid 0, 2x 1TB Samung F1 Sata, 2TB Samung F3 Sata, Corsair TX850W Psu, Creative X-Fi Fatal1ty, Lian-Li V2000, Dual loop custom watercooling, Samsung Syncmaster 245B, 600W Technics 5.1 Surround, Saitek Eclipse II Keyboard, Saitek GM3200 Mouse, Saitek X52 Flight Controller, TrackIR5

Liquidpinky
Liquidpinky

    Sergeant Major

  • Members
  • 1565 posts

Posted 18 October 2009 - 11:24 #11

Nice work qwertz, from that data I should be able to optimize better what I have put on my RamDisk. Just wish I was in your position and could put it all on it.


The Dummehs guide to running Arma2 within a RamDrive or on multiple HDDs

Spoiler


Barso
Barso

    Corporal

  • Members
  • 99 posts

Posted 18 October 2009 - 11:42 #12

This is fantastic and very informative.
How much RAM do I need to load the stock game with no mods into a RAMDISK and which RAMDISK is the one to buy?
It would be great for a step by step instruction for the non-technically minded like myself to get the game to run as optimal as we can on a PC with windows7 64 bit and 12 GB RAM.
Thanks.

S-M
S-M

    Staff Sergeant

  • Members
  • 204 posts

Posted 18 October 2009 - 11:44 #13

The best post i have seen on this forum, its almost a shame the chap is 100% sure to be chastised and thrown into a rape jail, for posting pictures that are to large.

Just wait until hitler see`s it ;)
The law is the law and nobody can apparently escape it :D

Bulldogs
Bulldogs

    Warrant Officer

  • Members
  • 2031 posts

Posted 18 October 2009 - 11:46 #14

This is very interesting. Looks like I'm going to have to do some heavy testing myself. Although, if this thesis is correct, then I wonder why I don't get any studdering using a standard hard disk. I'll have to look into it and see if I can figure it out.
"Once that first bullet goes past your head, Politics and all that {stuff} goes right out the window. Once the 100th bullet go's no where near you, well.... maybe it's time to get some better AI"

Pappy60
Pappy60

    Corporal

  • Members
  • 86 posts

Posted 18 October 2009 - 12:03 #15

Certainly one of the most detailed studies of the issues, absolutely phenomenal job !

However I am not so sure it addresses EVERYthing it certainly shows us some dramatic evidence of why we are seeing slow painting and stuttering...but that said, I followed LiquidPinkys instructions for a ramdrive (very nice job by the way) and setup a ramdrive with the files he detailed and did get it to work as a junction under XP but still had stuttering and slow painting , albeit less of both but still there.....I think Qwertz is right that if I get the entire game into ram it will probably solve my issues...but thats an $800 upgrade for me(I currently only have 8gb) ...quite painful and of course at that point I will need to upgrade my quad core 2.5 ghz cpu because it won't be able to handle the streams coming out of ram ...

Don't get me wrong, the work being done in this post is incredibly good and necessary but I am afraid the evidence that results may tell us all that it is going to take very deep pockets to play this game as shown in the videos......

I certainly would like to see a posting from BIS as to what the machine specs were when they created their videos ?

S-M
S-M

    Staff Sergeant

  • Members
  • 204 posts

Posted 18 October 2009 - 12:05 #16

I certainly would like to see a posting from BIS as to what the machine specs were when they created their videos ?


One would assume that they used the recommended specs listed on the back of the box maybe ;) :D

Or maybe not :P

Greg
Greg

    Staff Sergeant

  • Members
  • 327 posts

Posted 18 October 2009 - 12:22 #17

...I certainly would like to see a posting from BIS as to what the machine specs were when they created their videos ?

I don't know about their videos but Suma (developer) posted his spec here:

Intel Core 2 Quad 2.4 GHz
nVidia 8800 GT
8 GB RAM
Vista x64

http://forums.bistud...ead.php?t=75747

That would have been a good spec machine during much of ARMA2 development.

---------- Post added at 12:22 PM ---------- Previous post was at 12:09 PM ----------

I personally dont think there is much for BI can do on this matter

BI is the developer, they control exactly how data gets from hard disk into system and video memory. Armed with the knowledge of how their application performs they have all kinds of options available to them.
Here's just a few things they could try:
1) Use the large memory flag to access up to 3gb of memory on 32bit system.
2) Use available memory to hold game data longer or preload more data.
3) Use HW threads on common multicore CPUs to perform background loading and preparing of data.
4) Profile the game before release and/or collect stats during runtime (since the game is moddable) and use these stats to preload or cache portions of the game for best performance.
5) Tweak their streaming code to make better use of asynchronous data transfers and hardware threads.
6) Slap on a internal cache to their file system which simply uses available memory to cache more data, transparent to the rest of the game.
7) Look at their on disk and in memory data structures for ways to reduce or compress the foot print.
8) Look at their runtime data retention logic (resource management) to see why data is repeatedly or regularly loaded.
9) Tweak the LOD system to reduce jerky behavior in anyway.

They know their own game, they've been developing it for the last 10 years. I'm just suggesting things I've done in games I've developed.

S-M
S-M

    Staff Sergeant

  • Members
  • 204 posts

Posted 18 October 2009 - 12:25 #18

I don't know about their videos but Suma (developer) posted his spec here:

Intel Core 2 Quad 2.4 GHz
nVidia 8800 GT
8 GB RAM
Vista x64

http://forums.bistud...ead.php?t=75747


That would have been a good spec machine during much of ARMA2 development.


He also says that the game runs great for him on vista!

I wish mine did on xp :(

dogz
dogz

    Sergeant

  • Members
  • 196 posts

Posted 18 October 2009 - 12:35 #19

Very good work qwertz... keep it up!!

sadly those that had to have this explained to them are not very PC smart... and you will always find it difficult to keep your pc running well...

It has been posted/explained a number of times how much hard disk activity affects this game and surely we can all see the HD LED on our supreme gaming rigs????

Lee_H._Oswald
Lee_H._Oswald

    Chief Warrant Officer

  • Members
  • 3240 posts

Posted 18 October 2009 - 12:51 #20

Fantastic analysis, thank you for this!

People should really test their HDD speed, easy tool for this is HDTach.

Posted Image

Screen shows the performance of my Velociraptor SATA Raid0.


MfG Lee