1. A computer-implemented method of determining system configurations, comprising: determining, by a computer system, a set of configurations for a system; measuring performance of the system for members of the determined set of configurations; creating, based at least in part on the measured performance, a model of the system; receiving, from a user, one or more user-specified objective functions, based at least in part on the model of the system; identifying one or more configurable parameters related to the system; identifying a relationship between the one or more configurable parameters; identifying at least one variable constraint related to the system based at least in part on the identified relationship; determining a valid set of values to be assigned to the one or more configurable parameters and the at least one variable constraint based at least in part on the identified relationship, wherein the value of the at least one variable constraint maps to the valid set of values assigned to the one or more configurable parameters; generating an optimal configuration of the system with respect to the one or more user-specified objective functions based at least in part on the model and the valid set of values assigned to the one or more configurable parameters and the at least one variable constraint; and providing the generated optimal configuration for tuning the system.