There are few things that cause CPU load. Camera decoding and transcoding for remote connections are the 2 highest consumptions. Camera resolutions, framerates and bitrates can be adjusted to compensate for the lack of CPU power, and transcoding can be disabled if remote connection and remote clients are sufficient to handle the load. There are also few performance settings that can be toggled on.
If the system is running on a 64 bit operating system, Settings > System > Performance > Direct video decoding should be toggled on if there are higher resolution camera streams connected. This will make the video decoding faster and more efficient.
Decode only from keyframes
Perform motion detection and drawing only from keyframes to reduce CPU load. This should only be used with remotely viewed recorders since it will lower the visible frame rate locally. Enable Avoid recompression from the server settings to prevent the frame rate dropping over remote connections.
On: Motion detection and drawing only from keyframes.
Off: Motion detection and drawing from all frames.
Motion: Perform motion detection and drawing on all images when motion is detected. Otherwise only from keyframes.