It's surprising that you're running into CPU issues. It's typically RAM that is exhausted first.
I have 5 x Dual Core 256MB Tor Relay Nodes loadbalanced as a Single Middle Relay that never have CPU issues. It's always a matter of running out of RAM for me. The loadbalanced Tor Relay maintains between 6K-8K circuits and between 100-200GB of Tor traffic per day.
Presently, 2 of the Tor Nodes are down, but you can see that for those Tor Nodes that are up my CPU load is low and memory is approaching the 32MB cutoff that I've configured.
# stat-tor-nodes
Living_Room-C293
12:52:23 up 1 day, 12:42, load average: 0.80, 0.54, 0.46
Data_Center-D448
12:52:24 up 1 day, 12:42, load average: 0.69, 0.69, 0.71
Office-3C73
12:52:24 up 1 day, 12:41, load average: 2.58, 2.84, 3.75
Garage-AE61
12:52:25 up 1 day, 12:42, load average: 0.00, 0.07, 0.10
Wiring_Closet-5610
12:52:25 up 1 day, 12:41, load average: 0.24, 0.33, 0.41
Living_Room-C293
MemFree: 110696 kB
Data_Center-D448
MemFree: 42744 kB
Office-3C73
MemFree: 86792 kB
Garage-AE61
MemFree: 193384 kB
Wiring_Closet-5610
MemFree: 38684 kB
Living_Room-C293
2000
Data_Center-D448
2710
Office-3C73
0
Garage-AE61
0
Wiring_Closet-5610
1854
It might help to provide your torrc config.