2012-01-31 100 views
2

我被客户问到以下参数提供一个基于TYPO3网站: - 内容的少量(约50页) - 非常小的变化频率 - 平均库存情况约95%/天 - 页面20%的限制,登录 后仅可 - 花式TYPO3扩展或别的东西(只TYPO3的核心) 无要求 - 中等大小的页面 - 只有有限的数字资产(图片等)包含缩放为TYPO3网站

我有要求建立一个基础设施,以服务多达1000个并发用户。假设平均思考时间为30秒。这将导致每秒33次请求。

基础设施的外观如何?我知道系统扩展是一项高度独立的任务,取决于系统的实施和需要测试,但我需要首先指示从何处开始(单个服务器,将组件分离到不同的服务器......)。

有什么想法?

+0

它太复杂的问题,给你一个有价值的答案。但是,我首先关注的是如何优化TYPO3网站的性能,如果这还不够,那么我会专注于系统方面的问题。所以谷歌的“TYPO3性能”。 3个关键字可能会帮助您专注于正确的东西:** eAccelerator **,**静态文件缓存**,** memcached **。 – tmt 2012-01-31 14:09:29

+1

请勿使用eAccelerator,而应使用xCache或APC。下面介绍静态文件缓存。不要将memcached用作缓存后端,而是使用APC或Redis(取决于您的PHP设置)。 – StephenKing 2012-01-31 15:55:48

+0

@StephenKing:eaccelerator是一个php缓存而不是数据库缓存。他应该另外使用xCache或APC以及memcached和Redis。 – Bytemain 2012-01-31 16:32:00

回答

0

我会把它放在一个单独的专用服务器(或精心指定的VPS)上,但可能会将所有静态资产保留在第三方CDN上,以便您可以专注于动态内容。我不知道Typo3,但看不出有什么理由说明为什么你不能在同一台服务器上拥有你的数据库以达到这个级别的使用 - 肯定会有各种缓存选项。或者也许考虑一个云服务器,所以如果你需要更多的优点,只需添加更多的资源。

编辑:我不认为这是一个好主意,建立一个可扩展的体系结构刚刚还没有。代理服务器和所有这些东西。如果速度很慢,而且你发现你真的无法应付一台机器,那么在这一点上扩大规模。考虑到您预期的流量,我可以用更简单的架构来做这件事。

2

更简单的解决方案是EXT:nc_staticfilecache。这将静态页面保存为HTML,并且您的Web服务器通过重写规则自动传递它们(通过mod_rewrite处理Apache)。这对静态内容非常有效,并且应该已经使您能够执行> 100req/s。

更奇特的方法是使用Varnish Cache。 Varnish是一种反向代理服务器,可将您的网站内容保存在内存中,并可在专用主机上运行。如果您正确配置它(发送正确的缓存标题!),它将为您提供线速(几百万条请求/秒)。还有TYPO3扩展moc_varnish,例如,在TYPO3中更改页面时清除清漆缓存。还支持边缘侧包括例如仅从TYPO3中检索用户特定的数据,并使用清漆缓存中的页面的静态部分(除“欢迎用户Foo Bar”..;)之外的所有内容)。

如上所述:不要忘记为您的资产配置正确的缓存标题(过期等)。这已经从Web服务器上删除了一些负载。

+0

顺便说一下:您的客户是否真的希望有1000个并发访问者,或者他只想象可能有那么多? ;-) – StephenKing 2012-01-31 14:01:46

+0

不,我真的不认为它会那么多,但这是合同的基础;-) – 2012-01-31 14:12:24

+0

在我看来,代理的需求尚未得到证实 - 但是很好的信息,所以+1。 – halfer 2012-01-31 14:17:20

0

我会研究一个虚拟的sserver或ksm以及一个很好的mysql和php配置。当我有一个ksm时,我会调整Linux并使用iptables进行流量整形。专用的根服务器会很好,但它很昂贵。然后我会考虑使用带有eaccellerator和memcache的nginx或lighttpd web服务器。如果这没有帮助,我会尝试使用优化标记来编译php和mysql,或者我会尝试使用英特尔C编译器进行编译。 ICC可以比gcc更好地优化C代码。如果服务器有很多RAM,我会使用ramdisk。

+0

对不起,不好回答恕我直言。不要试图撬动操作系统。从应用程序(TYPO3 + PHP)本身的良好设置开始。 – StephenKing 2012-01-31 15:58:10

+0

@StephenKing:你应该学会阅读。我没有办法调整系统,但它在Linux中是普通的行为,所以为什么不,如果你有办法? – Bytemain 2012-01-31 16:15:24

+1

他正在寻求一个Web应用程序的解决方案。你为什么期望他编译服务器软件?也许他正在使用托管服务器,共享主机,或者有一位系统管理员,他们可能会这样做。由于TYPO3配置错误,他可能会破坏所有性能,但他无法通过优化的二进制文件或虚拟硬盘来修复此问题。 – StephenKing 2012-01-31 17:07:34

2

这很有可能,已经做了这样的事情。您至少需要一个具有> = 8GB RAM的专用服务器。

如果我们谈论的基础设施,最小的组合是:

  • 的nginx /光油前/负载均衡
  • Apache HTTP服务器
  • MySQL的可能是独立的服务器上,可聚

性能优化在这种情况下非常重要。

进一步阅读的一些链接:

+0

为什么不是nginx或lighttpd? Apache很复杂,并且是一个野兽。以及为什么专用服务器?一公里更便宜? – Bytemain 2012-01-31 21:36:35

+0

Apache有些沉重,是的,但它有非常好的功能基础谢谢,可以调整以避免过载。 nginx可以使用,是的。什么是“kms”,对不起? – 2012-02-01 09:56:45

+0

这是一个错字。我的意思是KVM,请参阅http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine。你可以对客人有更多的控制权。您可以更改内核参数和编译内核。 – Bytemain 2012-02-01 10:50:26