我只是想了解一些事情...我已经配置了 Apache+modsecurity+mod_proxy 作为 4 个 Web 后端的反向代理。
目前这还未投入生产,我想知道在设置了 MaxClient 的反向代理上我必须做什么。RP 服务器有 4Gb RAM。
我不明白为什么 httpd 进程使用了大约 21Mb!这是否意味着我的 RP 只能同时处理 4000000/21000=~190 个客户端?
既然反向代理本身只能处理 Web 服务器的流量,那么为什么人们要使用 Apache 作为反向代理呢?我的意思是,如果我有 8 个后端 Web 需要负载平衡(每个 Web 上的 MaxClient=150)。我必须在反向代理上设置 MacxClients=8*150。那么反向代理服务器必须使用 18Gb 的 RAM 才能正常工作?(21000/1150)
我错过了什么?
需要你的帮助,谢谢。
答案1
您的 apache2 进程可能没有使用您认为的 RAM 数量,因为共享库使用了相当一部分内存占用。但是,将前端代理配置为 MaxClients 为 200 左右肯定是明智之举,直到您更好地了解系统在负载下的性能。
在您描述的缓存层/服务层架构中,您可能会考虑的是,前端的 RP 可以比服务层中的应用程序更快地完成其服务请求。因此,即使一开始看起来 RP 将成为您的瓶颈,但事实并非如此。有可能,但可能性不大。
如果事实证明您的应用程序层速度太快,单个 RP 无法跟上,那么使用循环 DNS 迁移到负载平衡缓存层相对容易,甚至可以部署商业负载平衡器。您有很多选择。
要了解您的 RP 实际可以处理多少流量,请阅读ab——Apache 基准测试工具. 这是一种简单的方法来抛出很多前端服务器的流量,并查看它如何处理负载。从那里开始,您可以逐步进行更复杂的负载测试以涉及您的服务层,但这ab
应该可以帮助您了解您的 RP 是否可以处理您预期的应用程序负载类型。