Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

There are three Linux Debian machines connected via Gigabit Ethernet router:

  1. Server machine A that is the source or HTTP streaming traffic with bandwidth 300 KBps.
  2. Proxy machine B that connected to server machine A and perform several calculations and bypass sligtly modified traffic to its clients. All these operations are performed by one application in one thread with use of libevent.
  3. Client machine C that is connected to proxy machine B with 32 curl clients. So proxy machine B handle all connections (1 AB connection and 32 BC connections) in one thread.

There is an issue exist. HTTP traffic between machines A and B stuck regularly for one half to several seconds. Symptoms:

  1. According to netstat the Send-Q of machine A does not change on stuck reprodution.
  2. According to IOCTL(FIONREAD) there are no bytes in input queue for application on proxy machine B.
  3. According to tcpdump and wireshark (tcpdumps from both machines A and B) I see TCP Retransmission on both machines A and B and TCP Dup ACK on machine B only.

It is may be significant: all three machines are servers machines. According to iftop and htop there is a big room in CPU, memory and network utilization.

My question is how can I improve the perfomance of the connection AB?

share|improve this question

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.