我在专用的 Windows 2008 服务器上运行 Apache,后端进程通过 FASTCGI 连接到 Apache。后端进程实际上是一个游戏引擎。一切运行正常,但我注意到,当大约有 50 个用户访问服务器时(相当于每秒约 25 个 HTTP 请求),速度开始变慢。当我查看任务管理器时,CPU 使用率在 1% 到 5% 之间。
因此,我正在寻找线索,以便找出为什么我的响应时间正在下降,即使 CPU 似乎没有接近最大值。
答案1
尝试 apachetop
如果您需要性能、可扩展性和降低成本(许可证),也可以考虑使用 unix 系统。但是您需要为技术知识付费。毕竟这不是点击操作 ;-)
您可以在 Windows 或其他环境中开发客户端。
http://en.wikipedia.org/wiki/Nginx
针对并发进行了优化。
更多阅读内容请点击这里
http://www.kegel.com/c10k.html有点旧了,目前我找不到更新版本。
鉴于这是一个游戏引擎,那么我推测你的客户端需要恒定的 http 连接,而不是建立/拆除 tcp 连接。
您也许能够调整窗口来完成这项工作,但是一旦您的游戏扩展,您就会遇到问题。
我有一些空闲的周期,并且喜欢玩游戏。所以如果您需要一对一的帮助,请发私信。
答案2
事实证明这是 Apache 配置问题。每个子进程的默认线程数为 64(至少在 Windows 上如此)。将 ThreadsPerChild 设置为更高的数字可以解决该问题。我已将其设置为为每个子进程分配 1500 个线程,这将使用大约 100 MB 的 RAM - 非常值得。