0

I'm running online servers for a physics-based game with a backend in Node.js. Currently, the server can handle 10 games/worlds at a time before the next tick needs to be executed.

With this in mind, I have tight scheduling using nanotimer so that the world steps don't step on each other's toes, but the ordering also means that I can only run on one processor, so my AWS instances are only sitting at about 55% CPU utilization.

I decided using taskset would be a good way of going about using both processors on my instance, but sometimes the worlds are blocked from processing for several seconds at times by what I imagine is another exterior process running.

How can I prevent this from happening? If I'm using two of the processors (without taskset), the one set of worlds runs just fine, but I'm only using 55% of my processor, which is really expensive.

Rui F Ribeiro
  • 55,929
  • 26
  • 146
  • 227
DonutGaz
  • 111
  • 2

1 Answers1

0

I would check out the priority of processes running on the servers, as the first thing.

ps -eo pid,ppid,ni,comm

Then I would change the nice value to the highest on your node.js process to see if there was any improvement.

renice -n -12 -p (PID of your node.js)

Mark Scheck
  • 252
  • 1
  • 10
  • Interesting, thanks. I will get back to see if this helps at all. – DonutGaz Mar 17 '19 at 19:35
  • Hey Mark, gave this a shot. Unfortunately since both processes run at 100% CPU utilization, they seemed to really clobber the system and lag incredibly. I'll be revisiting this at a later point. – DonutGaz Mar 18 '19 at 04:42