不知道你们发现没, 如果服务(接口)长时间不调用,那么首次调用响应时间就比较长
我有一个接口正常响应是20ms, 如果一两个小时不调用再次调用的时候时长有时候会到500ms或者1s, 这是为很么呢
那个服务只对外提供刚刚那一个接口, 没有其他额外的接口
增加了nginx代理(代理方式是按照官方文档提供的)之后第一次访问会明显的较慢, 直接访问端口却没有任何问题
执行 strace -ttp pid,然后访问接口,看系统调用能看出来慢在哪里
strace -ttp pid
是不是有什么这接口有什么数据需要初始化,长时间不用,就会断线,重连需要时间
没, 我发现我所有的项目都是这个情况, 一个小时不调用, 再次调用的话接口响应时间明显会变长, 第二次就好了
我也是,可能是什么缓存?还是链接数据库或者redis网络开销了?
我这边定位到了是nginx代理后有延迟了, 你那边是这样的情况吗
直接访问项目ip+端口,再访问nginx代理后的地址看看是不是因为nginx代理后变慢
我刚试了, 还真的是访问了nginx代理之后第一次访问会明显的较慢, 直接访问端口没有任何问题
worker_processes
worker
执行
strace -ttp pid
,然后访问接口,看系统调用能看出来慢在哪里是不是有什么这接口有什么数据需要初始化,长时间不用,就会断线,重连需要时间
没, 我发现我所有的项目都是这个情况, 一个小时不调用, 再次调用的话接口响应时间明显会变长, 第二次就好了
我也是,可能是什么缓存?还是链接数据库或者redis网络开销了?
我这边定位到了是nginx代理后有延迟了, 你那边是这样的情况吗
直接访问项目ip+端口,再访问nginx代理后的地址看看是不是因为nginx代理后变慢
我刚试了, 还真的是访问了nginx代理之后第一次访问会明显的较慢, 直接访问端口没有任何问题
worker_processes
设置为1,重启nginxworker
进程的pid