It's never too early to apply. Some programs like to fill early and if you stumble along at the right time they may lock you in.
It's never too late to apply. Some programs have last minute dropouts and if you stumble along at the right time it might work out.
It's moderately competitive, and depends on a combination of things -- whether they have any openings, what residency program you are coming from, your personality, etc. Some programs are more snooty than others. Other programs you might think are very competitive may end up not getting that many applicants because so many think either they can't get in, or that the program is too intense for their tastes.