2012-04-28 150 views
1

谁能帮帮我。网站加载速度 - 减速html loading

我有一个网店在magento 1.6.2.0上运行。 一个VPS服务器与Apache 2. 我有APC和内存缓存,清漆缓存和fooman speedster运行。

主页上有acceptabel加载时间... 但是当我去到一个分类页面需要花费很多时间......

但必须等待时间通过等待HTML网页上加载consumened ... 见截图: enter image description here

加载时间现在大约是2-5秒,但是当其在网站上忙它可以运行多达10-15秒......这么多慢..

当我带着萤火虫回家时,我看到最多加载时间的时间正在等待...

所以我的问题是,我怎么能减少这个?

+0

找出瓶颈是什么。也许服务器上的某些东西(db访问)需要很长时间。 – PeeHaa 2012-04-28 11:46:20

+0

它似乎有很多个人资源加载。请求 - 响应往返总是很昂贵。如果可能的话,尝试将所有.js导入到服务器端的单个文件中,然后加载这一个新的大文件。这将大大降低往返成本。也为图像你可以加载他们的精灵。 – Kshitij 2012-04-28 11:49:25

+0

图像将在页面显示后加载。 (我认为deflate命令这样做)。 大部分时间都是通过等待第一行,html页面来加载... 我认为这是瓶颈。 (我优化分贝昨天,这是有点帮助) 更多的解决方案? – Ronny 2012-04-28 12:09:03

回答

2

benmarks和josh pennington是在正确的路线上,ingnore其他谁告诉你减少现在的请求数量,因为额外的请求现在是一个分心。

问题是HTML页面需要很长时间才能生成,并且在负载情况下会变得更糟。

通常这是由于DB负载过重,无论是通过优化不佳的查询还是没有足够的内存。

您需要确定在该页面上执行的查询以及它们的性能配置文件内存,IO,CPU使用率。

你有多大的VPS?你也必须考虑它是否有足够的内存。

你还在运行Apache吗?如果有的话,它有多少工人。可能发生的情况是,在繁忙时间,工作人员不够多,而且他们可能无法快速处理,所以在繁忙时间,有些请求正在排队等待工人变得可用。

+0

将Magento的256到512分配给它的memory_limit并查看增加的innodb内存池大小。 Magento将会在配备2MB内存的2-4核心处理器上感到高兴。一个用于调整MySQL设置的有用工具是[MySQL Tuner Tool](https://github.com/rackerhacker/MySQLTuner-perl),它可以分析你的MySQL统计信息并提供更好的性能建议。添加完整页面缓存也非常有帮助。上周我们接触的用户超过650人,前端没有明显的放缓。这都是硬件资源和缓存。 Magento的运行速度与您所允许的资源一样快。 – 2012-04-28 16:59:32

+0

嗨,它是一款带有2 GB RAM(1GB保证)的AMD Opteron(tm)处理器6128服务器(1核)。 你觉得这足够吗? 进一步我运行apache2。我不知道有多少工人(我在哪里找到这个?) – Ronny 2012-04-28 17:34:52

+0

不幸的是我运行mysqltuner时得到错误... – Ronny 2012-04-30 07:27:38

0

只是尝试实现一个JavaScript代码来加载页面后加载所有图像(高分辨率)。只是试图让图像在页面加载扔了一个Ajax调用

function init() { 
...function to call all the images threw ajax 
} 
window.onload = init; 

以及我尝试了下面的代码给拿出来加载图像最少的时间之后。 我把所有的图像有一个共同的div名称并设置其知名度隐藏...

$(document).ready(function() { 
    $("#img").css('visibility','visible') //img is div for all the images on the webpage 
}); 

但AJAX调用给我一个眼神和感觉来获取图像。

+0

他的问题是服务器端,而不是请求数。 – 2012-04-30 08:57:09

+0

对不起,我错了。我的错。 – ashutosh 2012-04-30 11:41:33

1

问题可能与数据有关。创建并浏览到没有产品的类别并记下响应时间;这将表明它是否属于类别数据问题。你可以使用探查器来缩小罪魁祸首。在管理>系统>配置>高级:开发人员中,将开发人员限制IP设置为IP并启用分析器。然后在index.php中取消注释Varien_Profiler :: enable();

然后,您应该看到正常响应正文后的输出。您可以追踪该输出并找到中间某处的表现不佳的区域。

+0

这实际上是我见过的解决Magento性能问题的最佳答案。 Tks堆满了好奇心。 – medina 2014-11-21 00:29:50

+0

下载[AOE Profiler](http://www.fabrizio-branca.de/magento-profiler.html),你会很开心。 – benmarks 2014-11-24 13:10:45

1

我会做的第一件事就是看看Magento白皮书。它有很多关于如何微调PHP,Apache和MySQL以获得最佳性能的好技巧。

http://www.magentocommerce.com/whitepaper

我会说,从Apache的一个分离的MySQL服务器可以使不同的世界。 Magento对Innodb的使用非常繁重,如果数据库服务器没有优化使用尽可能多的内存,可以认为它非常慢。

+0

也请到webpagetest.org并在那里做一个速度测试。我会考虑在Apache上启用mod_expires,所以你只需要下载所有这些js文件一次。他们会为你提供更多的建议。在修改代码之前,我会先做这件事。根据我的经验,在修改代码太多之前,应该让服务器服务以最佳性能运行。这样你就知道你的服务器在所有的柱面上都开启了,然后你试图让代码更快。 – 2012-04-28 13:32:17

0

你有相当复杂的分层导航设置,这将是沉重的服务器上。

从经验转移到专家Magento网络主机可以使世界的不同...它对我做了。我不确定我们是否应该提及公司,所以我不会提到我的公司,除非有人说可以做到这一点,但谷歌搜索Magento基准应该让你开始。

使用三服务器方法会产生巨大差异。

+0

您好matthew,我们需要复杂的分层导航为我们的客户... 现在我有一个VPS服务器1核心和2GB RAM(1GB保证)。 但目前我正在寻找更快的服务器。你能推荐什么?在我目前的ISP的下一步是2核心与4GB内存(2GB保证),或3核心与6GB内存(3GB保证)。或者一个专门的服务器... 你是指什么意思的树服务器方法? – Ronny 2012-04-30 19:40:50

+0

嗨Ronny 我使用dx3webs.com,拥有最快的硬件并不总是正确的答案。如果MySql/Apache/PHP都在为此目的而优化的不同盒子上,最好。我知道在magento设置中,nginx应该为其中的一个提供更好的环境,但我不记得哪一个。无论如何,dx3webs是法师的专家,所以我可以给你提供更好的建议。还有其他专业的法师主机,所以你可能想要货比三家 – 2012-05-01 03:15:01

1

你可以做的一个很大的改进是用Nginx替换Apache。使用Nginx,我已经看到了极大的速度和稳定性改进。 MYSQL调谐器会告诉你的一些事情是优化你的表,增加你的innodb_memory_pool_size,并增加max_heap_table_size和tmp_table_size。如果你负担得起,将服务器提升到4GB,并为MySQL和PHP提供更多内存。 Gzip对第一个字节的时间也有影响,并且可能会使您的速度慢一点,只有一个处理器。您可以调查Cloudflare作为缓存的替代/补充。最后一件事是目录页面往往有很多图像。确保这些是优化的(我使用ImageOptim),并尽可能将gif更改为png。还有很多事情要结束,但从此开始。