emqx / emqx/neuron

event_linux consumes significant system resources when a large number of nodes and groups are present.

Open
#2,566 3 comments 0 reactions 1 assignee Claimed by @fengzeroz View on GitHub
Dominant language
C
Stars
1.4k
Forks
311
Avg merge
1d 2h
Merged PRs (30d)
10

Description

1. The current event_linux implementation requires each business node to call `neu_event_new` separately to create an epoll instance. If the system has dozens or hundreds of nodes, there will be a large number of epoll file descriptors (fd) in the system, which will obviously consume a lot of system resources.
2. Currently, at least 3 `timerfd`s are created for each group of every business node. If the system has dozens of nodes and hundreds of groups, hundreds of `timerfd`s will appear. This, firstly, consumes the process's file descriptor resources, and secondly, the frequent kernel/user-mode switching of `timerfd`s is quite CPU-intensive.

---
*This issue was automatically translated from Chinese.*

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.