Il y a une description ici :
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.0/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-Application_Tuning_and_Deployment-TCP_NODELAY_and_Small_Buffer_Writes.htmlÉgalement du tcp (5) page d'homme :
TCP_NODELAY
Si réglé, désactiver l'algorithme de Nagle. Ceci signifie que des segments sont toujours envoyés As
bientôt comme possible, même s'il y a seulement un peu de données. Une fois non réglé, données
est protégé jusqu'à ce qu'il y ait une quantité suffisante à envoyer, prévention de ce fait
envoi fréquent de petits paquets, qui a comme conséquence l'utilisation pauvre du filet
travail. Cette option est dépassée par TCP_CORK ; cependant, plaçant des forces de cette option
un éclat explicite de rendement en suspens, même si TCP_CORK est actuellement placé.
J'ai écrit un serveur de TCP d'échantillon qui place TCP_NODELAY sur la douille. Il envoie alors des données dans diverses tailles de 1 à 8192 bytes. Vous pouvez compiler et le courir aimer ceci :
GCC de $ - o le nodelay_test.c nodelay_test
$ ./nodelay_test
Alors d'une autre coquille vous pouvez se relier à elle aimez ceci, using le netcat :
$ de localhost 5678 d'OR
Vous pouvez faire de diverses expériences de synchronisation en activer/l'arrangement de TCP_NODELAY, et en employant le « temps » avec l'OR comme ceci :
$ de localhost 5678 du temps OR > /dev/null
vrai 0m0.003s
utilisateur 0m0.000s
système 0m0.000s
Naturellement vous pouvez également l'employer au-dessus du réseau pour des résultats plus intéressants. Remplacer juste le localhost par les adderss d'IP de la machine lançant le programme d'essai. Et vous pouvez augmenter la taille de l'amortisseur.
Espérer que des aides !