Como puede ver en la consulta que escribió, este tipo de agregación en 2.0 requiere que ejecute Map/Reduce. Map/Reduce en MongoDB tiene algunas penalizaciones de rendimiento que se han cubierto en SO antes - básicamente, a menos que pueda paralelizar a través de un clúster, ejecutará javascript de un solo subproceso a través de Spidermonkey, no es una propuesta rápida. El índice, dado que no está siendo selectivo, realmente no ayuda; solo tiene que escanear todo el índice y potencialmente el documento.
Sin embargo, con el lanzamiento inminente de 2.2 (actualmente en rc1 al momento de escribir esto), tiene algunas opciones. El marco de agregación (que es Map/Reduce nativo, no basado en JS) introducido en 2.2 tiene un operador de grupo y fue creado específicamente para acelerar este tipo de operaciones en MongoDB.
Recomendaría darle una oportunidad a 2.2 y ver si su desempeño en la agrupación mejora. Creo que se vería así (nota:no probado):
db.alarm.aggregate(
{ $group : {
_id : "$serverName",
count : { $sum : 1 }
}}
);