我是这个社区的新人,也是新手开发者。如果我问错了,请原谅我
我有一个允许 50 个 PHP 进程的主机。但我的网站在高峰时段有 10000 个并发流量。在 2000 个在线用户之后,主机启动了超过 50 个进程,网站开始出现 503 错误。我设置了一个 503 页面,供用户请求刷新页面。它以另一种方式解决了我的问题。但我想以正确的方式修复它。
我有 8 个动态 PHP 页面,它们根据数据库条目创建页面。所有页面都有大约 6 个包含 PHP 文件请求。我的问题是 php 进程如何计算?它是否将单个 PHP 文件计为一个,还是也计算我包含的文件。请帮助我清楚地了解 PHP 进程。提前致谢。
答案1
当 php 解释器必须运行代码时,就会发生一个过程。无论是否包含它,include 都会执行如下操作:
php 文档
<?php
echo "Hello ";
?>
php 源文件
<?php
include_once "a.php";
echo "World!";
?>
变成
<?php
echo "Hello ";
echo "World!";
?>
然后由一个进程将其解释为一个大块。
甚至更好:解释器完成后,进程终止,它不需要保持活动状态。连接在服务器级别处理,会话存储在会话 cookie 中,不需要永久的“php-daemon”来跟踪所有内容。
这就是为什么您只会在大约 2000 个用户时遇到错误,即当用户操作导致同时创建 >50 个 php 实例(打开需要解释的 php 页面)并导致 >50 个正在运行的进程时,从而出现 503。