Roughly 30x lower than expected performance

Sharft 6

New member
Hi there,

I thought low performance was typical in this game so ive put up with 1-5fps in t6 pois with 3-4 players for a year now (lowest, low, medium 900p-1080p). But when I began to compare with others, i started to think i must be leaving some performance on the table somewhere - i just don't know where.

cpus: 2x e5-2667 v3 turboing to 3.6Ghz

gpu: nvidia quadro p2000

ram: 16GB DDR4 - could be 150GB or so, but im picking it wont help

storage: 5x 900GB 10k SAS in raidz

os: ubuntu 24.04

I haven't done this since a21 but none of it seemed to make any difference in a21 anyway:

- verify game integrity

- turn eac off

- play other servers

I think the gpu is ok since it shows higher utilisation when no players or zombies are around - I can't remember exactly but maybe 50% utilisation. When entering a t6 poi with another couple of players, the gpu utilisation drops down to about 10%. So I was pinning the issue more on the CPU even though that barely punches above 50% utilisation of any core however, I understand this is typical of Unity games.

Now I realise my cpus and gpu are no ideal for gaming but let me explain why i was expecting more than 1-5fps:

- I know someone with a 7800x3d which is only 1.96x faster than mine with single threaded tasks. so I'd expect his fps to be 3-15. However he claims to get no less than 200fps (80x faster) in a t6 poi on lowest graphics.

- I know someone else with a 7700k which is only 0.73x faster than mine with single threaded tasks. so I'd expect his fps to be 2-9. He claims the game was very choppy but still managed to move his character around the world no problem. I find it very difficult to simply move across the ground with that fps.

I understand the game is voxel based which means there's more to compute but I have a couple of issues with this line of reasoning:

- Red faction from around the early 2000s had digging like minecraft & 7days, but it ran great on 2000s hardware

- The game runs pretty smooth (very smooth on lowest) if there are no players or zombies around, yet the game is still voxel based without players and zombies around.

My observations:

If I play by myself, the performance drops noticeably after a while but I don't mind this. There is a noticeable reduction in performance when another player joins. Then there is another noticeable further reduction in performance when another player joins. Zombies + players are where the performance really takes a turn for the worst. It's as if the zombie pathing is calculated client side instead of server side. But none of this really explains why 1.96x faster CPUs allow 80x more fps.

So what are the thoughts out there - does my performance sound about right for my hardware? Is there anything I can do to improve performance or do I need to buy a new computer? (this one is a tough sell for the odd Friday gaming sesh on a single game)

