Как освободить анонимный инод, созданный с помощью eventfd / eventpoll / timerfd? - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь измерить API с помощью Google Benchmark.Он имеет дело с кодом клиент / сервер.Приложение Google Benchmark несколько раз запускает пары setUp () TearDown (), чтобы соответствующим образом измерить время.Клиент / сервер работает через TCP Transport.

Проблема: в рамках одного процесса (Google Benchmark) клиент перезапускается много раз.Это приводит к появлению остаточных анонимных инодов, и в результате я получаю сообщение об ошибке

epoll: слишком много файлов открыто

Когда я пытаюсь выполнить lsof |grep "a_inode", я вижу, что все анонимные inode, созданные eventfd / eventpoll / filefd, существуют в открытом состоянии.

КОМАНДА PID TID ИСПОЛЬЗОВАНИЯ FD ТИП РАЗМЕР УСТРОЙСТВА ИМЯ И ВЫКЛЮЧЕНИЕ УСТРОЙСТВА

gbench 6514 6517 boarnerges 1020u a_inode 0,13 0 9567 [eventfd]

gbench 6514 6517boarnerges 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_GoogleBenchmarktests / tests / GBenchmarkTests / benchmark_client / it_gbenchmark_client

Как мне решить эту проблему?Можно ли освобождать анонимные inode из процесса?

...