我的网站强制使用HTTPS,平均首次加载时间为3-5秒。 由于caching,重复加载时间是0.8秒。
SSL协商在我的服务器上需要150-300ms,所以我想尽可能频繁地保持每个连接的活动,以防止延迟。
SSLSessionCache被设置为默认的300秒。
Apache KeepAlive Timeout最近从5秒降低到2秒。
这种变化导致服务器负载平均值(平均值为5%,而不是平均值为10%)明显下降,但是我想知道如果第一次加载时间是3-5秒,是否会导致第一次加载时间变慢? 这是否意味着它每次通过2秒超时都必须再次执行SSL协商?
使用较less的SSL协商(但更多的睡眠httpd任务),或更低的负载平均数与更多的SSL协商是否更好?
我们绝对拥有足够的CPU和内存资源。 所以最终的问题是,什么会为我们的观众带来最好的performance呢? 将KeepAlive Timeout提高到3-5,还是保持在2?
谢谢!
关于服务器负载:你不说这是什么操作系统。 对于大多数Unix(包括Linux),只要负载less于CPU的数量,那么你可能不应该担心。 在这种情况下,每个进程只要能在那里(或多或less)做有用的东西,就可以留在CPU中。 但是当有一连串的进程等待到CPU时,操作系统会在任务准备完成之前中断任务 – 当发生这种情况时,吞吐量开始下降。
(我从来没有见过负载表示为%以前 – 这是从哪里来的?)
关于页面加载时间:您的服务器日志不是您要查看的地方。 如果你想知道这是否会产生影响,那么你需要在浏览器中查看页面加载的瀑布图(Chrome中的开发者工具,Firefox中的Firebug或者使用pingdom等在线检查工具 – 记得使用代理来添加如果你正在testing本地)。 您正在寻找比您的keepAliveTimeout更大的请求您的网站之间的差距。
根据我的经验,即使在非常缓慢的networking上,大于1秒的差距也是非常罕见的。 他们确实发生的是要么是一个显式的延迟(例如,在幻灯片中延迟加载一个新的图像),或者(甚至更罕见)页面中的病态错误(例如,从非常缓慢的位置检索非常大的阻塞的javascript )。
(OK,所以我们实际上正在寻找同一个套接字上的请求之间的差距 – 但这是难以可视化)。