1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of operators that process a plurality of data tuples; and a streams manager residing in the memory and executed by the at least one processor, the streams manager monitoring performance of the streaming application, and when the streams manager determines an under-performing operator of the streaming application can be optimized, the streams manager modifies the flow graph to move the under-performing operator of the streaming application to a preferred virtual machine based on physical location attributes of the preferred virtual machine.