我正在尝试使用Google Benchmark来衡量API。它处理客户端/服务器代码。 Google Benchmark应用程序多次运行setUp()TearDown()对,以适当的方式测量时间。客户端/服务器通过TCP传输工作。
问题: 在一个进程(Google Benchmark)内,客户端将重新启动多次。这会导致存在残留的匿名inode,结果我得到一个错误
epoll:打开的文件太多
当我尝试lsof | grep“ a_inode”,我看到由eventfd / eventpoll / filefd创建的所有匿名索引节点都处于打开状态。
COMMAND PID TID用户FD类型设备大小/关闭节点名称
gbench 6514 6517 Boarnerges 1020u a_inode 0,13 0 9567 [eventfd]
gbench 6514 6517 Boarnerges 1021u a_inode 0,13 0 9567 [eventpoll]
gbench 6514 6517 Boarnerges 1022u a_inode 0,13 0 9567 [timerfd]
gbench 6514 6520 boarnerges cwd DIR 8,1 4096 543203 / home / boarnerges / project_GoogleBenchmark / build
gbench 6514 6520 Boarnerges rtd DIR 8,1 4096 2 /
gbench 6514 6520 boarnerges txt REG 8,1 2494784 949699 / home / boarnerges / project_GoogleBenchmark / build / tests / tests / GBenchmarkTests / benchmark_client / it_gbenchmark_client
如何解决此问题?可以从进程内部释放匿名索引节点吗?