Slow loading times on native games running from a NTFS partition

Hi, i have been experiencing some very slow loading times on native games, bellow i have some benchmarks done using KDiskMark:
(they are both mechanical hard drives)

Random read/write tests were done with different settings as shown bellow, otherwise it would have taken ages to complete.

HDD 1: this is an ext4 partition, and its where my system is installed.

[Read]
Sequential 1 MiB (Q= 8, T= 1):    90.108 MB/s [     88.0 IOPS] < 90794.23 us>
Sequential 1 MiB (Q= 1, T= 1):    90.059 MB/s [     87.9 IOPS] < 11360.69 us>
    Random 4 KiB (Q=32, T=16):     0.000 MB/s [      0.0 IOPS] <     0.00 us>
    Random 4 KiB (Q= 1, T= 1):     0.000 MB/s [      0.0 IOPS] <     0.00 us>

[Write]
Sequential 1 MiB (Q= 8, T= 1):    89.140 MB/s [     87.1 IOPS] < 90574.23 us>
Sequential 1 MiB (Q= 1, T= 1):    93.978 MB/s [     91.8 IOPS] < 10270.83 us>
    Random 4 KiB (Q=32, T=16):     0.000 MB/s [      0.0 IOPS] <     0.00 us>
    Random 4 KiB (Q= 1, T= 1):     0.000 MB/s [      0.0 IOPS] <     0.00 us>

Profile: Default
   Test: 1 GiB (x5) [Interval: 5 sec]
   Date: 2021/02/25 19:59:10
     OS: manjaro unknown [linux 5.9.16-1-MANJARO]

Random tests:
   Test: 16 MiB (x1) [Interval: 5 sec]
   Date: 2021/02/25 20:03:48
     OS: manjaro unknown [linux 5.9.16-1-MANJARO]

HDD 2: this is a NTFS partition:

[Read]
Sequential 1 MiB (Q= 8, T= 1):   841.556 MB/s [    821.8 IOPS] < 20705.34 us>
Sequential 1 MiB (Q= 1, T= 1):  1122.673 MB/s [   1096.4 IOPS] <  1072.00 us>
    Random 4 KiB (Q=32, T=16):   167.419 MB/s [  41856.0 IOPS] <  3029.05 us>
    Random 4 KiB (Q= 1, T= 1):    84.891 MB/s [  21222.8 IOPS] <    45.43 us>

[Write]
Sequential 1 MiB (Q= 8, T= 1):    76.008 MB/s [     74.2 IOPS] < 22484.40 us>
Sequential 1 MiB (Q= 1, T= 1):    71.828 MB/s [     70.1 IOPS] <  2499.32 us>
    Random 4 KiB (Q=32, T=16):    13.361 MB/s [   3341.4 IOPS] < 37201.42 us>
    Random 4 KiB (Q= 1, T= 1):    27.125 MB/s [   6781.5 IOPS] <    82.00 us>

Profile: Default
   Test: 1 GiB (x5) [Interval: 5 sec]
   Date: 2021/02/25 20:18:13
     OS: manjaro unknown [linux 5.9.16-1-MANJARO]

Random tests:
   Test: 16 MiB (x1) [Interval: 5 sec]
   Date: 2021/02/25 20:13:06
     OS: manjaro unknown [linux 5.9.16-1-MANJARO]

The games in particular were CSGO, L4D2, Antichamber and to a smaller degree Metro 2033 Redux.

Now, since my ext4 partition is just big enough for the OS i couldn’t test the larger games on it, but i did so with Antichamber and while the ext4 hdd is slower (HDD 1) it did load the game in about 15 seconds while on my NTFS partition (HDD 2) it takes about 1 minute or so.

Emulators and non-native games running through wine load “relatively fast”, just as fast as they do on Windows 10 natively.

is there a way i can profile these native games to see if there’s something misconfigured or that can be tweaked to aliviated this issue?

any help would be appreciated :slight_smile:

You should not be running games on a NTFS partition while using Linux. It introduces far too many issues (personal experience as a gamer). NTFS is not native for Linux, it is processed via ntfs-3g

Suggestions:

  • Shrink your NTFS partition and let the ext4 partition absorb it
  • Delete your NTFS partition and let the ext4 partition absorb it
  • Get a new HDD/SSD
1 Like

That would be the ideal (obvious) solution but i’m looking for a workaround/tweak with my current setup for the while before doing anything else. getting a SSD without being ext4 would still present the issues you said you had experienced… (i haven’t experienced any issues besides slow loading of native games, and steam proton so far).

