Giter VIP home page Giter VIP logo

Comments (5)

eunyoung14 avatar eunyoung14 commented on August 22, 2024

We've tested for a condition that has 1 million idle connections and thousands of active connections with mtcp-lighttpd and it worked well.
mTCP uses 336 bytes for a tcb struct.
Since the purpose is like chat server, let's suppose we use 4K buffer for each send and receive buffer.
Then the memory required for a connection will be (336B + 8 KB) = 8528B.
For 10 million open sessions, the total consumption will be 85.28 GB.
The actual memory usage could be a little higher.

from mtcp.

simonhf avatar simonhf commented on August 22, 2024

Thanks for the info. If my 10 million open sessions are mostly idle then is there a way with mtcp to only use the 8 KB on the active connections? And is there a way to further shrink the 336B per connection?

from mtcp.

eunyoung14 avatar eunyoung14 commented on August 22, 2024

It would be possible to allocate the buffers for only active connections with some modification.
Current implementation frees the buffer only when the connection is closed, but it could be changed to dynamically free the buffer if it's never used for certain period of time.
However, the 336B for tcb cannot be removed to maintain a connection information.

from mtcp.

simonhf avatar simonhf commented on August 22, 2024

In case nobody else implements this, then I volunteer to take on these changes once a netmap version of mTCP is available :-)

from mtcp.

eunyoung14 avatar eunyoung14 commented on August 22, 2024

That would be great!!

from mtcp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.