self optimizing servers