# server.php 服务器基础配置 ```php /** * 服务器设置 */ $config['server']['send_use_task_num'] = 20; $config['server']['set'] = [ 'log_file' => LOG_DIR."/swoole.log", 'log_level' => 5, 'reactor_num' => 2, //reactor thread num 'worker_num' => 4, //worker process num 'backlog' => 128, //listen backlog 'open_tcp_nodelay' => 1, 'dispatch_mode' => 5, 'task_worker_num' => 5, 'task_max_request' => 5000, 'enable_reuse_port' => true, 'heartbeat_idle_time' => 120,//2分钟后没消息自动释放连接 'heartbeat_check_interval' => 60,//1分钟检测一次 'max_connection' => 100000 ]; //协程超时时间 $config['coroution']['timerOut'] = 5000; //是否启用自动reload $config['auto_reload_enable'] = true; //是否允许访问Server中的Controller,如果不允许将禁止调用Server包中的Controller $config['allow_ServerController'] = true; ``` ## worker_num 开启的worker进程数量,这里建议设置为cpu核数一致,比如你是4核那么worker_num设置为4 ## task_worker_num 开启的task进程数量,task是同步进程主要处理耗时任务,这里如果用到task请设置task进程数。 > Task是同步模式很多功能受到限制,SD3.0建议使用自定义进程实现耗时任务的执行。 ## heartbeat_idle_time 心跳,这里服务器将检测客户端是否有消息到达,如果消息间隔超过heartbeat_idle_time设置的值,那么该客户端将被踢下线,heartbeat_idle_time单位为秒 >如果不想检测心跳可以删除此配置 ## heartbeat_check_interval 服务器间隔heartbeat_check_interval(单位秒)时间检测一次心跳 >如果不想检测心跳可以删除此配置 ## max_connection 这里set中的max_connection是设置服务器最大连接数,如果超过则会拒绝。 max_connection越大申请的内存越大,运行时可能会报错,那么需要调整下面的参数。 ulimit -n 要调整为100000甚至更大。 命令行下执行 ulimit -n 100000即可修改。如果不能修改,需要设置 /etc/security/limits.conf,加入 ``` * soft nofile 262140 * hard nofile 262140 root soft nofile 262140 root hard nofile 262140 * soft core unlimited * hard core unlimited root soft core unlimited root hard core unlimited ``` 注意,修改limits.conf文件后,需要重启系统生效。 ## config['coroution']['timerOut'] 设置默认的协程超时时间,这里单位为毫秒。 ## config['auto_reload_enable'] 是否启动自动reload功能,开启后有代码更新会自动reload,不需要开发者重启服务器。 >如果没有装inotify扩展会导致cpu占用率极高,建议安装inotify扩展 >线上环境不建议开启 ## allow_ServerController 是否允许访问Server中的Controller,如果不允许将禁止调用Server包中的Controller