The general rule of thumb with node is that as long as you have the RAM for it, you want to use all the CPUs you can. Since node is single-threaded (and actionhero doesn't fork), the math is easy!
If you leave 4 cores for NGINX ( I think that's the default config), 1 core for the cluster-master, and 1 core for "OS stuff", you can have 18 workers. It's usually the case that you'll run out or RAM before CPUs, but that's the lame-duck answer. Make sure you don't start using SWAP space! You can profile your app and get an idea how much a single running process consumes, and do the math.
The reason to leave a core for the cluster-master, even though it isn't doing much work, is to leave CPU time around for dealing with all the connections and inter-process communication.