09:22 <grenoya> bonjour
10:33 <misc> lo
15:15 <marmoute> tarek: ping, vous avez déjà envisager pypy pour faire tourner vos service mozilla en Python /
15:17 <tarek> marmoute: coucou. y en a un qui tourne avec (simplepush avec pypy et twisted)
15:20 <marmoute> ha cool
15:20 <marmoute> vous en êtes content ?
15:23 <gawel> le seul truc c'est que mercurial rame avec pypy
15:24 <tarek> marmoute: ca boost et c'est 10x plus petit en memoire que la meme appli en go
15:25 <tarek> c'est une appi a la websocket - elle doit tenir des centaines de milliers de connections
15:47 <marmoute> gawel: trop gros passera pas.
15:47 <marmoute> cool
15:52 <mandark> tarek: et ça tient des centaines de milliers de connections ? Je veux dire, techniquement, dépasser les 10k c'est pas évident, j'ai du code en C qui tient 25k à l'aise et j'ai pas eu l'occaz de monter plus haut, mais tenir "des centaines de milliers" en python ça tien réelement ou en théorie ?
16:07 <tarek> mandark: oui oui sans soucis. c'est pas vraiment un probleme de language, c'est plus le tweaking OS. Mais le langage ajoute un peu d'overhead mémoire a la creation des sockets, et en go c'est enorme
16:07 <mandark> tarek: ça dépend surtout de la méthode de polling
16:07 <tarek> mandark: python est tres proche de l'appel systeme pour les sockets
16:08 <mandark> Avec select ou poll, > 5000 connections c'est impossible
16:08 <tarek> mandark: ca c'est autre chose, c'est la maniere de faire de l'I/O sur les sockets
16:08 <mandark> Yep
16:08 <mandark> tarek: tu tiens actuellement en prod > 200k connections ouvertes ?
16:09 <tarek> 125k sur aws car ils nous limitent a ca
16:09 <mandark> Oh ? J'ignorais qu'ils limitaient ^^
16:09 <tarek> en pratique tu peux faire bcp plus sur ton propre hardware
16:09 <tarek> c pas documenté
16:10 <mandark> En pratique c'est pas si simple de dépasser les 100k connections, le kernel souffre avec la conf par défaut
16:10 <mandark> Faut tweaker
16:10 <mandark> Confer
16:10 <tarek> c'est le plus gros boulot
16:10 <mandark> On est d'accord
16:11 <tarek> y a des slides de urban airship qui donnent pleins de tuyaux. on est parti de ca
16:12 <misc> ah oui, c'est important d'avoir plein de tuyau quand tu veux ajuster la plomberie
16:12 <mandark> Et la ou pour moi Python ne tiens pas c'est quand tu vas vouloir écrire sur les 100k sockets en même temps (un broadcast quoi) le goulot sera au niveau CPU ou RAM pour la rédaction de messages (plein de strings à allouer en Python)
16:12 <mandark> Alors qu'en C je m'en sort en réutilisant des espaces mémoires dédiés à ma rédaction de messages, grosse réutilisation, donc peu d'écriture, peu de RAM
16:13 <tarek> ah oui limiter la contention ca aide
16:13 <mandark> Après ton usage n'est peut être pas d'envoyer un message a tout le monde en même temps :p
16:13 <tarek> mais avec twisted+pypy c'est pas mal
16:13 <mandark> Ok
16:13 <tarek> non c pas notre use case
16:14 <tarek> mais je pense que ca ce shard bien ton use case
16:14 <mandark> Nous carrément on est un site de news, quand on publie, ça envoie le message a tout le monde, quand tu as 25k messages à rédiger et écrire sur les sockets, faut y aller :p
16:14 <tarek> oueppe
16:14 <tarek> mais si c le meme message c'est plus facile
16:15 <mandark> Pour le moment on shard au niveau des sites, et ça tient, on dépasse rarement 25k connections par serveur
16:15 <mandark> Donc ça va
16:15 <mandark> Je pense pouvoir monter à 100k sans "trop" se souci j'ai de "la marge"
16:15 <mandark> En théorie
16:16 <tarek> on a été ehabis par les perfs de twisted avec pypy - je pense que ca tiens la comparaison avec le C
16:16 <mandark> T'as des liens de urban airship sur le tweak de conf TCP au delà de 100k ?
16:16 <tarek> mais bon, twisted c'est chiant
16:16 <mandark> Ça pourra me servir ^^
16:16 <tarek> https://www.urbanairship.com/blog/linux-kernel-tuning-for-c500k
16:17 <mandark> Oh merci :)
16:17 <tarek> y a ce blog post et qq part des slides
16:18 <tarek> l'article de whatsapp aussi https://blog.whatsapp.com/2011/09/?
16:18 <tarek> erm merde c'est pas ce lien
16:18 <tarek> mais si tu fouilles tu trouveras des tweaks aussi
16:19 <tarek> c'est fun comme taf :)
16:21 <tarek> on a ecrit un outil de load testing specifique pour ce job
16:29 <mandark> tarek: et ça m'intéresse car mon implém est vieille (pas de web socket pas de https) donc j'aimerai la changer mais pour ça foke je compare les perf
16:41 <tarek> c'est dur a load tester. faut faire une charge distribuée assez massive
16:44 <mandark> Yep :p
16:47 <misc> bah, tu postes un lien "Half life 3 leaker copy" sur twitter, et tu l'as
16:53 <tarek> mouarf
17:15 <gawel> marmoute: qui ne tentes rien...
17:20 <marmoute> gawel: et en pratique il y a de bonne chance que ça ai changer d'ici la fin de l'année
17:41 <gawel> tu bluffes martoni!
17:44 <misc> il dit qu'il voit pas le rapport
17:45 <marmoute> cochon d'inde
21:20 <alain_afpy> matin
23:04 <feth> alain_afpy: quelle tz ?
23:04 <alain_afpy> feth: cool :) on va a nouveau pouvoir discuter philosophie
23:04 <feth> \o/