我的 VDS 上运行着关键任务应用程序。从用户角度来看,我们没有遇到任何明显的延迟问题。但是,我想了解何时需要升级。网络负载很低,我认为不存在任何磁盘 I/O(它是 SSD RAID-5)或内存瓶颈。这是一个 KVM 实例,具有 2 个专用 CPU(为什么 Ramnode 称它为 VDS 而不是 VPS)和 8GB RAM,运行 Centos 7 和 SugarCRM 安装,同时用户不超过 6 个,并且有 6 个低流量 Wordpress 站点。
因此,在我看来,我需要关注的主要内容是 CPU 使用率。下面是 top 命令的标题,我设置了一个 cron 事件,每 15 分钟输出一次 CPU 使用率。我知道这是一个 2 CPU 系统,它是专用 CPU,因为它是 VPS 上的 VDS。您是否认为以 15 分钟为增量查看 CPU 使用率,低于该值时,CPU 负载完全在当前实例的容差范围内,并且没有任何重大瓶颈?我倾向于关注显示 5 分钟和 15 分钟平均值的第二个和第三个数字,因为 1 分钟内的爆发并不那么令人担忧,或者您认为 VDS 是否接近其 CPU 限制?我的想法是,只要 5 分钟和 15 分钟的数字不超过 3.0,那么我就没问题了?我知道还有其他工具(如 vmstat)和其他我可以使用的工具,但对于简单的快速检查,这些信息是否足以检查明显的服务器过载?
1.81 1.35 1.61 13/448 4598
0.86 1.20 1.33 12/454 10227
3.88 1.65 1.14 11/480 15646
4.40 2.90 1.80 7/460 21584
1.76 1.37 1.49 14/443 27245
2.01 1.42 1.28 12/454 32656
3.98 1.86 1.36 9/465 5890
4.18 2.81 1.86 7/455 11599
2.57 1.68 1.58 7/453 16947
1.59 1.43 1.45 10/443 22651
顶部 - 11:54:39 启动 20 天,16:03,2 个用户,平均负载:0.67、1.12、1.31 任务:总计 156 个,其中 3 个正在运行,153 个正在休眠,0 个已停止,0 个僵尸 %Cpu(s):41.9 us,6.5 sy,0.0 ni,48.4 id,3.2 wa,0.0 hi,0.0 si,0.0 st KiB 内存:总计 8010484,可用 613228,已使用 2096892,5300364 buff/cache KiB 交换:总计 1048572,可用 72816,已使用 975756。4995584 可用内存
答案1
仅根据正常运行时间数据无法确定,但如果您确实确定磁盘 io 不是瓶颈(通常是瓶颈),则该服务器的运行接近容量上限。我这样说是因为 LOAD/CPU COUNT 接近 1。实际上,这意味着大多数时候几乎有 1 个作业(每个 CPU)在等待资源。
我确实注意到,根据您的 TOP 输出,您的系统正在使用相当数量的 SWAP,因此我不确定您的系统受到 CPU 而不是内存/磁盘 IO 的限制。
答案2
定义一个服务水平目标将有助于证明何时需要进行更改。无论您的基础设施如何,这都可以量化您的“没有遇到任何可见的滞后”断言。
也许您希望 99.9% 的页面加载时间低于 100 毫秒,以保持网站响应速度。您可能希望从客户端角度准确测量这一点,例如页面速度分析。
容量规划需要花点心思。该主机现在看起来有很多额外容量,但关键在于规划未来。
考虑任何计划中的组织增长或预期的负载峰值。了解系统的所有资源,例如USE 方法. 查找未达到服务水平目标的事件的根本原因,以及是否是容量问题。
制定增加容量的计划(如果需要)。了解如何扩展更多实例或扩大实例规模。在需要性能之前安装负载平衡器,并获得高可用性。
一般而言,具有剩余容量的 UNIX/Linux 系统的主机级别指标包括:
- 内存页面插入接近于零
- (平均负载/CPU)小于 1
- 存储设备的快速读写响应时间
- 几乎零丢弃或超限网络数据包