A distributed storage system comprising: a performance management server in communication with one or more compute devices, the performance management server comprising: a memory; a processor coupled to the memory; a performance capability determination module configured to determine capabilities of the one or more compute devices of the distributed storage system; a network communication module configured to obtain an indicator of a target quality of service to be provided by the distributed storage system; a performance settings determination module configured to (i) determine target performance metrics associated with the target quality of service, (ii) determine target configuration settings for the one or more compute devices of the distributed storage system to provide the target quality of service, and (iii) configure the one or more compute devices with the target configuration settings; and a performance monitor module configured to (i) determine whether a present performance of the distributed storage system satisfies the target quality of service, and (ii) reconfigure the one or more compute devices, by adjusting configuration settings of the one or more compute devices, in response to a determination that the target quality of service is not satisfied, characterised in that the performance management server, while configuring the one or more compute devices with the target configuration settings, is further configured to (i) determine different classes of service for different object storage daemons of the distributed storage system, based on the determined capabilities, (ii) determine placement groups of the different classes of service, wherein each placement group is associated with one of the object storage daemons, and (iii) configure one or more routing tables to route data objects to a placement group, based on the target quality of service. a memory; a processor coupled to the memory; a performance capability determination module configured to determine capabilities of the one or more compute devices of the distributed storage system; a network communication module configured to obtain an indicator of a target quality of service to be provided by the distributed storage system; a performance settings determination module configured to (i) determine target performance metrics associated with the target quality of service, (ii) determine target configuration settings for the one or more compute devices of the distributed storage system to provide the target quality of service, and (iii) configure the one or more compute devices with the target configuration settings; and a performance monitor module configured to (i) determine whether a present performance of the distributed storage system satisfies the target quality of service, and (ii) reconfigure the one or more compute devices, by adjusting configuration settings of the one or more compute devices, in response to a determination that the target quality of service is not satisfied, characterised in that the performance management server, while configuring the one or more compute devices with the target configuration settings, is further configured to (i) determine different classes of service for different object storage daemons of the distributed storage system, based on the determined capabilities, (ii) determine placement groups of the different classes of service, wherein each placement group is associated with one of the object storage daemons, and (iii) configure one or more routing tables to route data objects to a placement group, based on the target quality of service.