使用perstashop开发了一个电子商店,并放到了三台服务器上:
前两个是亚马逊 EC2,应该是相同的设置
服务器 1:http://be-pure.com/en/women/3-slim-y-tank.html
服务器2:http://52.77.216.83/en/women/3-slim-y-tank.html
最后一个只是本地托管
服务器 3:http://internal001.zizsoft.com/be_pure/en/women/3-slim-y-tank.html
问题是服务器 1 与其他两台服务器相比加载速度非常慢,但性能应该是三台服务器中最好的。速度应该是 1>2>3,但结果是 2>1>3
从http://tools.pingdom.com/我怀疑服务器 1 需要大约 10 秒才能真正开始下载文件,而服务器 2 则需要 3 秒,这有很大的区别
另外,在运行http://www.monitis.com/traceroute/看起来它并没有完全到达目的地,似乎是某种网络问题。
服务器 1 的加载时间为什么这么长?就把它看作一个 PHP 网站吧,有什么方法可以检查它为什么这么慢吗?
非常感谢你的帮助
答案1
如果是亚马逊硬件问题,您可以尝试停止并启动服务器,这样您就可以在不同的硬件上运行。
您的安全设置(或默认为 Amazon)阻止了 SYN 数据包,因此跟踪路由无法完成。启用 TCP 以查看结果
sudo traceroute -T be-pure.com
如果硬件不是问题,那么问题可能出在服务器配置上。你在错误日志中注意到什么了吗?
答案2
网站加载缓慢的主要原因是页面上的静态内容(CSS、JS、图像)的数量。您的主页大小和http://be-pure.com/en/women/3-slim-y-tank.html链接太大,它为该单个页面发送了大约 226 个请求。此页面包含太多图像和 js,需要花费一些时间加载。我还看到您的服务器端没有缓存机制。每次都是从原始服务器提供服务。
有几点需要改进:-
- 在服务器端和浏览器端缓存静态内容。
- 通过压缩或缩小来减小图像尺寸
- 使用 CDN (CloudFlare)。这将提高您的网络性能,并有助于维护缓存。
- 您可以在服务器端使用 PHP-FPM 来提高 php 性能。
答案3
正如其他人指出的那样,如果是“硬件速度慢”,您可以重新启动服务器以在其他服务器上运行。但我怀疑这不是问题所在。
最重要的问题似乎在于你的页面本身。它上面有大量的内容,在考虑服务器优化之前,应该先进行优化。
检查一下Google PageSpeed网站。这可以帮助您调试网页问题。主要问题似乎是:
- 未最小化 CSS/JS
- 阻止 JS 内容
- 未压缩的图像
- 无缓存
执行这些操作,如果不起作用,请开始查找服务器端的问题。为了帮助您解决这个问题,我们需要了解服务器。它运行的是什么操作系统、哪个 Web 服务器、PHP 和数据库?