Grid and ubiquitous computing systems generally consist of a large number of networked nodes with applications implemented as distributed services or processes, respectively. A crucial point is the distribution of the services to balance the load within the system during runtime. In a former work we developed a self-optimization mechanism which shows outstanding performance in static environments where the services do not change their resource consumptions (e.g. CPU, memory, communication bandwidth). In this paper we present simulation results for the self-optimization within dynamic environments where the services change their load during runtime.