Can a network drive work well for games? (iSCSI target vs SSD experiment)

So TL:DR backstory a long time ago I wanted a drive I could put games on but not actually inside my PC. It started out HDD and morphed into a four 1TB SSD in a stripe of mirrors config.

I kept my steam library on the SSD array for quite a while without any problems. Recently I had bought a 2TB SSD on sale which would easily fit my whole Steam library with room to spare. I wanted to test it head to head with a flash array iSCSI target to see how viable using iSCSI for games would be. The results are pretty interesting (to me). I did a benchmark with CDM and timed the loading of two games I play often.

Benchmark with crystal disk mark 6 (SSD on left, iSCSI on right)

Game load times from the time I clicked “Play” until I’m in the character ready to play. This includes clicking the “accept and proceed” as well as the “continue” in Satisfactory and the “New Game” in Subnautica. Each test performed twice with the fastest results posted here.

ISCSI
Satisfactory: 41.48 seconds
Subnautica (original): 27.08 seconds

SSD
Satifactory: 33.63 seconds
Subnautica (original): 23.95 seconds

Even with human error poking the start/stop button on screen as well as the mouse clicks, the difference is there. Even though there are some neat benefits of having TrueNAS manage the disks, I’m still impressed how well the iSCSI target actually does with all the massive overhead. I’m guessing the loading time difference comes down to random read speeds…because sequential reads and writes are insanely different.

I guess it wouldn’t be a proper experiment unless I had the hardware used if someone as insane as I am wanted to recreate it for some reason…

Gaming PC
Ryzen 7 1700X (OC 3.6)
16GB 2400
Windows 10

Network (Not using jumbo packets)
PC: Intel 2p x520
Switch: Aruba S2500 24p
Server: HP 534FLR
Connections: Intel E10GSFPSR SFP+ modules connected by OM3

Server
E5-2620 v3
64GB 2133P
four Samsung 870 EVO SSDs in stripe of mirrors
TrueNAS 12 (U2) autotune was enabled

Test SSD: Crucial MX500 2TB

If anyone has anything to add, feel free. This was just a fun experiment, I don’t know if I will keep steam on an SSDs or not.

1 Like

Could you try tarkov for me if you have it? I’d totes do this in an instant, just leave M.2 drives in my box and take the cages out for a massive pump.

You have me intrigued sir.

I was forced to try this sometime last year when my /home directory on a 1TB was almost full. I ended up migrating the steam games to a ISCSI target on my freenas box until a replacement HDD for my home directory arrived.
I didn’t do any testing but the load times felt almost the same to me. The target was created off an array of old seagate 5900rpm NAS drives over a 1GB network connection. I was actually pretty surprised that it worked as well as it did.

1 Like

Unfortunately I don’t have that game to test for you…if you do try it, let me how it goes.

That is one of the great things about using a ZFS pool is being able to expand it at will (provided you have the drives to add). Originally I wanted to boot using iSCSI and essentially have a compute node that I can work from and the NAS does things like drive health, drive expansion, and very notably snapshots. You could also perform replication/migration of data to other pools without the client being affected say for instance to have an encrypted full backup of your working drive off-site. Not that it is practical in any way for an average user. I’d imagine and to get somewhat acceptable speeds for a workstation boot device in 2021, you would definitely have to invest in solid state drives and greater than gigabit connections.

Very interesting, I’ve been doing the same with exactly the same kind of drive a 2TB MX500. But I am using Proxmox (Debian 10) with targetcli + 1TB LVM thick volume + Jumbo Frames and a direct connect. Loading times have been indistinguishable from my local ssd!

ISCSI

1 Like

This is exactly how I felt. I didn’t really notice the 5-10 second difference mostly due to the extended load time of the game anyway. Thanks for posting the CDM test, it’s interesting how different your results were from mine. I still wonder if it is latency or software overhead that causes the random performance penalty though… I kind of don’t want to destroy my zvol to find out…Maybe if I can find an SSD kicking around, I may pass it through as an iSCSI target instead of a zvol to see if that makes the difference. However at that point, it kind of defeats most of the purpose of putting the drive into a NAS box other than being able to physically separate it.

1 Like

it will depend on the game. if it streams data like cod then it would be near useless as your not only dealing with latency of the disk but also the network. it may not seem a lot but if your over 16ms you will raise your 1% lows dramatically, effectively bottlenecking the system and cause hitching in game. looks like severe micro stutter, slewing and or texture pop

but any game that loads its resources on a per level basis may be slow loading but should work fine.

What you should try is enabling jumbo frames, I’m sure that that’ll help a bit at least!