php - 编写托管在负载平衡服务器中的 Web 应用程序时需要了解哪些事项?

标签 php web-applications load webserver

假设您正在编写一个 PHP 应用程序,该应用程序将托管在负载平衡/多服务器设置中。为了确保顺利运行,您需要了解哪些事项?现在我认为唯一的问题是 PHP session (即,您必须为其使用自定义数据库处理程序)。还有什么吗?

最佳答案

让我们把它变成一个答案:

根据我的经验,绝大多数 PHP 应用程序不仅受到网络服务器上 PHP 性能的限制,而且至少受到后备存储(即数据库和/或文件)的限制。

因此,在没有仔分割析的情况下对 PHP 应用程序进行负载平衡可能会让事情变得更糟:越来越多的负载会触及链条中最薄弱的环节。

因此,第一个——恕我直言,“编写负载平衡服务器上托管的 Web 应用程序时需要了解的事情”是负载模式及其平衡潜力。如果你的应用程序表现不佳,你在更多服务器上对其进行负载平衡,然后发现你现在有更多服务器等待数据库,你就有麻烦了。

这是一个突然的 list ,请仅将其视为一次头脑 Storm (或脑放屁):

  • 第一:您真的受 CPU 限制吗?
  • 哪些页面点击次数最多(查看您的日志)
  • 对于其中的前 N ​​个(具有合适的 N),请检查处理模式:CPU 周期去了哪里?
  • 共享 session 、上传、文件存储(添加您使用的任何内容)会产生什么副作用?负载平衡会抵消这些副作用吗?

欢迎评论,我确信我还没有触及皮毛!

编辑

刚刚想到了在这种情况下曾经困扰过我的事情:资源锁定。如果您使用多服务器,请准备好迎接更高程度的并发

关于php - 编写托管在负载平衡服务器中的 Web 应用程序时需要了解哪些事项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12021204/

相关文章:

php - 如何用 PHP 平衡标签

php - 使php文件对外界隐藏

php - 将 HTML anchor 目标 ="_blank"插入 PHP echo 语句

python - 如何在Google App Engine中定义具有多对多关系的模型?

javascript - $(document).ready 在 IE 中不起作用

testing - 集成了测试工具的 Robotframework

php mysql 日期与大于和小于运算符进行比较

java - 如何在grails中仅计算URL(没有<a>标签)?

javascript - 使用 Javascript 滑动手势 : Live translate swipe position to position of element?

javascript - 从 .load() 加载时,.getScript() 不起作用