diff --git a/src/rpc/src/rpcTcp.c b/src/rpc/src/rpcTcp.c index 178b96c423641ccc6be84c57ca71fe7b85fd7a33..2538c2073b5403ee77f234ea980f941e099b3869 100644 --- a/src/rpc/src/rpcTcp.c +++ b/src/rpc/src/rpcTcp.c @@ -223,6 +223,7 @@ static void *taosAcceptTcpConnection(void *arg) { int threadId = 0; SThreadObj *pThreadObj; SServerObj *pServerObj; + int32_t bufSize = 128 * 1024; pServerObj = (SServerObj *)arg; tDebug("%s TCP server is ready, ip:0x%x:%hu", pServerObj->label, pServerObj->ip, pServerObj->port); @@ -241,15 +242,26 @@ static void *taosAcceptTcpConnection(void *arg) { } taosKeepTcpAlive(connFd); - struct timeval to={1, 0}; - int32_t ret = taosSetSockOpt(connFd, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to)); - if (ret != 0) { + + struct timeval to={10, 0}; + if (taosSetSockOpt(connFd, SOL_SOCKET, SO_RCVTIMEO, &to, sizeof(to)) != 0) { taosCloseSocket(connFd); tError("%s failed to set recv timeout fd(%s)for connection from:%s:%hu", pServerObj->label, strerror(errno), taosInetNtoa(caddr.sin_addr), htons(caddr.sin_port)); continue; } + if (taosSetSockOpt(connFd, SOL_SOCKET, SO_SNDBUF, (void *)&bufSize, sizeof(bufSize)) != 0) { + taosCloseSocket(connFd); + tError("failed to set the send buffer size for TCP socket\n"); + continue; + } + + if (taosSetSockOpt(connFd, SOL_SOCKET, SO_RCVBUF, (void *)&bufSize, sizeof(bufSize)) != 0) { + taosCloseSocket(connFd); + tError("failed to set the receive buffer size for TCP socket\n"); + continue; + } // pick up the thread to handle this connection pThreadObj = pServerObj->pThreadObj[threadId]; diff --git a/src/util/src/tsocket.c b/src/util/src/tsocket.c index 1a5c3bd64da3274773196da4a03c8c0613810f89..cb2df90cac8ced5183554316d2861419f06699cb 100644 --- a/src/util/src/tsocket.c +++ b/src/util/src/tsocket.c @@ -283,7 +283,7 @@ SOCKET taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clie SOCKET sockFd = 0; int32_t ret; struct sockaddr_in serverAddr, clientAddr; - + int32_t bufSize = 128*1024; sockFd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (sockFd <= 2) { @@ -299,6 +299,17 @@ SOCKET taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clie taosCloseSocket(sockFd); return -1; } + if (taosSetSockOpt(sockFd, SOL_SOCKET, SO_SNDBUF, (void *)&bufSize, sizeof(bufSize)) != 0) { + uError("failed to set the send buffer size for TCP socket\n"); + taosCloseSocket(sockFd); + return -1; + } + + if (taosSetSockOpt(sockFd, SOL_SOCKET, SO_RCVBUF, (void *)&bufSize, sizeof(bufSize)) != 0) { + uError("failed to set the receive buffer size for TCP socket\n"); + taosCloseSocket(sockFd); + return -1; + } if (clientIp != 0) { memset((char *)&clientAddr, 0, sizeof(clientAddr));