When to Schedule those Timer Jobs?
Ran into an interesting issue the other day with one of my clients that got the grey matter working. The client is a large multinational company who employ Sharepoint across their various regional offices. The UK users were experiencing slow response times from Sharepoint around 10am every morning. I immediately suspected intensive timer jobs on the server and began to investigate.
Looking into the matter I noticed that the Sharepoint Servers themselves are hosted in the USA and operate under Central time, six hours behind the UK. Every heavy process was scheduled to run at around 4am local time, hitting peak load 10am GMT and hence causing the issue for Blighty.
I've seen this mantra repeated for years that you just schedule your heavy server jobs for 4am to avoid peak user access, and forget about them. In an increasingly international business world that simplistic thinking clearly isn't going to cut the mustard. So, when should you schedule those jobs?
Well, as is often the case there's no single right answer except perhaps "it depends". Next time you're looking to schedule some heavy server tasks a little thought will pay dividends.
Looking at a timezone map of the world like this one http://www.himssmtgtvl.com/international%20info/world-time-zone.jpg it's easy to see that if you have a truly global user base there will be no time you can choose to run jobs that avoids the business hours 9am - 6pm everywhere you'd like.
As an exercise I ran the numbers on the idea that 1pm somewhere really remote provide the fabled time of the day with least impact. I chose Midway Island (-11 Hrs GMT) as an example. Sure enough however, choosing such a location means the heavy server loads avoid Western Europe, the Eastern US, and much of Asia, but you're still going to have some unhappy customers in Australia, Japan, and California!
So the first lesson is, know where your users are and what hours are important to them. Business hours for business users, perhaps different for leisure users. The guys in the US who configured this server clearly never thought about the fact most of their global Sharepoint users are actually UK based at this stage of the project!
Second lesson, have you thought why the heck are you running all this stuff at the same time anyway? Another multinational client of mine also scheduled all their jobs at the 3am/4am GMT kind of time by default. The IT Manager kept getting calls at 4am from the hosting company telling him the CPU utilisation had breached so and so a level. I class this as an unnecessary loss of sleep. Spread them out. If I schedule some of my heavyweight UK jobs at 4am that avoids nasty hours for UK, Europe, US, and India, not bad. I could then lessen the impact on Asia/Australasia by taking advantage of the usual lunchtime activity lulls 12-2pm GMT to run a few smaller jobs, also avoiding interruption of the US, India, Asia et al.
So, not rocket science really, just that few seconds of extra thought, and a brief investigation of what is running already before choosing my scheduled times.
You may have got away with default 4am scheduling with your single country applications. However this is Sharepoint - often adopted by large globe spanning enterprises, and with lots of heavyweight processing like Search Crawls, various timer jobs, AD refresh, and all your custom solutions to perform.