A streams manager monitors operator performance of a streaming application to determine when the performance of an operator needs to be improved or optimized. The streams manager in conjunction with a cloud manager automatically determines one or more preferred virtual machines in a cloud with a specified streams infrastructure that best meet the needs of the underperforming operator or application component based on physical location attributes of the preferred virtual machines. The cloud manager determines the physical location attributes of the candidate virtual machines. The streams manager or the cloud manager can then determine a preferred virtual machine of the candidates to deploy the operator based on the physical location attributes. The streams manager then modifies the flow graph so one or more operators of the streaming application are deployed to a preferred virtual machine determined according to the physical location attributes of the preferred virtual machine.
展开▼