我有一台 GNU/Linux Debian 服务器,运行:apache、jboss、proftpd 和 postgresql(RAM:16GB,4 核 Xeon)。Apache 进程数上限为 1200,Jboss DB Pool 也是如此。我最多可以同时进行 400 次 FTP 下载。平均负载可以提高 5(大多数时候为 1)。您对此有何看法?这台服务器是否被视为“负载过大”?
问候,
答案1
您应该运行的进程数不应该超过您拥有的 RAM 数量;1200 个 Apache 工作进程听起来太多了,您可能没有足够的 RAM 来运行那么多进程(尤其是在还有所有其他东西的情况下)。
这本质上都是关于调整内存使用情况(和 IO 使用情况),而不是任务数量。
不要担心高负载 - 平均负载包括等待 IO 的进程,在利用率高的机器上,这样的进程可能非常多。我们有许多服务器全天以 20 以上的速度运行;我们需要如此努力地运行它们,才能最大限度地利用硬件。
答案2
当系统变得无响应时,表示负载过大。
系统负载平均值可能会具有欺骗性,因为您可能拥有一个负载很高的系统,但仍然能够对请求做出快速响应……
如果您的系统正在耗尽虚拟内存(使硬盘崩溃)、实际内存不足或超时……当您尝试在键盘上输入信息时暂停、网络连接超时等……那么您需要查看瓶颈所在并努力修复它。如果响应时间可以接受且系统行为可以接受且没有错误,那么您应该没问题。
我会密切关注您的内存使用情况和磁盘使用情况以及可能的网络吞吐量,并以其他方式听取用户的反馈。
答案3
您可以预期一台繁忙的服务器的负载等于处理器中的核心数加上您拥有的 IO 设备数。4 核机箱的负载平均值并不是特别高。