4 research outputs found

    Memory-manager/Scheduler Co-design: Optimizing Event-driven Programs to Improve Cache Behavior

    Get PDF
    International audienceEvent-driven programming has emerged as a standard to implement high-performance servers due to its flexibility and low OS overhead. Still, memory access remains a bottleneck. Generic optimization techniques yield only small improvements in the memory access behavior of event-driven servers, as such techniques do not exploit their specific structure and behavior. This paper presents an optimization framework dedicated to event-driven servers, based on a strategy to eliminate data-cache misses. We propose a novel memory manager combined with a tailored scheduling strategy to restrict the working data set of the program to a memory region mapped directly into the data cache. Our approach exploits the flexible scheduling and deterministic execution of event-driven servers. We have applied our framework to industry-standard web servers including TUX and thttpd, as well as to the Squid proxy server and the Cactus QoS framework. Testing TUX and thttpd using a standard HTTP benchmark tool shows that our optimizations applied to the TUX web server reduce L2 data cache misses under heavy load by up to 75% and increase the throughput of the server by up to 38%

    Optimisations de compilateur optimistes pour les systèmes réseaux

    Get PDF
    Cette thèse présente un ensemble de techniques qui permettent l’optimisation des performances des sysèmes réseaux modernes. Ces techniques reposent sur l’analyse et la transformation des programmes impliqués dans la mise en ´oeuvre des protocoles réseaux. La première de ces techniques fait appel à la spécialisation de programmes pour optimiser des piles de protocoles r´eseaux. La deuxième, que nous avons nomm´ee sp´ecialisation distante, permet à des systèmes embarqu´es limit´es en ressources de b´en´eficier de la sp´ecialisation de programmes en d´eportant à travers le r´eseau les op´erations de sp´ecialisation à une machine distante moins limit´ee. La troisième propose un nouvel allocateur de m´emoire qui optimise l’utilisation des caches mat´eriels faite par un serveur r´eseau. Enfin, la quatrième technique utilise l’analyse de programmes statiques pour int´egrer l’allocateur propos´e dans un serveur réseau existant. On appelle ces techniques optimisations compilateur parce qu’elles opèrent sur le flot des donn´ees et du controle dans des programmes en les transformant pour qu’ils fonctionnent plus efficacement.This dissertation describes techniques that can optimize the performance of modernday network systems. They are applied through the analysis and transformation of programs that implement network protocols. The first of these techniques involves the use of Program Specialization, a well-established code-optimization approach, to optimize network protocol stacks. The second, Remote Specialization makes specialization amenable to resource-limited embedded systems by deferring it over the network to a more capable system. The third technique revolves around a novel memory manager introduced in this thesis and optimizes a network server’s use of the underlying hardware caches. Finally, the fourth technique uses static analysis to integrate the proposed memory manager with an existing network server. All four techniques are implemented in a set of tools that can be used to automatically optimize network applications, and are referred to as compiler optimizations as they are based on program analysis and transformation

    Profile-directed optimization of event-based programs

    No full text
    Event-based systems provide a simple way to create flexible, extensible, and customizable system architectures and give a "user-driven" feel to the system. However, the indirect coupling between the raising and handling of events introduces a number of overheads into the system. Such overheads can be surprisingly large,and are especially significant in small mobile systems. This paper describes a framework for profile-guided optimization of event-based systems. Experiments using our approach on two different event-based systems, Cactus and X-windows, indicates that it can achieve significant reductions in event handling overheads and lead to considerable improvements in overall system performance
    corecore