如何确定托管要求


23

我们准备使用CE 1.9版启动2个电子商务站点。每个站点的起始地址约为10000 sku。

重要的是我们需要从Web主机中查找的关键内容是什么,例如数据库大小,图像数量等。

显然,页面加载速度也很重要。

我们如何最好地选择合适的主机?

谢谢


欢迎在MageOverflow上加水。不幸的是,Magento托管是一件复杂的事情,并且有很多公司邀请您与他们讨论您的要求。没有更多的信息,就无法推荐您任何东西。鉴于所有信息,该问题过于具体而无济于事。
Fabian Blechschmidt 2014年

@FabianBlechschmidt-我认为这不是重复的问题。这是一个相当合理的问题。我已经就规模需求写了一个相当彻底的答案(我也会对其进行详细介绍),它的通用性足以使它成为体系结构规模的一个很好的参考问题。
Ben Lessani-Sonassi 2014年

您是专家,所以我投了赞成票重新开放:-)
Fabian Blechschmidt 2014年

Answers:


31

免责声明:Sonassi是Magento的主持人


TL; DR -当好东道主会告诉你什么,你不需要(和证明它)。您不应该自己这样做。

当客户接近我们时,我们会问几个问题,以了解他们的商店当前的需求,高峰需求和未来需求。然后,我们将在此基础上提供建议。

鉴于我们拥有成千上万个Magento商店,我们对给定的一组客户需求到底需要什么基础架构有了相当扎实的了解,因此,当我们提出建议(以及确切预测将使用哪些资源)时,这非常容易他们实际上上线了。

这里要注意的细节是,尽管我们可以肯定地告诉您运行MageStack 的基础架构的要求-几乎可以肯定与其他地方的设置并不完全相同-因此请记住这一点。

让其他人确定您的需求

商店和目录

  1. Magento版本?
  2. 目录中有多少个简单产品?
  3. 目录中的类别数量?
  4. 目录中的属性数量?
  5. 目录中的属性集数量?
  6. Magento商店视图的数量(管理>系统>管理商店)?
  7. 每天交易?
  8. 一小时内交易达到顶峰?

流量和带宽

  1. 每日唯一身份访问者的水平是多少?
  2. 一小时唯一身份访问者中的最高峰是多少?
  3. 每个访问者的页面浏览量?
  4. 访客主要来自哪个国家?
  5. 您是否预计未来12个月的网站流量会增长多少?
  6. 您是否定期运营高流量的广告系列/新闻稿(具有大量的使用率)?
  7. 您的网站是否提供数字下载?
  8. 当前的带宽使用情况?
  9. 您需要dDOS过滤服务吗?

硬体需求

  1. 当前磁盘空间使用情况?
  2. 您是否需要长期日志存储(符合PCI-DSS)?
  3. 您需要异地备份存储吗?
  4. 您是否需要在服务器上运行任何专业/替代软件?
  5. 您的PCI合规性规定是否要求使用硬件防火墙?
  6. 您需要容错,高可用性或负载平衡的解决方案吗?

阶段/开发实践

  1. 您是否需要单独的专用环境进行暂存/开发?
  2. 您是否需要“实时测试”环境来匹配“实时”环境(用于最终的实时测试)?

预算

  1. 你有每月预算吗?

然后使用此信息,将其发送给您选择的托管服务提供商,并查看他们的建议。


调整自己的需求

根据经验,可以

  1. 直接将流量水平与CPU需求相关联
  2. 直接将您的CPU需求与RAM需求相关联
  3. 直接将您的MySQL存储与RAM需求相关联

CPU选择

首先,通过估算流量来开始。

  • 一个标准的Magento演示商店能够每小时每GHz传送约230个唯一身份。
  • 一个具有管理员用户活动,开发活动,产品添加/删除的典型网络商店,每小时可将其降低约100%,达到每GHz 115个唯一身份。
  • 模板质量较差/繁琐的商店可以将数字进一步降低100-200%,每小时每GHz 50个唯一身份。

使用这些数字,您可以准确地确定所需的CPU资源。

例如。如果您每天有4,025位持续的唯一身份访问者-您需要28GHz的总CPU资源(即8个内核@ 3.5GHz或12个内核@ 2.3GHz)

另一个重要的细节是CPU的速度,可能有:

  • 慢的页面加载时间和低的并发支持(低时钟速度的CPU(GHz),少数内核)
  • 页面加载时间短,但并发支持低(高时钟速度CPU(GHz),少数内核)
  • 页面加载时间慢,但是并发支持高(低时钟速度CPU(GHz),很多内核)
  • 快速页面加载时间和高并发支持(高时钟速度CPU(GHz),许多内核)

RAM选择

对于独立服务器(Magento的最佳配置),此处的规则是2GB RAM / CPU Core。因此,如果您有8个核心,则最小内存应为16GB。

