Additional CPU and additional memory are a benefit to the MOO due to its single threaded nature, increasing the # of CPUs is not, as the MOO is single threaded. I haven't heard a lot of complaints of lag and such. Is there some persistent issue that I'm unaware of?
As for 100% CPU usage, and runaway code – it's not runaway code causing the CPU to hit 100%. It's many, many, many complex actions being taken at the same time. Combat, for example, is complex, and requires a lot of different code and execution to happen concurrently (or fake concurrently due to being single threaded).
For example, when the autopruner runs, it requires doing a lot of heavy lifting at the same time, and some of that is blocking at the C (programming language of the server) level. The MOO has builtin functions that make up the MOO code itself, which are implemented in C, and these functions take up CPU but do not deplete 'ticks' that verbs run with. A verb can run out of ticks if it tries to do too much, but executing a single builtin function only takes 1 tick, but that builtin function, might do a huge amount of work.
For instance running this built-in 'sort()' function on a giant list, will take 1 tick, and may take 3 seconds and during those 3 seconds all other reads/writes are blocked because the MOO being single threaded is doing ONLY that one task.
Most of the time we avoid certain built-in tasks and instead rely on implementations of things like 'sort' that are written in MOO code itself, which may at times be slightly sub optimal from an execution time standpoint, but it keeps all the execution within the MOO and thus, using ticks, and pauses/suspends which means the verbs will periodically pause to let other verbs from other system functions of players process, instead of blocking everyone until they are done.
Also, technically, ToastStunt is mutli-threaded, in that we can delegate certain tasks or builtins to run in a separate thread, but this functionality isn't used often as it can cause unintended consequences such as race conditions. We use it sparingly.
At any rate, if the CPU is spiking, it usually means a bunch of stuff is happening and there is a bottleneck. I'm interested to hear more about when this is happening and if there are specific things (combat, etc) happening at the same time that people are noticing, as that would give me a good place to look at optimizing code.