Im Allgemeinen können Sie einige der erweiterten Optionen des Dienstprogramms iperf verwenden , um einen Überblick über die Netzwerkleistung zwischen Systemen zu erhalten, insbesondere über Latenz und Jitter.
Handelt es sich um einen UDP- oder TCP-basierten Nachrichtenstrom?
Ich habe oben darauf hingewiesen, dass Sie weitere Informationen zu Ihrem Setup benötigen. Wenn es sich um eine Messaging-Anwendung mit geringer Latenz handelt, gibt es eine ganze Welt von Optimierungs- und Optimierungstechniken, die sich auf die Optimierung von Hardware, Treibern und Betriebssystemen erstrecken. Aber wir brauchen wirklich mehr Informationen.
Bearbeiten:
Okay, das ist TCP-Messaging. Haben Sie irgendwelche /etc/sysctl.conf
Parameter geändert ? Wie sehen Ihre Sende- / Empfangspuffer aus? Die Verwendung eines Echtzeit-Kernels allein kann nicht viel bewirken. Wenn Sie sich jedoch an den Punkt begeben, an dem Sie Interrupts an die CPU binden , kann es hilfreich sein, die Echtzeitpriorität der Messaging-App ( chrt
) zu ändern und möglicherweise das tuned-adm
Profil des Systems zu ändern.
Dies scheint ein generisches EL6-System zu sein. Eine einfache Möglichkeit, eine Leistungsoptimierungsbasis festzulegen, besteht darin, das Leistungsprofil des Systems in ein anderes zu ändern, das im optimierten Framework verfügbar ist . Dann bauen Sie von dort aus.
In deinem Fall:
yum install tuned tuned-utils
tuned-adm profile latency-performance
Eine kurze Matrix mit den Unterschieden:
Können Sie uns etwas über die Hardware erzählen? Arten von CPU, NIC, Speicher?
Es könnte also interessant sein, Ihren Link zu testen ... Probieren Sie diesen iperf-Test aus ...
Starten Sie auf einem System einen iperf UDP-Listener. Öffnen Sie andererseits eine Verbindung zum ersten ... Ein schneller Test der Leitungsqualität.
# Server2
[root@server2 ~]# iperf -su
# Server1
[root@server1 ~]# iperf -t 60 -u -c server2
In meinem Fall niedriger Jitter und niedrige Ping-Zeit:
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 224 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.15.3 port 5001 connected with 172.16.2.152 port 36312
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-20.0 sec 2.50 MBytes 1.05 Mbits/sec 0.012 ms 0/ 1785 (0%)
PING server1 (172.16.2.152) 56(84) bytes of data.
64 bytes from server1 (172.16.2.152): icmp_seq=1 ttl=63 time=0.158 ms
64 bytes from server1 (172.16.2.152): icmp_seq=2 ttl=63 time=0.144 ms
Ich würde die Hardware und Schnittstellen auf Fehler überprüfen. Wenn Sie möchten, müssen Sie den Systemwechsel aufheben und sehen, wie eine direkte Verbindung aussieht. Sie möchten keinen hohen Jitter (Varianz), überprüfen Sie dies.
Aber ehrlich gesagt, sollte dies trotz der Ping-Zeiten, die Sie für Ihr aktuelles Setup benötigen, nicht ausreichen, um Ihre Anwendung zu beenden. Ich würde den Weg der Optimierung Ihrer Sende- / Empfangspuffer beschreiten. Siehe auch : net.core.rmem_max
, net.core.wmem_max
und die Standardwerte ...
Sowas in etwa /etc/sysctl.conf
(bitte nach Geschmack abstimmen):
net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216