  In this paper, we study a dynamic on/off server scheduling problem in a
queueing system with multi-class servers, where servers are heterogeneous and
can be classified into $K$ groups. Servers in the same group are homogeneous. A
scheduling policy determines the number of working servers (servers that are
turned on) in each group at every state $n$ (number of customers in the
system). Our goal is to find the optimal scheduling policy to minimize the
long-run average cost, which consists of an increasing convex holding cost and
a linear operating cost. We use the sensitivity-based optimization theory to
characterize the optimal policy. A necessary and sufficient condition of the
optimal policy is derived. We also prove that the optimal policy has monotone
structures and a quasi bang-bang control is optimal. We find that the optimal
policy is indexed by the value of $c - \mu G(n)$, where $c$ is the operating
cost rate, $\mu$ is the service rate for a server, and $G(n)$ is a computable
quantity called perturbation realization factor. Specifically, the group with
smaller negative $c - \mu G(n)$ is more preferred to be turned on, while the
group with positive $c - \mu G(n)$ should be turned off. However, the
preference ranking of each group is affected by $G(n)$ and the preference order
may change with the state $n$, the arrival rate, and the cost function. Under a
reasonable condition of scale economies, we further prove that the optimal
policy obeys a so-called $c$/$\mu$-rule. That is, the servers with smaller
$c$/$\mu$ should be turned on with higher priority and the preference order of
groups remains unchanged. This rule can be viewed as a sister version of the
famous $c\mu$-rule for polling queues. With the monotone property of $G(n)$, we
further prove that the optimal policy has a multi-threshold structure when the
$c$/$\mu$-rule is applied.
