An empirical study of open-loop load generators for microservices and web workloads