sélectionnez vs sondage vs epoll
Je suis en train de concevoir un nouveau serveur qui doit prendre en charge des milliers de connexions UDP (quelque part autour de 100 000 sessions). Toute entrée ou suggestions sur laquelle utiliser?
- quel système d'exploitation êtes-vous? différents os ont spécifiques différentes.
- Linux Redhat enterprise version 5
- Vous devez également vérifier l'événementiel (asychronous) les cadres comme Tordu, où vous pouvez écrire votre serveur et de le tester avec différents modes de scrutin: TwistedMatrix.com : le Choix d'un Réacteur
- Zed Shaw a écrit une excellente analyse de epoll vs sondage: sheddingbikes.com/posts/1280829388.html tl;dr: un Sondage est bonne si vous avez un grand ratio de l'actif fds. Epoll est mieux si vous avez un grand nombre d'inactifs fds. Un bon exemple d'inactifs fds sont des choses comme les WebSockets et Cometd, où les clients pourront ouvrir une connexion et d'attendre un long moment avant que rien ne soit transmise à l'autre.
- J'ai trouver un bon site pour indiquer la différence entre eux : ulduzsoft.com/2014/01/... l'Espoir peut aider
Vous devez vous connecter pour publier un commentaire.
La réponse est epoll si vous utilisez Linux, kqueue si vous utilisez FreeBSD et Mac OS X, et i/o ports de fin si vous êtes sur Windows.
Des choses supplémentaires que vous aurez (presque certainement) voulez la recherche sont:
En outre, il est important de noter que le protocole UDP n'a pas de "connexions" contrairement à TCP. Il serait dans votre meilleur intérêt de commencer petit et de plus grande échelle depuis le débogage réseau à base de solutions peut être difficile.
L'auteur de ROULAGE a écrit un article fascinant sur sondage vs sélectionnez vs événement bibliothèques.
Linux:
epoll
FreeBSD:
kqueue
Windows: ??
Il y a wrapper bibliothèques, comme libevent et libev, ce qui possible de faire abstraction de cela pour vous.