我有一台物理服务器,它使用 virt-manager 和 kvm 运行 8 台虚拟机。
由于不再需要一台虚拟机,我想为剩余的虚拟机提供更多资源。
我正在寻找可以帮助我找出答案的方法:
哪个虚拟机确实需要更多资源?
我所说的“资源”是指:
- CPU 数量
- 可用 RAM
磁盘空间并不重要,只要够用就行。
环境:Linux 虚拟机管理程序、Linux VM
答案1
我可以向你推荐这篇最新文章:
http://techblog.netflix.com/2015/11/linux-performance-analysis-in-60s.html
提到的工具是:
- 正常运行时间(平均负载对你来说很重要)
$ 正常运行时间
00:30:00 运行 25 天,6:28,3 个用户,平均负载:0,01、0,02、0,05
- 消息 |尾巴
- vmstat 1
- mpstat -P 全部 1
- pidstat 1
- iostat -XZ 1
- 免费-m
- sar -n DEV 1
- sar -n TCP,ETCP 1
- 顶部
我们还可以添加附言。
这些命令需要在每台虚拟机上执行。
我流利地使用顶部而不是顶部这更令人愉快。
在 CentOS 7 上,你可以通过以下方式安装 htop:
# yum 安装 htop
如果 EPEL repo 不存在或者您的系统:
# yum 安装 epel-release
对于 RAM 的管理,我还放了这个众所周知的链接:http://www.linuxatemyram.com/
另外,如果你点击文章中的视频链接,你会看到工具列表以及 27:10 处每个工具的简要介绍(Linux 性能工具,Brendan Gregg,第 1 部分(共 2 部分))
我希望这个能帮上忙 ! :)
答案2
要查看哪个虚拟机需要更多资源,仅查看实时数据(如virt-manager
可以显示的内容)是不够的。您还需要历史数据,例如在一段时间内使用了多少资源、峰值有多高等。为此,您需要一个可以存储和显示历史数据的监控解决方案。可以列举出不少支持 libvirt 的解决方案,但您应该自己选择一个,这不是产品推荐网站。
答案3
@stephanyDionysio 的回答的第一段非常突出。这里可能没有好的通用解决方案。他建议的工具可能有助于识别需要关注的候选对象,但我不认为这是集中注意力的方法。
我建议不要从虚拟机性能入手,而是从哪些功能让用户感到厌烦,或者即使这些功能没有让用户感到厌烦,但会占用大量用户时间或其他业务成本,然后了解哪些因素会影响性能。额外的资源可能会有所帮助,或者您可能会发现其他可以改进的地方,但请关注那些会产生重大影响的部分。
虽然就您所拥有的资源而言(主要是 IO 受限)这不是一个好例子,但请考虑一下备份过程。它可能会持续运行数小时,并在机器正在努力处理的列表中名列前茅,但加快速度不会给您的用户带来太多好处,除非它的速度太慢以至于无法在一夜之间完成。