Self-* through self-learning: Overload control for distributed web systems