ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# max_conn (max_connection) 服务器程序,最大允许的连接数,如`max_connection => 10000`, 此参数用来设置`Server`最大允许维持多少个`TCP`连接。超过此数量后,新进入的连接将被拒绝。 * `max_connection`最大不得超过操作系统`ulimit -n`的值,否则会报一条警告信息,并重置为`ulimit -n`的值 * `max_connection`默认值为`ulimit -n`的值 ``` WARN swServer_start_check: serv->max_conn is exceed the maximum value[100000]. ``` 最大上限 ---- 底层使用了`SESSION_LIST`来实现`session_id`(虚拟`fd`)与真实`fd`的对应,因此除了`max_sockets`限制之外,`max_connection`还受限于`SW_SESSION_LIST_SIZE`宏的设置。 目前`SW_SESSION_LIST_SIZE`底层的值为`1M`,请勿设置`max_connection`超过`1M` 内存占用 ----- `max_connection`参数不要调整的过大,根据机器内存的实际情况来设置。Swoole会根据此数值一次性分配一块大内存来保存`Connection`信息,可使用`gdb`跟踪运行中的进程,打印`p sizeof(swConnection)` 得到准确的数值。在`1.9.16`版本中一个TCP连接的`Connection`信息,需要占用`224`字节。 最小设置 ---- 此选项设置过小底层会抛出错误,并设置为`ulimit -n`的值。 > 最小值为`(serv->worker_num + SwooleG.task_worker_num) * 2 + 32` ``` serv->max_connection is too small. ```