今天,系统日志里显示 Too many open files,于是使用lsof命令查看文件句柄数。发现是网络连接太多(CLOSE_WAIT).
linux平台下:使用下面命令
lsof -nl|grep CLOSE_WAIT|awk '{print $9,$10}'|wc -l
发现 CLOSE_WAIT|太多
展示片段如下:
192.168.10.32:52727->192.168.10.31:webcache (CLOSE_WAIT)
192.168.10.32:52747->192.168.10.31:webcache (CLOSE_WAIT)
我这是处理逻辑问题,curl_easy_init 和curl_easy_cleanup没有成对调用,
因触发异常导致的。解决办法是封装一个类(实际上,这个非常类似于java中的try{}finally{}用法,但比JAVA的看起来舒服
class AutoDestory{
public:
//构造函数中加入curl_easy_init
//析构函数加入curl_easy_cle