要确定除此以外的其他内容,您需要考虑目录的大小。这样做很容易,将商店视图的数量乘以商品目录的总大小。

例如。您的情况下,1个商店视图* 10,000个产品= 10,000

我们的建议是

<1,000    = 8GB   RAM
<50,000   = 16GB  RAM
<100,000  = 32GB  RAM
<100,000  = 32GB  RAM
<250,000  = 48GB  RAM
<500,000  = 64GB  RAM
<750,000  = 96GB  RAM
>999,999  = 128GB RAM   

您要取两个数字中的较高者(即,从CPU内核:RAM比率和目录要求中得出),或将两者明智地混合使用。

硬盘选择

让我们澄清一下,对于一般的Magento商店(即每天少于5万的唯一访问者),Magento 不受I / O的约束 -SSD 不会使您的Magento商店更快。它不会改善并发性,也不会改善TTFB。同样,使用条带化RAID级别(例如RAID10)也不会带来任何好处(因为磁盘上几乎每个文件的大小都会小于条带大小,因此仅使用单个磁盘)。

唯一的存储瓶颈是竞争服务(即云/ VPS)上的瓶颈。

但是,除了存储操作本身之外,快速I / O当然也具有优势。使用SSD,文件操作(例如Git / SVN状态,备份/还原,复制目录等)的速度大大提高。您的开发人员的生活将会大大简化(例行任务要快得多)。

另请注意,并非所有磁盘驱动器均创建相同。

  • 便宜/台式机级SSD的性能将比传统HDD慢
  • 便宜/台式机级HDD的性能将比企业级HDD慢
  • 与企业磁盘(通常为10 ^ 16)相比,廉价/台式机级HDD的NRE率(通常为10 ^ 14)较差。

因此,请确保实际上选择了应该放在服务器中的磁盘驱动器,即。英特尔DC S3700。

拣选容量很容易,您只需要两个命令,

对于Magento文档根

cd /path/to/magento/installation 
du -hsL . \
--exclude="/var/log" \
--exclude="/var/session" \
--exclude="/var/cache" \
--exclude="/var/full_page_cache" \
--exclude="/var/report" \
--exclude="/var/tmp" \
--exclude="/includes/src/"    

对于MySQL DB

SELECT 
IFNULL(B.engine,'Total') "Storage Engine", CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Data Size", CONCAT(LPAD(REPLACE(FORMAT(B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Index Size", CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Table Size" FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize,SUM(data_length+index_length) TSize 
FROM information_schema.tables 
  WHERE table_schema NOT IN ('mysql','information_schema','performance_schema') 
  AND engine IS NOT NULL 
GROUP BY engine 
WITH ROLLUP) B,(SELECT 3 pw) A 
ORDER BY TSize;

选谁

好吧,这取决于您。我无法提出建议[尽管很明显:)]-但您当然可以形成自己的见解,

  1. 如果他们的硬件符合您的最低要求
  2. 如果他们在Magento中具有悠久的传承/声誉(即参加这样的网站并展示真实经验)
  3. 如果他们可以在其托管服务上为您的商店提供演示,(例如,以便您可以确切看到其运行情况)
  4. 如果他们可以回答与您的Magento相关的所有问题(例如,尝试用您过去遇到的问题对其进行测试,看看他们如何回答)
  5. 如果他们的价格符合您的预算
  6. 确保他们的支持符合您的期望(即,您是否愿意在联系支持之前自行进行所有尽职调查,或者您期望他们可以代表您调试Magento问题)
  7. 确保所包括的工作范围符合您的需求(即完全管理,裸机等)
  8. 如果该解决方案是可扩展的(即它是单服务器平台-可以扩展为多服务器解决方案)。
  9. 如果该解决方案包含您的Magento商店所需的所有软件(例如ElasticSearch / Sphinx / SOLR,Redis / Memcache,Varnish等)

这里要添加一些内容,您将获得两种类型的主机

  • 托管(例如,服务器已完全安装并妥善保管的位置)
  • 不受管理(例如,您自己设置整个服务器的位置)

哪一种最适合您取决于您​​的技能水平。坦白地说,开发人员不是系统管理员-仅仅是因为您可以运行apt-get install nginx-并不能使您成为经验丰富的系统管理员。否则,任何可以使用Magento Connect的商店所有者都可以将自己归类为开发人员!

了解您作为开发人员的角色(和局限性)并让具有管理服务器经验的人员具有极大的价值。任何人都可以安装一系列软件包,但是调整软件配置,确保其稳定,无错误,安全和高性能是完全不同的。

我只会向拥有大量 Magento服务器配置经验的人推荐整个DIY路线,这些人以前已经部署了数千台服务器,并且具有经过测试和稳定的已知配置。否则,请与托管的Magento主机一起使用,该主机知道他们在做什么,并允许您不间断地完成工作。


资料来源:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.