我有一个在 CentOS 6 (Amazon EC2) 上运行的 Magento 网站。我安装了 Varnish 缓存和一个名为 PageCache 的 FPC 扩展,以使 Varnish 可以与 Magento 配合使用。当我未登录时,我检查了网站的响应标头,发现 Varnish 可以与 Magento 配合使用,并且该网站由 Varnish 缓存。
但是当我使用电子邮件和密码登录时,Varnish 似乎没有缓存 Magento 网站。因此当有用户登录时,响应时间会更长。
我需要使用 Siege 测试我的网站。我将通过运行命令测试 1 个用户的 100 个请求:
sudo siege -c1 -r100 http://54.254.183.85/
当我未登录测试 Siege 时,我收到此结果(响应时间 0.01 秒)
但问题是,当我通过添加以下代码,让登录 Magento 网站的用户测试 Siege 时
login-url = http://54.254.183.85/customer/account/login/ POST [email protected]&pass=pianolangtu2908
然后再次/etc/siege/siegerc
运行命令sudo siege -c1 -r100 http://54.254.183.85/
,我收到结果
响应时间仍然是 0.01 秒(非常快)。所以我认为 login-url 配置有问题。当用户登录时,响应时间一定更长,因为 Varnish 在用户登录时不会缓存 Magento 站点。因此,我想问如何使用 Siege 测试用户登录的 Magento?
答案1
我认为你不能使用围攻测试来进行这种类型的测试。
另外,为了有效地对服务器进行压力测试,最好使用可以实际模拟浏览器操作的工具。
您可以使用以下服务http://loader.io,他们确实有一个免费帐户,您可以使用它来查看是否可以测试所需的内容,然后使用付费帐户进行更长时间的测试(这是您需要留意的地方,因为性能会随着时间的推移而下降)。
一个开源选项是https://artillery.io,您需要启动一个云实例(AWS 等)来从那里运行此测试,因为从本地机器运行不是很可靠。
我也正在测试 Magento 2 项目上的非缓存页面。完成后,我会在我的 github 上分享我的 artillery.io 脚本。仍在努力。