我遇到了一个问题,可能很多人都遇到过,那就是服务器在一段时间内变得“无响应”
问题: 我怎样才能知道一台服务器可以处理多少数据,我从来没有研究过服务器的容量、基于此的负载平衡等等,所以我需要一些想法,知道如何获取这些信息
可能的解决方法: 我想到的一件事是监控服务器(可能使用类似 naigos 的解决方案)
运行的软件种类: 我正在运行一个下载服务,该服务首先使用 Aria2(可通过 Web 服务控制的下载管理器)下载一些文件,服务器通过 nginx 为它们提供服务。(这些文件完全归用户所有,因此不会被许多用户同时请求,因此理论上不需要负载平衡来提供服务)
我把同时下载的文件数量限制为 50 个,然后是 25 个......这对于 i3 服务器来说非常低,而且它甚至保持 0.0% 的空闲 CPU 使用率,并且 4GB 的可用内存非常非常低,比如 200 mb 或更少......
我正在运行一些带有传输(一个 torrent 下载管理器)的服务器,我没有遇到这些问题,据称 torrent 需要更多的进程密集型、资源和连接“破坏性”。
仅通过查看托管服务提供商的图表,我无法知道服务器上的负载是多少。要了解我们的最大值:上传:10.51 mb/s
下载:58.82 mb/s 不超过 300 400 个连接.. 8 核,6x 1tb hd,运行 3 个带有 XEN 的 VMS..
即使 nginx 中断...人们说他们无法下载他们中断的文件...然后我们看到有时 nginx 进程就会关闭..
我们有不同的服务器..带有 xen 或不带有,它们都有相同的行为...
啊..我差点忘了...我们有 centos 然后我们切换到 gentoo...
我们之前尝试过 wget,它更加糟糕,我正在考虑使用 jdownloader,但它需要 X11 环境......(这将占用更多资源),而且我还没有找到任何其他知道 rpc/rest/soap 调用的下载管理器。
有没有 Linux 大师可以告诉我从哪里开始,看看如何发现服务器限制,并使系统稳定?谢谢大家,
答案1
这里确实需要某种类型的监控,没有它你只是在猜测。我建议使用 Munin 而不是 nagios。Nagios 真的不会告诉你什么是错误的,它只会告诉你你的服务已停止。这实际上不会给你带来太多帮助。
Nginx 可以轻松处理您提到的速度。这不太可能是您的问题。
当您说可用内存非常低时,您究竟在看什么?如果您只是查看“free -m”的输出,请注意,linux 将尝试使用任何“可用”内存作为磁盘缓存。如果机器上的任何进程确实需要此内存,则将为实际进程释放磁盘缓存。您不想禁用磁盘缓存,它可能不会造成任何损害。
在任何给定时间,您最终会运行多少个进程?如果同时有超过 150 个活动进程,Linux 往往不会高兴。
这里确实没有简单的答案,您需要某种监控来告诉您发生了什么。我建议您养成在不进行监控的情况下永远不部署生产机器的习惯。这很重要(并且使用 munin 可以轻松安装)。