Question : Permettre tcp_nodelay

Bonjour types,

Can que vous aidez à jeter plus de lumière dans le tcp_nodelay ci-dessus, comment est que nous lui avons permis de ramener le retard à 0 sur une machine de Linux. Me faire savoir vos pensées sur ceci. TY

Mike
class= de

Réponse : Permettre tcp_nodelay

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 !
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
/*
 * Exemple de serveur de TCP_NODELAY
 *

#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  

PORT 5678    de #define

dprintf de #define de // (arg…)
dprintf de #define (arg…) printf (arg)

handle_connection d'international (client d'international)
{
    buf de char [16384] ;
    international la SZ = 1 ;
    international i ;

    pour (i=0 ; j' envoie (client, buf, SZ, 0)) {
	perror (« envoyer failed ») ;
	sortie (EXIT_FAILURE) ;
      }
    }
    dprintf (« douille de fermeture de client \ n ») ;
    fin (client) ;
}

force d'international ()
{
    listensock d'international, clientsock ;
    nom de sockaddr_in de struct ;
    clientname de sockaddr_in de struct ;
    taille d'international ;
    international PID ;
    l'international choisissent ;

    listensock = douille (PF_INET, SOCK_STREAM, 0) ;
    si (listensock  < 0="">
           
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us