Resource allocation is an important factor in overall application performance. You do not want to use more resources than needed, and at the same time you want to make sure that applications do not compete for resources unnecessarily.
For example, if you have a resource intensive application, you might want to prevent other applications from running on the same host to avoid competition for resources. Starting in Streams 4.3, you can configure your instance to acquire more resources when needed and
The following video explains more about this feature and how to use it.
Dynmacally Acquiring and Sharing Resources
You can also improve performance of an application by identifying bottlenecks and adding parallelism to relieve congestion. Learn more about how to do this in this video on identifying bottlenecks and scaling Streams applications.