向10万用户添加cookie时需要考虑的性能问题

performance issues to consider from adding a cookie to 100K users?

本文关键字:性能 问题 用户 10万 添加 cookie      更新时间:2023-09-26

我希望跟踪网站上的点击,主要使用jQuery在锚点和按钮上触发点击事件,添加/更新cookie,当用户点击错误页面时,我将登录到内部数据库

这意味着在主页面(即每个页面)上添加一些jQuery逻辑,以获取和更新cookie,同时将jQuery点击事件连接到网站上的大多数对象。

该网站每天大约有10万名独立访客,并且已经在上大量调用数据库

这是我第一次把这样的东西整合到这样大的网站中。我想知道是否有任何专家对这样做有顾虑,我预计这个解决方案会带来什么样的性能开销,任何可以让用户和服务器负载尽可能不引人注意的实现想法,等等

我感谢任何人能提供的指导。

在cookie中记录内容不是一个好主意,因为cookie有文本长度限制(如果我没有忘记的话,是4KB)。因此,如果您想记录一些用户活动,可以尝试使用ajax向服务器发送请求,并尝试在服务器端应用一些高性能的日志记录系统。

在请求中添加cookie的页面加载性能将取决于当前请求大小以及每次页面加载时使用新cookie向域发出的请求数量。cookie将被添加到每个请求的中(包括图像、css、js等),因此根据您的场景,它可能是大影响,也可能是小影响。

解决页面加载大小问题的一种方法是将静态资源放在与提供页面的域不同的无Cookie域上。对无cookie域的请求将不包括新cookie,因此不会受到它的影响。(Stack Overflow正是这样做的)。

然而,正如其他人所提到的,使用cookie可能不是跟踪这一情况的最佳方式,因为它确实对加载时间有很大影响。相反,我建议您通过将相关信息包含到用户的会话中来跟踪此服务器端。除了不会大幅增加客户端加载时间外,您还可以处理分支流量模式,这种模式通常在用户打开单个页面的多个选项卡时出现。

这确实有一个小缺点,即服务器端负载略高,但在增加客户端负载时间时,我会非常小心,因为这是衡量用户满意度和参与度的关键指标。服务器端负载的增加是可以设计的,尤其是对于10万用户的网站。由于页面加载较慢,用户不太高兴,更难修复。

您可以进行一些负载测试。Visual Studio有一个很好的实现

没有人能告诉你你的硬件处理这类事情的效果如何,所以在过渡环境中进行负载测试通常是你的最佳选择。如果您的暂存环境足够相似,那么您应该能够用数量少得多的虚拟用户对其进行负载测试,并了解它会对您的服务器产生什么样的影响。