![Apache 2.2.21 是否可在 Windows Server 2003 上感知多处理器?](https://linux22.com/image/597203/Apache%202.2.21%20%E6%98%AF%E5%90%A6%E5%8F%AF%E5%9C%A8%20Windows%20Server%202003%20%E4%B8%8A%E6%84%9F%E7%9F%A5%E5%A4%9A%E5%A4%84%E7%90%86%E5%99%A8%EF%BC%9F.png)
我目前在 Windows 2003 机器上的单个 CPU 上运行 Web 服务器。我正在考虑添加另一个处理器来提高性能,因为服务器上的一些 Web 应用程序速度变慢了。Apache 能否在两个 CPU 之间均衡负载?
答案1
除非您真的搞砸了配置,否则 Apache 本身会利用多个处理器。Apache 使用一种称为 MPM 的东西来启动和监督其各种工作线程/进程/等;不同的 MPM 以不同的方式工作。
如果有任何脚本或数据库访问正在进行,则可能会被限制到单个 CPU,这实际上取决于它的编写方式。例如,如果有数据库访问,并且查询在执行任何操作时锁定了唯一的表,那么 Web 服务器实际上将被限制到一个 CPU。通常情况并非如此,但值得警告。
答案2
事实上,大多数时候 Apache 只能为一个处理器打开一个线程来处理一个 http 请求。
您必须意识到,当您使用外部引用或本地(您的服务器)快速将数据刷新到客户端时,您可以节省大量时间。
导航器会立即尝试旋转外部引用,因此如果 http 请求是针对您的服务器的,您会收到第二个 http 请求(或更多),Apache 将在其他空闲处理器上启动线程(第一个 http 和第二个是并行进程)。导航器的工作就是组装每个 http 请求的已获得组件。
因此,您可以从 XP 开始使用系统监视器进行测试。
减少治疗时间的方法是: - 列出项目
*1- 当所有外部引用都已定义(外部 js、图像、媒体等...)时,请毫不犹豫地在 php 中使用 flush() 并发送加载
*2- 尝试对图像进行分组并发送所有参考资料
*3- 最后发送如何构建(使用 js 显示图像,所有图像首先加载 - 函数)
您将会看到您的多处理器 CPU 处于良好的水平。
还要注意,如果同一个脚本同时有多个用户,则多处理器将非常有用。
此致
高音