A large number of clients want to check in with a server about once an hour, and don't care exactly when. The server wants to talk to all of the clients, but doesn't want to get overloaded if too many clients check in at the same time.
How should the clients schedule their checkins to keep an even load on the server?
If there's been discussion or writing on this topic before (there probably has, but I don't know what to look for), a link to it may be as good as a direct answer.
Edit: I'm interested in theory, tips, and tricks. For instance, would introducing random jitter or drift into each of the clients' check-in schedule help or hurt?