2010-04-16 15 views
6

Pour tester les performances, je souhaite capturer du trafic provenant d'un serveur de production et utiliser cette base pour relire la requête à un serveur de test afin de simuler une charge réaliste dans notre environnement de développement. Ce sont toutes des requêtes sans état, donc pas de problèmes concernant les cookies, sessions, etc.Un bon moyen de capturer/rejouer des sessions depuis Apache Log?

Le journal Apache horodatage tout à une résolution d'une seconde, mais ce n'est pas assez précis pour nos heures de pointe. Quelle est la meilleure façon de capturer des horodatages plus fins pour la relecture? Et est-il un ab-like programme de génération de charge qui peut utiliser ces données pour répliquer la charge?

Répondre

3

Utilisez jmeter.

https://serverfault.com/questions/84041/how-can-i-replay-apache-access-logs-back-at-my-servers-to-do-real-world-load-test

http://jmeter.apache.org/usermanual/component_reference.html#Access_Log_Sampler

en ce qui concerne la granularité avec horodatages, vous ne va pas mieux que cela. Cependant, vous pouvez les randomiser créneaux horaires dans les jmeter. Même si votre trafic de production Afficher les journaux frappe chaque seconde, vous pouvez dire à jmeter d'accélérer considérablement.

2

Vous pouvez capturer les données du réseau d'un cycle de production, l'analyser et l'utiliser ensuite comme un mécanisme de lecture comparant les résultats du cycle de production et l'essai (si désiré). Oren Eini (Ayende Rahien) parle de quelque chose de tout à fait similaire on his blog.

Je sais qu'il ya (ou était) un outil qui vous a permis de faire des tests de charge/performance basée sur les sessions enregistrées, mais je ne peux pas le trouver en ce moment :(.