  This paper considers a cost minimization problem for data centers with N
servers and randomly arriving service requests. A central router decides which
server to use for each new request. Each server has three types of states
(active, idle, setup) with different costs and time durations. The servers
operate asynchronously over their own states and can choose one of multiple
sleep modes when idle. We develop an online distributed control algorithm so
that each server makes its own decisions, the request queues are bounded and
the overall time average cost is near optimal with probability 1. The algorithm
does not need probability information for the arrival rate or job sizes. Next,
an improved algorithm that uses a single queue is developed via a
"virtualization" technique which is shown to provide the same (near optimal)
costs. Simulation experiments on a real data center traffic trace demonstrate
the efficiency of our algorithm compared to other existing algorithms.
