-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial rendering not using renderingjobs
count of CPU cores
#327
Comments
had to look that up myself because it has been ages i've done something on that part, but it looks like the initial rendering is done in a single thread: mapserver/tilerendererjob/initial.go Lines 15 to 65 in 53689ac
from the looks of it the process should be scalable with threading, not really a priority for me right now, PR's welcome though. Why do you need it to be fast anyway? What are you trying do accomplish? 😏 |
For Minetest servers I think less threads is better in most cases anyway so if implemented I'd suggest at least ability to configure max threads so that it could be locked to one or few. |
Hello.
I've been tinkering with a custom C++ map generator that prebuilds a
map.sqlite
file, so that in-game mapgen is just set to "singlenode". As part of my development workflow, I want to run themapserver
on it to be able to view it in the mapserver's HTTP UI. I do this in docker, but that should not matter. My goal is to use all of my CPU cores to complete the initial rendering as fast as possible.The problem is that I am unable to get the mapserver to use more than ~1.3 CPU cores. I have a 16 core (32 thread) AMD CPU, so I have the cores available. I've conducted several experiments (data below). For a sample map of 9095 blocks (~1000 x 1000 x whatever) world, the initial rendering always ranges from 186s and up. During this time, I can verify (htop, xload, other tools) that the mapserver is only using 1, sometimes 1.3 cores. I've tweaked the
renderingfetchlimit
,renderingjobs
, andrenderingqueue
values. At best I can make it perform WORSE, but never better. In fact, as I decreaserenderingjobs
the initial rendering phase completes FASTER (I assume due to decreased internal lock contention??)Please advise. Thank you.
Logs from
renderingjobs = 12
,renderingfetchlimit = 50000
,renderingqueue = 1000
The text was updated successfully, but these errors were encountered: