CLOSE_WAIT套接字内存含义

时间:2017-10-05 12:46:57

标签: c++ c sockets unix

我正在使用C ++的大型服务器,我们为多个用户提供服务。我最近注意到,在我的代码中出现一些情况后,套接字没有正确关闭,我们在CLOSE_WAIT状态下有数千个套接字。我读了这个意思

  

CLOSE_WAIT表示服务器已收到第一个FIN   来自客户端的信号和连接正在进行中   关闭

     

所以这实际上意味着他是一个套接字等待的状态   为应用程序执行close()

     

套接字可以无限期地处于CLOSE_WAIT状态,直到应用程序   关闭它。有问题的情况就像filedescriptor泄漏,服务器   没有在socket上执行close()导致close_wait堆积   插座

我开始搜索我的bug在哪里,因为很明显我们没有正确关闭这些套接字。

对于我的程序内存有什么意味着所有这些套接字处于CLOSE_WAIT状态?我注意到当我有很多这些套接字时,进程开始消耗大量内存(4GB)。与记忆有关的含义是什么?也许这个内存泄漏与此无关?非常感谢你。

0 个答案:

没有答案