1. A method for resource segmentation, comprising: dividing a time horizon to be partitioned into a plurality time slots based on a minimum partition size; determining resource usage for each of a plurality of virtual machines in each of the plurality of time slots; determining a set of partitioning schemes that comprises every possible partitioning of the time slots into a fixed number of partitions; for each partitioning scheme in the set of partitioning schemes, determining a cost using a processor based on a duration of each partition and a resource usage metric; and selecting a partitioning scheme that has a lowest cost.