这些天,我们的平台遇到了巨大的流量(根据我们最近的经验),这使我们的速度变得缓慢。
今天我们可能会通过删除一些功能来解决这个问题,以确保用户仍然能获得良好的体验。但我想做的是重现中断,这样我们就可以调查问题并解决它。
我们有一个核心 Java API(托管在使用 restlet 的 cloudbees 上),大多数流量都通过它,记录所有传入请求及其有效负载并随后将它们提供给可以重放它们的工具会很有用。我担心的是,我们无法直接访问我们的服务器,这是一个阻塞限制吗?
我不知道这是否是不好的做法,并且是否有更好的方法来解决这个问题,这是我第一次处理高负载问题。
我目前正在看http://tcpreplay.synfin.net,看看是否可以在我们的案例中使用它。
任何提示都将不胜感激。
答案1
有几种方法可以实现这一点,这取决于你的需求
- 使用 apachebench 等工具回放您的 Serverlogs(也适用于非 apache 服务器)
- 使用诸如 Loadimpact 之类的负载测试工具,其中一些工具提供自动生成流量的选项(大多数都非常昂贵)
- 解析您的访问日志,计算每个文件上的请求数,找出导致中断的原因(由于您没有 shell 访问权限,因此可能不是一个选择)
- 记录您的会话并稍后点击页面/应用程序,乘以这些请求,然后使用您选择的工具进行回放