Networking 进程停止获取网络数据 我们有一个进程(用C++编写的),它通过TCPIP接收网络数据。 在跟踪网络负载的同时运行进程一段时间后,似乎网络进入冻结状态,进程没有获取数据,系统中还有其他进程使用正常运行的网络(相同nic)。 过程在几分钟后自行摆脱这种冻结状态

Networking 进程停止获取网络数据 我们有一个进程(用C++编写的),它通过TCPIP接收网络数据。 在跟踪网络负载的同时运行进程一段时间后,似乎网络进入冻结状态,进程没有获取数据,系统中还有其他进程使用正常运行的网络(相同nic)。 过程在几分钟后自行摆脱这种冻结状态,networking,tcp,freeze,Networking,Tcp,Freeze,知道发生了什么吗? 任何我可以跟踪的计数器,看看我的流程是否达到某些限制?很难具体回答, --在不知道您的流程/应用程序的具体内容的情况下 --无论是网络聊天应用程序,还是文件服务器/客户端,还是 --没有其他关于您的流程如何实现、它使用什么库(如果与问题相关)的详细信息 另外,您还没有提到运行此流程的操作系统和环境, 几乎没有人能帮上忙。它可能是任何东西,代码中的忙等待循环,如果是多线程代码,则锁定问题,。。。。 尽管如此,仍有一些选项需要检查: 如果它的linux尝试使用以下命令来调试和监视

知道发生了什么吗?
任何我可以跟踪的计数器,看看我的流程是否达到某些限制?

很难具体回答, --在不知道您的流程/应用程序的具体内容的情况下

--无论是网络聊天应用程序,还是文件服务器/客户端,还是

--没有其他关于您的流程如何实现、它使用什么库(如果与问题相关)的详细信息

另外,您还没有提到运行此流程的操作系统和环境, 几乎没有人能帮上忙。它可能是任何东西,代码中的忙等待循环,如果是多线程代码,则锁定问题,。。。。 尽管如此,仍有一些选项需要检查:

如果它的linux尝试使用以下命令来调试和监视进程的行为,并查看可能出现的问题-

  • 顶 检查顶部以查看您的进程正在使用多少资源(CPU、内存),以及是否有异常高的CPU使用率值

  • pstack 这应该是问题发生时执行的进程的堆栈帧

  • netstat 使用必要的选项(tcp/udp)运行此命令,以检查进程打开的网络套接字的状态

  • gcore-s-c 当出现上述问题时,这将强制您的进程进行核心化,然后使用gdb分析该核心文件 gdb 然后在gdb提示符下使用where命令获取进程的完整跟踪(它执行的是上一次和上一次函数调用的函数)