php应用程序的可伸缩性

时间:2010-12-22 11:26:57

标签: php performance cakephp scalability

我使用cakephp构建了我的应用程序。它工作正常。我的应用程序仍然处于测试阶段,拥有3000个beta用户(基于邀请)。我想扩大它以扩大最终用户群。

关于我的应用的一些事情。

1)我使用mysql数据库表有大约25000条记录。 2)多个模型和多个hasMany和belongsTo和HABTM关系

第一个问题。 1)我如何才能提高网站性能。 2)数据库查询的结果限制是什么(10s)。 4)我应该将应用程序移动到更新的技术或框架。

记录和关系的数量正在增长。

我在不到三个月的时间里用cakephp启动应用程序,并且知识很少(MVC)。构建和测试应用程序非常容易。我会随时推荐给朋友。

我感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:5)

  

如何改善网站效果?

很难说不知道瓶颈在哪里。一种方法是:

  1. 首先优化SQL查询,启用慢速查询日志记录并检查它们,正确索引列,并根据需要更改SQL Server的配置。

  2. Profile PHP执行,分析报告并确保在需要时重构代码。

  3. 介绍缓存,平面文件,SQL缓存,APCMemcache等(只是不要将所有这些一起使用:)

  4. 优化服务器配置,包括软件和硬件。

  5. 转到多台服务器。

  6.   

    对数据库(10s)的查询的结果限制是什么?

    你的意思是执行时间?尽可能快:)但再说一次,取决于查询本身。如果查询每天执行一次,则可能比每次请求执行时都慢。时间取决于上面的第一个问题/答案。

      

    我应该将应用程序迁移到更新的技术或框架吗?

    这个很难回答。同样,取决于问题是什么以及您是否可以识别和修复它们。如果您可以通过优化查询和数据库,缓存等来解决它们,那么问题就不在框架中。我强烈建议在切换到其他技术或重写代码之前仔细考虑它。

答案 1 :(得分:1)

快速谷歌搜索产生了以下网站,所有这些都致力于大大加快CakePHP的速度。另外,以下是我对Cake速度的看法:

  1. 确保您使用的是最新的Cake版本。从Cake 1.2到1.3的更新为我最大的应用程序提供了大约20%的速度提升。
  2. 确保您已启用缓存(对于大多数阅读密集型应用程序,这将有助于大量使用)。
  3. 如果你有很多相关的模型,但很少使用,请尝试懒洋洋地加载这些模型。
  4. 请记住,Cake并不是真正为速度而建。这里的其他答案适用于一般情况,但对于CakePHP,瓶颈通常与Web层有关。因此,一种(相当简单)扩展的方法是通过将请求传递到后端处理场的代理服务器加载页面。

    此外,我强烈建议您分析您的代码。这意味着使用像Zend这样的IDE,您可以在其中插入断点以确定代码的慢速部分。至少要安装Cake调试工具栏,它会显示应用程序主要部分的执行时间(请求处理程序加载,控制器执行,视图渲染时间等)。

    谷歌搜索“优化CakePHP速度”的结果: