gpt4 book ai didi

php - Web 服务器非常慢,CPU 为 0-5%,RAM 为 500/1024

转载 作者:行者123 更新时间:2023-11-28 02:42:17 25 4
gpt4 key购买 nike

我编写了一个网络聊天,它通过 ajax 命令刷新来显示新条目。此命令启动了一个 php 文件,然后该文件创建了显示最新 25 个条目的聊天日志。 Ajax 每秒为每个用户刷新一次。

然后,当大约有 10 个用户在线时,整个网站速度慢得令人难以置信,甚至崩溃了。我想,速度慢是因为 php 脚本刷新太频繁(每秒 >10 次)。

我查看了我的虚拟服务器,启动了 htop 来查看进程。 CPU几乎没有被使用。介于 0% 和最高可达 5% 之间。 RAM 仅使用了一半,约为 1GB 的 500 MB(这是标准配置,甚至在聊天上线之前也是如此)。

我通过创建一个 cron 作业解决了这个问题,该作业仅创建聊天日志的 1 个 html 缓存站点,并将该站点提供给用户。

但是,我仍然想知道为什么即使 CPU 和 RAM 根本不忙,服务器也会运行得这么慢?

最佳答案

如果您没有最大化 cpu,那么它会阻塞其他一些资源。一些可能的候选人:

  • 每个请求都有一个数据库查询吗?如果是这样,需要多长时间?

  • 有多少个线程可用于处理请求?每个请求需要多长时间?如果只有一个线程为请求提供服务,那么一旦请求最多花费超过 10 毫秒,每秒 100 个请求的传入负载(听起来就像您正在做的那样)就会开始备份。

作为一般策略,我会添加计时器并尝试将问题一分为二。记录请求开始和结束的时间,如果时间很短,那么您就知道延迟发生在其他地方。

此外,对于这种工作负载,您应该考虑推送更新而不是轮询。这样您就可以推送一条消息来更新监听客户端,并且它们不必频繁轮询即可立即获取新消息。

关于php - Web 服务器非常慢,CPU 为 0-5%,RAM 为 500/1024,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12487982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com