我有一台 LiquidWeb 的 VPS 服务器……感觉白天有时会卡顿。由于它是 100% 虚拟的,我无法只检查“top”来衡量性能,因为这是 VPS 内部的测量。(换句话说:如果我从未在 VPS 上运行任何东西,top 将始终显示相同的内存使用量和零服务器负载,但由于 VPS 位于共享物理机箱中,因此其速度仍可能会波动。)
有没有办法测量 VPS 的“实际”运行速度?我当时想破解一个运行循环(执行某些操作 - 文件操作,或??)并记录时间的小脚本,这样我就可以开始建立历史记录了……但我更喜欢更可靠/更基本的统计数据。
答案1
您好,我有一个类似的任务,并且我已经完成了以下操作(如果服务器是 Windows VPS):
- 定义对您的应用程序/环境来说什么更重要(对于 DB Prod 服务器,您可能期望较高的读取速度,CPU)。您可以从应用程序 \ 事件日志中获取这些信息,并查看哪个似乎是瓶颈。
- Perfmon 计数器用于您在步骤 1 中决定监控的内容。确保它们足够详细,以便获取一些好的数据,但不要每分钟都获取它们(通常@30 分钟应该可以给您一个大概的概念)
如果您有一个 MSSQL 实例,请务必监视它的性能和 CPU \ RAM 限制。
如果您有 IIS,请务必检查日志,并检查是否有任何应用程序出现“致命”错误
- 检查 IIS 日志并获取性能计数器。
- 检查事件日志中是否有任何错误,通常修复它们会给你一个想法,并会给你的VPS带来一点提升。
对于Linux VPS:
- top -s 应该能让你对该进程有一个基本的了解,以及哪一个进程消耗了最多的内存
- 要测试读/写速度,请尝试复制某些内容并查看速度。对于磁盘访问时间,您可以运行 MySQL 查询并查看执行时间。(最重要的是哪个操作在您的查询中占用最多时间)
- 查看 dmesg 中是否有任何错误消息并尝试修复它们。
- 如果适用,您可以尝试将其添加到 Nagios 监控服务器。(您还可以在那里找到帮助您监控的脚本)
- 查看应用程序的日志并查看它们是否报告任何性能/问题。
答案2
通常,使用 iostat 测量磁盘访问时间是个好主意。使用 vmstat 查看内存,使用 htop 查看 CPU。
如果您正在运行的 Windows 使用性能监视器。
通常在虚拟机中,瓶颈是磁盘访问延迟。
我可以给你一些有关你的表现问题的想法。
答案3
定义对您来说重要的指标,例如:IO、CPU、延迟……
然后找到一个合适的测试程序,例如测试磁盘 IO bonnie++ 是一个不错的选择,但你可以在Phoronix 测试套件。
在不同的系统上进行更多测试并比较结果。
并且在测试期间使用 top、iotop、iftop 检查系统统计信息。另外,如果提供商像 Amazon 一样为您提供图表,请在测试期间检查它们。