gpt4 book ai didi

php - 看似随机的挂断/延迟加载网站

转载 作者:行者123 更新时间:2023-11-29 22:40:31 24 4
gpt4 key购买 nike

我们在自己的专用服务器上运行 OS Commerce 支持的网页。去年4月,我们被迫升级服务器。就在那时,我们开始注意到,网站似乎随机出现中断,无法从任何计算机上查看我们的页面,当时唯一的解决方案是在我们的服务器上进行硬重启。这种情况发生了大约一个月。这个问题已经解决了,但现在我们面临着不同的挑战。我们的网站速度似乎是随机变慢的。有时页面加载速度非常快,有时则需要长达 2 分钟才能加载。似乎没有我们可以找出的模式。网站是 www.westerndepot.com。我们尝试使用 Yslow 和类似工具来调查我们网站的运行状况,但我们运行的所有查询都显示我们的网站评级为“A”。波动的似乎是等待时间,而不是实际的加载时间。最近的 Firebug 诊断显示等待时间为 23.9 秒,加载时间为 24.17 秒。

服务器有 64GB RAM,当前使用的最大 RAM 显示为 10GB。我们使用的是 SME Server 9.0。该服务器由双 WD Caviar Black 1TB 驱动器组成,使用 SME 9 下的 Raid 软件进行镜像,剩余 833 GB 可用空间。 products_to_categories 表包含 13923 个产品的 18375 个条目,其中 2427 个产品处于非事件状态。共有 385 个类别。

我们的MySQL配置文件如下:

character-set-server=utf8
collation-server=utf8_general_ci
key_buffer_size=2048M
preload_buffer_size=512M
query_cache_limit=64M
query_cache_size=512M
query_cache_type=1
query_prealloc_size=512M
read_buffer_size=2M
read_rd_buffer_size=4M
sort_buffer_size=2M
thread_cache_size=300
join_buffer_size=256K
table_open_cache=512K
tmp_table_size=256M
max_heap_table_size=256M
slow_query_log=1
max_connections=500
concurrent_insert=2
log_output=FILE

以下是慢查询日志的示例。

    # Query_time: 12.277704  Lock_time: 0.000193 Rows_sent: 1  Rows_examined: 39652497
SET timestamp=1427835801;
select count(distinct p.products_id) as total from products p left join manufacturers
m using(manufacturers_id) left join (select * from (select products_id, specials_new_products_price
, expires_date, status from specials where status = 1 order by products_id, specials_new_products_price,
expires_date) as t group by products_id) as s on p.products_id = s.products_id left join
products_to_notes ptn on ptn.products_id = p.products_id join products_description
pd on p.products_id = pd.products_id join (select products_id from
products_to_categories where (categories_id not in (728)) group by products_id) as
p2c on p.products_id = p2c.products_id where p.products_status = '1';
# Query_time: 11.654512 Lock_time: 0.000367 Rows_sent: 240 Rows_examined: 36425129
SET timestamp=1427835812;
select distinct m.manufacturers_name, p.products_model, p.products_image,
p.image_folder, p.image_display, p.products_quantity, p.hide_qty_over,
p.products_bundle, IF(s.status, s.expires_date, NULL) as expires_date,
m.manufacturers_id, p.products_id, pd.products_name, p.products_msrp,
p.products_price, p.products_tax_class_id, IF(s.status,
s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status,
s.specials_new_products_price, p.products_price) as final_price,
p.sold_in_bundle_only, p.products_type , pd.extra_value_id6 , pd.extra_value_id10
from products p left join manufacturers m using(manufacturers_id) left join
(select * from (select products_id, specials_new_products_price, expires_date,
status from specials where status = 1 order by products_id,
specials_new_products_price, expires_date) as t group by products_id) as s on
p.products_id = s.products_id left join products_to_notes ptn on ptn.products_id =
p.products_id join products_description pd on p.products_id = pd.products_id join
(select products_id from products_to_categories where (categories_id not in (728))
group by products_id) as p2c on p.products_id = p2c.products_id where
p.products_status = '1' order by products_name limit 2160, 240;

所有慢速查询都来自“高级搜索”。
该网站使用每个产品贡献的多个销售额。

有什么想法吗?我们错过了一些简单的事情吗?任何帮助、指导、想法或联系方式将不胜感激。

最佳答案

你看过 MySQL explain 命令的结果吗?我想数据库表中缺少一些索引。

参见docs了解模式详细信息。

关于php - 看似随机的挂断/延迟加载网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29379796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com