De manière générique, vous pouvez utiliser certains des commutateurs avancés de l' utilitaire iperf pour obtenir une vue des performances du réseau entre les systèmes, en particulier la latence et la gigue ...
S'agit-il d'un flux de messages basé sur UDP ou TCP?
J'ai commenté ci-dessus avoir besoin de plus d'informations sur votre configuration. S'il s'agit d'une application de messagerie à faible latence, il existe tout un monde de techniques de réglage et d'optimisation qui couvrent le matériel, les pilotes et le réglage du système d'exploitation. Mais vraiment, nous avons besoin de plus d'informations.
Éditer:
D'accord, il s'agit donc de la messagerie TCP. Avez-vous modifié des /etc/sysctl.conf
paramètres? À quoi ressemblent vos tampons d'envoi / réception? L'utilisation d'un noyau en temps réel seul ne fera pas grand-chose, mais si vous passez au point où vous liez des interruptions aux CPU, changer la priorité en temps réel de l'application de messagerie ( chrt
) et éventuellement modifier le tuned-adm
profil du système peut aider ...
Cela semble être un système EL6 générique, donc un moyen facile de définir une base de réglage des performances implique de changer le profil de performances du système en un autre disponible dans le cadre optimisé . Construisez ensuite à partir de là.
Dans ton cas:
yum install tuned tuned-utils
tuned-adm profile latency-performance
Une matrice rapide montrant les différences:
Pouvez-vous nous parler du matériel? Types de CPU, NIC, mémoire?
Donc, il peut être intéressant de tester votre lien ... Essayez ce test iperf ...
Sur un système, démarrez un écouteur iperf UDP. De l'autre, ouvrez une connexion avec le premier ... Un test rapide de qualité de ligne.
# Server2
[root@server2 ~]# iperf -su
# Server1
[root@server1 ~]# iperf -t 60 -u -c server2
Dans mon cas, faible gigue et temps de ping faible:
------------------------------------------------------------
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
Je vérifierais le matériel et les interfaces pour les erreurs. Si vous le souhaitez, supprimez le basculement entre les systèmes et voyez à quoi ressemble une connexion directe. Vous ne voulez pas de gigue élevée (variance), alors vérifiez cela.
Mais honnêtement, même avec les temps de ping que vous obtenez sur votre configuration actuelle, cela ne devrait pas être suffisant pour tuer votre application. Je choisirais de régler vos tampons d'envoi / réception. Voir: net.core.rmem_max
, net.core.wmem_max
et leurs valeurs par défaut ...
Quelque chose comme ce qui suit /etc/sysctl.conf
(veuillez régler au goût):
net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216