Eu escrevi um programa no Linux em C ++ que se conecta a um servidor e envia / recebe dados usando boost::asio
write
/ read
.
No horário de pico quando o servidor é iniciado, pois pode haver um número de usuários enviando dados para obter prioridade naquele momento específico, boost::asio::write
está demorando em milissegundos (30+ ou às vezes 60), enquanto no caso normal está levando alguns microssegundos. Não há carga no meu sistema nesse momento.
Eu passei pela Internet, mas não achei nada útil. Todo mundo está dizendo que o sistema irá escrever no buffer do kernel. Se for esse o caso, por que a chamada para boost::asio::write
está demorando muito?
Eu defini m_socket.set_option(tcp::no_delay(true));
Sugira o que posso fazer para resolver este problema.
Tags boost linux tcp high-performance