This is more apparent on larger games, but you can see it on a simple baseplate.
I came across a script that was hogging server resources for short periods of time seemingly at random. After some investigation, I narrowed it down to being triggered by LoadCharacter(). I set up a loop in a testing game to test my theory and the results confirmed my suspicion, the spikes in server usage coincide with Player:LoadCharacter() being called (there was only one player in the game at the time).
I tested this on a blank baseplate and yielded less extreme results, the spikes would top out at about 1.5%. In an empty game of mine, these spikes end up coming in at 9-11% (this is where the below screenshot was taken). In a full game of mine, the spikes can clock in anywhere from 40-60%, which is why it grabbed my attention.
If you throw the following code into a script in ServerScriptService you should be able to replicate the problem. From what I can tell, the size / busyness of the game directly correlates to the size of the spike that occurs upon LoadCharacter() being called.
while wait(2) do
for _, Player in pairs(game.Players:GetPlayers()) do
Player.TeamColor = BrickColor.random()