2

我正在尝试使用 Google Benchmark 测量 API。它处理客户端/服务器代码。Google Benchmark 应用程序多次运行 setUp() TearDown() 对,以适当的方式测量时间。客户端/服务器通过 TCP 传输工作。

问题:在单个进程(Google Benchmark)中,客户端多次重启。这会导致存在剩余的匿名 inode,因此出现错误

epoll:打开的文件太多

当我尝试 lsof | grep "a_inode",我看到eventfd/eventpoll/filefd创建的所有匿名inode都处于打开状态。

命令 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

我该如何解决这个问题?可以从进程中释放匿名 inode 吗?

4

0 回答 0