by the way, what issues did you experience with gaming on a NTFS partition in particular?

  • Games don’t launch
  • Games don’t launch correctly
  • Games crash
  • Games have lower performance
  • Games have issues writing to disk
  • Steam says game file is corrupted (but they aren’t)

It’s on a game-by-game, a proton-by-proton version, and a wine-by-wine version basis. It’s just too much of a headache to deal with. You can search “NTFS” on /r/linux_gaming if you want. A lot of people have issues with it.

What do you mean? If you get an SSD, just format it to ext4?

The problem is that i still use windows 10, especially for gaming where wine can’t do the job (games with anti-cheat or DX12 that still has subpar performance on VKD3D). meanwhile i can use NTFS for most things on both windows and linux, i can’t use ext4 on windows without it being a major pain in the butt, way more so than NTFS is on linux. also reserving some disk space for an ext4 is not desirable.

eventually i want to have a SSD ext4 for linux, but i can’t do that right now, hence my post.

Keep enough space on the NTFS drive for your Windows only games (like when I used to play Rainbow Six Siege). Uninstall games on the NTFS drive that you’re only planning to play on Linux. Reduce the size of the NTFS drive, and add it to the ext4 drive.

Otherwise, you’re really just out of luck and will have to wait until you get a new HDD/SSD. You can’t do much because NTFS is a proprietary file system by Microsoft created for Windows.

i don’t play native/steam proton games all too often on linux, that is why i don’t want to chip away hundreds of GBs (games are big) just to later on have to resize the partition (which has cost me some data loss in the past).

i do remember CSGO loading just as fast as it does on windows, especially on ubuntu, but i want to diagnose whatever is happening to see if everything is running as it should.

thanks for your suggestions though, which is what i’ll eventually do.

Defragment your disk from Windows maybe?

Already did with PerfectDisk, also checked for error with chkdsk, the device is ok from what i can tell.

This is normal behavior,

NTFS or any other non Linux native FS will give you this kind of issue:

many things get into consideration , one of them is Also security !

Non native FSs are made by reverse engineering the FS of X or Y other OS, (ntfs / windows)

Thus, you will never have the same perfs as using a native Linux FS
And forget about Security AND many other features like optimizations/space saving:
No sim-links …

And Steam is a Native Linux application, it expects a FileSystem that does “this” and “that” that has “that” and “this” feature, so it will complain about files being funny looking because even sizes get calculated differently etc,

If you are really stuck with this, you have to know that you can configure Win10 to access ext4 natively, just activate WSL2, and also

M$ has open-sourced exFAT , so the Linux driver of exFAT should be native now .

I think you should give it a try :slight_smile:

huh, i was reading about exFAT… does it have file size limitations or anything like that? is it good for external hard drives? i’m going to read more about anyway, but i you have first hand experience with it, i would appreciate some info :slight_smile:

if i were to use exFAT, should i format my hdd from windows or linux, does it matter?

i’m never going to use WSL :smiley: but i appreciate the suggestion!

i read the article, and some others, i think i will mingle with exfat for a while (just a small partition for games), though i would still like to diagnose at what NTFS falls short when loading native apps.

edit: proton doesn’t support exFAT just yet (or may ever), not going to try it anymore.

Why are you talking about diagnosing NTFS ?
Are you a kernel dev. ?
Hundreds of ITs looked into it, it is locked down by M$, you can do nothing about it,
As said, non native drivers will always have issues especially Perfs issue, that is life.

And NTFS on this planet, is only beneficial for M$ OS (windows…) 99% for security, rights managements,
and under other OSs like Linux, We do not care about that because we have our Own security system.

And why are you saying “I will never use WSL” ? You are complaning about not beeing able to access Linux FS from Win, I we gave you a Native solution.

And remeber that games these days are 10’s of gigs disk space, hence Alot of disk I/O is performed when loading them, so you get a big load on a non-native system, thus you will have perf issues.

huh, no. i’m talking about checking at what operations/calls a game is taking the longest to load, its just simply diagnosing what is happening behind the loading of an application, not what low level operations the system is performing, and since i’m a linux newbie i’m looking for directions.

WIndows 10 is bloatware enough, i’m not going to add anything to it (in fact i removed most of it with MSMG ToolKit) and i need it for gaming, and thats pretty much it. also i’m not playing a native modern game, they are kind of old, i do play modern games through wine though.