ideawu/c1000k
FreeA tool to test if your OS supports 1 million connections(c1000k/c1m)
FreeFree tier
About ideawu/c1000k
c1000k is an open-source TCP server-client benchmarking tool designed to test whether an operating system can handle 1 million concurrent TCP connections (c1000k/c1m). Written in C, it provides a simple server that listens on ports 7000-7099 and a client that connects repeatedly. The tool helps identify OS-level limitations such as the "Too many open files" error, which indicates the maximum number of open file descriptors has been reached. It is commonly used for performance tuning and capacity planning of network servers. The project is hosted on GitHub and requires compilation via make.
Key Features
TCP server-client architecture for connection testing
Tests OS capability to handle up to 1 million concurrent connections
Written in C for performance and low-level control
Simple compilation with make
Detects common OS limitations like max open files
Pros & Cons
Pros
- Free and open source
- Lightweight and easy to compile
- Directly tests a key scalability metric (c1000k)
- Provides clear error messages for OS limitations
Cons
- Requires manual compilation and setup
- No graphical interface or reporting
- Limited to TCP connection testing only
- Not actively maintained (last commit years ago)
Best For
Benchmarking server connection limitsOperating system capacity planning for high-concurrency applicationsTuning file descriptor limits on Linux/Unix systemsEducational testing of network stack performance
FAQ
How do I install c1000k?
Download the source, unzip, run 'make', then start the server with './server 7000' and run the client with './client 127.0.0.1 7000'.
What does 'Too many open files' error mean?
It means the server reached the maximum number of open file descriptors allowed by the OS, preventing it from accepting more connections.
Can c1000k test 1 million connections?
Yes, the tool is designed to test if your OS supports 1 million connections (c1000k). The server and client work together to attempt that many connections.