Skip to main content

Les personnes qui passent de TCP_OS à STCP remarquent d'emblée que l'ensemble des statistiques TCP affichées par la commande TCP_OS netstat est beaucoup plus riche que celui affiché par STCP. Les statistiques de netstat du STCP affichent les statistiques TCP standard de la RFC-1213. Des statistiques telles que les doublons d'acks, les doublons de données, les paquets en panne ou les comptages des sondes de fenêtre sont manquantes. Cependant, de nombreuses statistiques sont disponibles dans le cadre de la sortie affichée par la requête stcp_meters de analyze_system. Essayez la commande :
analyze_system -request_line 'stcp_meters -all -long' -quit

Les arguments et la sortie de stcp_meters sont documentés dans le manuel d'analyse du système OpenVOS (R073), disponible sur http://stratadoc.stratus.com. L'ensemble de données n'est pas le même que celui de la commande TCP_OS ; certains compteurs comme "connexions abandonnées par retransmission" sont manquants mais il y a aussi de nouveaux compteurs comme "fenêtre mise à zéro après réception". Une bonne chose est que le pourcentage du compteur est calculé et présenté automatiquement par magie.

Un problème majeur avec les statistiques TCP de netstat de TCP_OS et STCP est qu'elles sont pour le module entier, les compteurs de chaque connexion ayant jamais existé (au moins pour le démarrage actuel) sont additionnés pour obtenir les valeurs affichées. Les problèmes, comme les retransmissions inacceptables, qui affectent une ou quelques connexions peuvent se perdre dans les compteurs globaux. Le comportement par défaut de stcp_meters a le même problème, il agrège les compteurs de toutes les connexions depuis le démarrage en cours ; MAIS, stcp_meters peut prendre comme argument l'adresse PCB (protocol control block) d'une seule connexion et afficher les statistiques pour cette seule connexion ; ce qui en fait une aide au débogage importante. Pour trouver l'adresse du PCB, vous exécutez netstat avec l'argument PCB_addr, oui le PCB est en majuscule. Une fois que netstat est terminé, vous trouvez la connexion qui vous intéresse et l'adresse du PCB se trouve dans la première colonne.

La macro suivante le fait pour vous, en exécutant netstat, en localisant la connexion qui vous intéresse, en extrayant l'adresse du PCB et en exécutant ensuite stcp_meters. La macro prend soit l'adresse du PCB si vous la connaissez déjà (auquel cas elle saute la plupart des étapes ci-dessus), soit deux chaînes de caractères pour vous aider à identifier la connexion qui vous intéresse. Le message d'utilisation indique que les chaînes doivent être l'adresse IP locale, le numéro de port local et l'adresse IP distante, le numéro de port distant. Cela permettra d'identifier la connexion de manière unique, mais vous pourrez peut-être vous en sortir avec moins, par exemple en utilisant uniquement le numéro de port local et l'adresse IP distante. Si les chaînes spécifiées identifient plus d'une connexion, des compteurs pour chacune des connexions seront affichés. La ligne de netstat apparaîtra au-dessus des compteurs pour identifier la connexion à laquelle les compteurs sont destinés.

Si vous voulez afficher les compteurs de toutes vos connexions établies, essayez la commande
get_connection_meters -local ESTAB -remote :

Dans ce cas, les arguments ne représentent pas les adresses locales et distantes, mais l'État ÉTABLI et toute ligne comportant un double point.

& get_connection_meters commence ici
&
& get_connection_meters.cm
& version 1.0 09-04-06
& [email protected]
&
&begin_parameters
 Option LOCAL (-local),chaîne
 Option REMOTE (-remote),chaîne
Option PCB(-pcb),chaîne
&end_parameters
&
et s'assurer que les éléments étrangers ne sont pas répercutés dans le fichier des résultats
&if (process_type) = "batch" &then &do
set_ready -format off
&echo no_command_lines
&end
&
&if (durée &PCB&) > 0
&en &do
   &if (durée &LOCAL&) > 0
       &then &goto ERROR_ADDRESS
   &if (durée &REMOTE&) > 0
       &then &goto ERROR_ADDRESS
   analyze_system -request_line (string stcp_meters &PCB& -all -long) -quit
   &retour
&end
&
&set_string FILE_1 (process_dir)>connect_stcp_meters_1.temp
&set_string FILE_2 (process_dir)>connect_stcp_meters_2.temp
&
&if (durée &LOCAL&) = 0
    &then &goto ERROR_ADDRESS
&if (longueur &REMOTE&) = 0
    &then &goto ERROR_ADDRESS
attach_default_output &FILE_1&
netstat -numeric -PCB_addr
detach_default_output
&
display &FILE_1& -match &LOCAL& -output_path &FILE_2& -no_header
affichage &FICHIER_2& -match &REMOTE& -chemin_de_sortie &FICHIER_1& -pas_d'en-tête
&
&attach_input
analyser_système
&set LINE 1
&label AGAIN
&set_string CONNECTION (contenu &FILE_1& &LINE& -hold)
&if (end_of_file &FILE_1&) = 1 &then &do
    &if &LINE& = 1
       &then &goto ERROR_NOT_FOUND
       &else &do
          quitter
          &retour
       &end
&end
&
..display_line ============================================================
..display_line ============================================================
..display_line
...display_line &CONNECTION&.
..display_line
&set_string PCB (substr (string &CONNECTION&) 1 8)
stcp_meters &PCB& -tous -long
&set LINE (calc &LINE& + 1)
&goto AGAIN
&
&
&label ERROR_NOT_FOUND
quitter
display_line
display_line
display_line N'a pas pu trouver la connexion spécifiée dans la sortie de netstat
display_line &LOCAL& &REMOTE&
&retour
&
&label ERROR_ADDRESS
display_line
display_line Vous devez saisir soit un PCB, soit les DEUX IP:port local et distant
utilisation de display_line :
display_line ' get_connection_meters -pcb PCB
display_line ' or'.
display_line ' get_connection_meters -local IP:PORT -remote IP:PORT
&retour
&
& get_connection_meters s'arrête ici

2024 Stratus Technologies.