网站有100万人同时在线,并发为100万,PHP的数据库连接对象就有100万个,问题来了?

网站有100万人同时在线,并发为100万,PHP的数据库连接对象就有100万个,PHP和apache的线程和进程分别是多少?

阅读 6.4k
2 个回答

php+apache大概需要1万台服务器

别用Apache了吧,这种时候还是推荐Nginx。如果是Apache你需要选择一些其他的组件来提升它的性能,这块预估需要你自己找找,我手头没有。

PHP的话,单就PHP-fpm 7.4的性能而言,取决于你的接口吞吐量能力 —— QPS。

既然是100w uv的业务,如果是瞬时有50w uv的话,你可以这样计算:

使用ab工具获得综合QPS。

假设QPS为50/ms,1个worker 1000ms(1秒)可以处理20个requests,10k requests 需要500个 worker。 100wk又是多少呢?

得到worker数后,以1G内存可以运行10-20个worker为例,32G的服务器可以容纳多少个worker呢?通过 你需要多少个worker得出你需要多少G内存,再根据你打算买什么规格的服务器来得出你需要多少台这样的服务器。

如果是计算型的话,需要结合程序写出来后运行的TPS,进行另一个方向的计算。

考虑微服务拆分:分布式Mysql、分布式Redis、负载均衡Nginx、PHP。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题