As a consequence of the current trend towards consolidating computing, storage and networking infrastructures into large centralized data centers, applications compete for shared resources. Open enterprise systems are not designed to provide performance guarantees in the presence of sharing; unregulated competition is very likely to result in a free-for-all where some applications monopolize resources while others starve. Rule-based solutions to the resource arbitration problem suffer from excessive complexity, brittleness, and limitations in their expressive power. We present DECISIONQoS, a novel approach for arbitrating resources among multiple competing clients while enforcing QoS guarantees. DECISIONQoS requires system administrators to provide a minimal, declarative amount of information about the system and the workloads running on it. That initial input is continuously refined and augmented at run time, by monitoring the system's performance and its reaction to resource allocation decisions. When faced with incomplete information, or with changes in the workload requirements or system capabilities, DECISION-QoS adapts to them by applying machine learning techniques; the resulting scheme is highly resilient to unforeseen events. Moreover, it overcomes significant shortcomings of pre-existing, rule-based policy management systems.