In recent times retail EAs have been equipped with heavier DLLs. More logic is included within them, authentication protocols have been added and then they have been protected with anti-hacking measures. This uses a lot more resources than a simple mq4/ex4 file.
MT4 is an old program. It does not allow for multi-threading, meaning that MT4 can only use one core of CPU processing power.
Combine a lot of DLL calling EAs with the non-threading MT4 platform and CPU usage can hit its limit.
The solution is to spread out the DLL EAs over multiple MT4 terminals. Each MT4 terminal will use a different processor core and will operate much better. Think of it like having 6 fat men trying to all get through one door at the same time. If you create 2 or 3 doors they can stop blocking each other as they all try to get through the doors together.
Pure mq4/ex4 EAs you can run a multitude on one MT4 account without a problem. Modern retail EAs with heavy DLLs only one or two should be run per MT4.
The solution is quite simple. You can install multiple MT4 terminals and have them connect to the same broker account. On each put a couple of EAs allowing the metaphorical fat men more doors to use.
As you add MT4 clients set the charts in history to 5000 to minimise memory and shut the market watch sub-window in MT4. As long as you have excess memory as you run multiple MT4s your overall performance will be much improved as each version of MT4 will use a separate core. If you have a VPS with 1GB of memory you should be able to run 4 terminals without issues.
I hope this helps people set up their VPS trading platform(s) more effectively.