Fnux Posted September 15, 2014 Posted September 15, 2014 (edited) Salut à tous, Pour reprendre un dialogue commencé avec Big Orno dans le post de Kesskisspass de la section Présentation des membres (et que j’ai laissé un peu en suspend par manque de temps... désolé), voici un petit papier que j’ai écrit pour d’une part présenter un exemple de "wrapper" et d’autre part pour en profiter pour faire quelques benchmarks de web servers (plus ou moins connus). Merci de noter que je ne fais aucun prosélytisme ni pour ce wrapper open source (qui utilise un outil lui aussi open source : weighttp), ni pour aucun des 4 web servers que j’ai testés car je vous laisse juger par vous-même en vous donnant les liens nécessaires pour faire vos propres tests comparatifs. Par contre, je reconnais que le server web que je préfère est G-WAN, un freeware (gratuiciel) propriétaire (closed sources) en raison non seulement des performances que j’ai pu mesurer (scalability), mais aussi de sa fiabilité (je l'utilise sans aucun problème depuis 2010) et surtout de son incroyable propension à utiliser (sans aucun fichier de configuration complexe comme c'est le cas avec bien d'autres outils) plus de 15 langages de programmation différents. Pour les passionnés de performances pures, faire un site ou une application web en C, G-WAN les comblera. Pour vous en faire une idée : faites vous même le comparatif du servlet de calcul de remboursement de prèt (loan) écrit en C, en C#, en Java et en PHP qui est livré comme l'un des exemples avec G-WAN. A votre entière disposition pour discuter de ces différents points, mais merci d'avance sans passion ni surtout sans invective des geeks ayatollahs inconditionnels de l'open-source (oui, dans certains cas, les softs propriétaires, gratuits (freeware) ou payants sont meilleurs que les soft open source). A+ Lien du document : http://www.as2.com/linux/tools/abc2-weighty.pdf Lien du wrapper : http://www.as2.com/linux/tools/WSBT_install.tar.bz2 Lien du script G-WAN : http://www.as2.com/linux/tools/G-WAN_full-install.tar.bz2 Pour décompacter les fichiers compressés : tar -xjf nom_du_fichier.tar.bz2 PS : J’ai adapté très rapidement mes deux scripts d’installation (celui du wrapper et celui de G-WAN) pour qu’ils puissent s’exécuter sous elementaryOS. Aussi, n’hésitez pas à me dire si vous rencontrez des problèmes avec ces scripts que je n’ai pas testés à 100 pour 100 et qui peuvent présenter des petits insectes (bugs). Edited September 18, 2014 by Fnux
Fnux Posted September 18, 2014 Author Posted September 18, 2014 (edited) Re salut à tous, Bon, vu le manque de réaction manifeste à mon post, il me semble que : - soit ce sujet n'intéresse personne (ce qui est tout à fait compréhensible en regard de l'audience ciblée sur les utilisateurs et/ou administrateurs de serveurs web), - soit que presque personne ne suit réellement ce forum (ce qui est dommage pour elementaryOS plein de promesses). Merci aux "admins" de me dire s'il est souhaitable (ou non) de continuer de contribuer ici. Très cordialement. Fnux. PS: Combien y a-t-il de membres "actifs" de ce forum très sympathique ? Edited September 18, 2014 by Fnux
pioupiou41 Posted September 19, 2014 Posted September 19, 2014 Je pense qu'en fait c'est plus de l'incompréhension. Il faudrait que tu nous apporte les interrets du procédé, car là pour moi, je vois pas a quoi ça peut réellement servir.
Fnux Posted September 19, 2014 Author Posted September 19, 2014 (edited) Salut pioupiou41, Je pense qu'en fait c'est plus de l'incompréhension. Il faudrait que tu nous apporte les interrets du procédé, car là pour moi, je vois pas a quoi ça peut réellement servir. Ce post est une réponse "concrète" avec un exemple réel à la question de Big Orno demandant ce qu'est un wrapper. Si j'ose une comparaison, un wrapper est comme une sur classe qui hérite des propriétés d'une autre classe et les utilise en les enveloppant (wrap) de ses propres fonctionnalités. Mais pas besoin pour autant de faire de la programmation objet (dans le cas présent, abc2 et weighttp sont en C pur et dur). Pour détailler l'exemple que j'ai proposé, abc2 enveloppe weighttp et, tout en utilisant sa fonction de base sans l'altérer (le lancement de requêtes web à un serveur découpées en nombre égaux de requêtes par nombre de core ou de thread du CPU), lui ajoute des fonctions complémentaires (multiples lancements des séries de requêtes pour obtenir des mesures fiables avec minimum, moyenne et maximum, montée en charge du nombre de clients pour stresser le serveur, recueil d'informations complémentaires comme l'usage du CPU et de la RAM, sauvegarde des résultats dans un fichier csv permettant de créer facilement des graphiques, etc.). Donc, le wapper abc2 hérite de weighty et l'enveloppe (ou le surcharge si vous préférez) de fonctions qui ne sont pas présentes dans weighty. L'intérêt d'un wrapper devient donc alors évident : utiliser un code qui fait quelque chose de bien sans le modifier (au risque de soit le dénaturer, soit de le bugguer) et lui ajouter des fonctions qu'il n'a pas. Est-ce plus clair maintenant ? Edited September 19, 2014 by Fnux
pioupiou41 Posted September 19, 2014 Posted September 19, 2014 Ok donc 1 truc qui utilise un autre truc en lui ajoutant des trucs, tout sans sans modifier le truc utiliser, Ok je comprends, dans ton cas c'est pour faire un stress-test d'un serveur. Mais est-ce applicable a d'autre chose ou seulement dans le cas du test serv?
Fnux Posted September 19, 2014 Author Posted September 19, 2014 (edited) Re salut pioupiou41, Ok donc 1 truc qui utilise un autre truc en lui ajoutant des trucs, le tout sans modifier le truc utilisé, Ok je comprends, dans ton cas c'est pour faire un stress-test d'un serveur. Mais est-ce applicable a d'autre chose ou seulement dans le cas du test serv? Oui, en langage imagé comme tu le définis si bien, c'est exactement ça. Et dans l'exemple du wrapper abc2, c'est très exactement pour faire un outil de stress de serveurs web exploités sur des micro ordinateurs d'architectures dites modernes, à savoir des machines utilisant des CPU multi core et/ou multi thread, ce qui n'est pas possible avec les dinosaures comme AB ou HTTperf conçus avant l'avènement de ces CPU dits "modernes". Et ce qui est assez dingue, est que l'on continue à publier des comparatifs faits avec ces vieux outils complètement obsolètes, alors que les CPU multi core sont disponibles dans le grand public depuis 10 ans........ (2004) ! Enfin, oui la technique du wrapper est utilisable avec n'importe quel type de code. Encore faut-il que cela soit non seulement utile, mais aussi que cela soit bien fait, ce qui n'est pas le cas par exemple de siege ! Just my 2 cents. Edited September 19, 2014 by Fnux
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now