also what's the best way to get logs into the forum here?

 
Last edited by a moderator:
I don't know your particular hardware and don't really feel like looking it up (I'm sure someone will), but that seems excessively low unless you're below recommended specs.  I played this game on HDD with 8GB RAM and still had 15-30FPS range.  On SSD with 32GB RAM, I can hit 60FPS, though I run half VSync to get 30FPS because it's a smoother experience when FPS holds steady at 30FPS than if it's fluctuating between 40-60FPS.  And this is on a 5+ year old computer that was under a mid-level gaming desktop at that time.  And I've never had an FPS drop from a specific POI, regardless of tier, or even during horde night.  My drops come from loading in towns when moving quickly, such as on a vehicle (especially with a supercharger).  I do know some people have issues when the number of zombies goes up, but I've never experienced that, even with 6-7 players on horde night.

With that in mind, I have a feeling there's some issue in your configuration causing the problem.  It could be very poor hardware, though as I said, I haven't looked yours up to see if it's any good.  If I were to guess, your CPU is going to be the problem.  Also, I don't know the performance of the game on Ubuntu.  It might be good, or there may be issues.  And a RAID setup could potentially slow things down because of the amount of drive usage this game has, though again, I don't know if that's a problem.

As far as logs go, the pinned topic explains it.  But the short answer is to paste them onto pastebin.com and then put the link here.

Side note: CPU speed is only a partial indicator of how well it will work.  There are many factors that impact performance, depending on the use.  For example, the newer Intel chips with e-cores will kill performance if the game ends up running on an e-core, regardless how powerful the CPU is on regular cores.  There are also differences in cache, threads, etc.  They all affect how well the CPU works on a given game or app.  That can explain the differences that you see between different CPUs that doesn't only align with the CPU speeds.

 
Hi! Logs can go to pastebin.

Don't get me wrong, I am by no means just ragging on your setup or anything, I do get trying to keep using old tech to keep it useful (and budgets are tight), but your speed comparisons are pretty farfetched. The 7800 you compared it with is actually many magnitudes faster than those xenons; speed is not the only judgement of compute efficiency, otherwise there would be no point in buying new CPUs, everyone could just use the same ones that came out 30 years ago :)

This title is extremely CPU intensive, and you've got a server setup, the Quadro cards are not meant for games or even video, they're meant for productivity usage, and those Xeons are also workstation chips. 

If you can't replace parts, the dual cpu setup is more likely actually making things worse, since there's an increased latency since each one has to wait on one another to finish tasks (same reason why SLI never took off for gaming). The quadro definitely is also a bottleneck, but removing the latency from the dual cpu setup may give you a boost. The quadro being that low on usage is evidence here, since that means it's spending most of the time waiting for data from the cpus.

 
Hah no worries you wouldn't be the first to rag on yee ole gaming server.

Cheers I must have missed the pastebin bit here's the link
https://pastebin.com/fQM35tru
 

It's just kinda odd that this is the only game I've tried which doesn't run well. Sniper elite 5, forza horizon 5, hellivers 2 and every other game I've tried runs well. I might have to have a go at cyberpunk because I hear that's pretty thirsty.

 
All games are not alike. Typical games are GPU-bound, i.e. the GPU speed defines how well the game runs. This game is CPU-bound and (IMHO) has unusual requirements about data paths and caches as well. Much of this comes from it being a voxel game.

I agree with Jugginator that one of your best bets might be to turn off the second CPU.

You could also try to force proton to see if that changes anything, but on second thought, since you already use vulkan I don't think that will yield anything.

I tried to compare memory speed, this is the same line from my linux server, a probably 4 year old server CPU (I rented a virtual server somewhere)

Code:
Total: 891.895370 ms (FindLiveObjects: 5.746628 ms CreateObjectMapping: 7.916988 ms MarkObjects: 878.092122 ms  DeleteObjects: 0.138059 ms)


Compared to your

Code:
Total: 1963.442579 ms (FindLiveObjects: 68.696732 ms CreateObjectMapping: 38.200669 ms MarkObjects: 1846.328146 ms  DeleteObjects: 10.215391 ms)


it seems to show especially slow write speed into your RAM. It could also mean my server has less objects to sift through, but it is the same line from early startup so should be comparable.

Lastly, a final optimization to get a few more FPS might be to turn down graphics resolution. This will also decrease CPU and memory bus load

 
Last edited by a moderator:
Cheers I must have missed the pastebin bit here's the link
Why does your log say "10 Cores"? Are you running in a VM? According to what you said are your cpus, that line would

read 32 Cores. (16 cores/32 threads).

 
Last edited by a moderator:
Also, turn off Dynamic Resolution, Reflections, and Shadows. set Anti-Aliasing to FSR Low,
Set texture quality to "half".

Try playing a single player navezgane map after making those changes and post a new log.

 
that VPS test is interesting

Indeed it is in a VM. But I have run some benchmarks on bare metal vs VM vs docker container inside VM and the difference is only up to 4%. In fact bare metal seems to be the slowest and I wonder if that's to do with the thread sycing on unused cores?

I set the graphics settings as suggested (lower resolution, no dynamic resolution, reflections and shadows off, aa to fsr low and texture quality to half) Then ran a single player navegane and it seems very playable indeed in both the wasteland tower and desert old country jail. Next I'll try this on the server I normally play and see what happens. I just wasn't expecting graphics settings (especially resolution) to affect cpu usage.

here's the new log
https://pastebin.com/QkU0Cu6z

 
Last edited by a moderator:
I went back to my server and although performance is improved and I'd call T6 poi's playable (barely), there are a couple of things that kept playing on my mind:

1. Meganoth said about the memory speed of his VPS vs my server

2. Another performance FAQ thread I read here suggesting ram speed is very important for 7days because it stores graphics information in system memory instead of graphics memory.

3. Memory performance is one of those things my friend's 7800x3d rig probably has a truckload more of that I didn't account for.

So first I looked at my memory configuration. By removing a few modules I managed to bring up from 1866Mhz to 2133Mhz. Getting to 2400Mhz will require new cpus. I also confirmed all 8 modules are running in 8 different channels by benchmarking.

Next I experimented with transparent huge pages on both host and guest. This was the only option I could see an improvement from enabling.

I also tried cpu pinning which could cut the performance in half again, or at best would be a little worse than no pinning.

I also tried numa core and memory alignment which was very slightly worse than not doing it.

Tried disabling disk cache which was worse or not much different either.

Ultimately, I'm seeing just 57% of the host's memory performance on the guest (68,858MB/s vs 39,483MB/s) which is obviously not caused by 7 days to die. For that reason, I've taken the question out of this forum. But if anyone would like to follow along, here's the link



 
I also tried cpu pinning which could cut the performance in half again, or at best would be a little worse than no pinning.
I would assume you are getting half the memory bandwidth because each of your cpus has 4 lanes for ram. The game is likely
only running on one cpu, thus half the ram bandwidth.

 
The game doesn't have a benchmarking tool. So im using phoronix-test-suite benchmark stream instead.

i don't yet know the if kvm performance issue is caused by 8 channel vs 4 channel, or still 8 channel, but 50% overhead.

docker on bare metal does not have the same issue. so i might have to look into 7 days in docker

 
Back
Top