![限制批处理模式下 esxtop 的输出](https://linux22.com/image/559024/%E9%99%90%E5%88%B6%E6%89%B9%E5%A4%84%E7%90%86%E6%A8%A1%E5%BC%8F%E4%B8%8B%20esxtop%20%E7%9A%84%E8%BE%93%E5%87%BA.png)
有没有办法限制批处理模式下 esxtop 的输出?我尝试以批处理模式运行它,得到了 16,000 列!我可以在收集后过滤掉这些,但在这种数据量下,我似乎会浪费资源。esxtop 的交互式输出相当可定制。这里有一个关于 esxtop 的相当不错的讨论http://www.yellow-bricks.com/esxtop/ 如果批处理模式不是,那么我可能会考虑以编程方式解析交互式输出。另一个选择是使用 VMware 的 SKD,但我没有找到任何实际示例。我正在从 opensolaris 进行收集。有一个适用于 LINUX 和 Windows 的 perl SDK,但如果可能的话,我宁愿从 opensolaris 进行所有操作。
答案1
刚刚发现这个
http://www.r71.nl/it/resxtop-how-to-reduce-output/
它没有我想要的所有控制,但它无疑是朝着正确方向迈出的一步:
- 只需在 # 提示符下输入 esxtop,即可在服务控制台上以交互模式输入 ESXTOP
- 通过按相应的菜单选项切换到您不感兴趣的捕获统计信息的组件(c:ESX cpu,m:ESX 内存,d:ESX 磁盘适配器,u:ESX 磁盘设备,v:ESX 磁盘 VM)。
- 查看您不想捕获的组件时按 f。将显示字段列表。您可以按每个字段对应的字母来打开或关闭字段。* 表示该字段已打开。您想关闭所有不想收集的字段。
- 对剩余组件重复步骤 2 和 3,只留下您想要捕获的部分
- 切换到您想要以批处理模式捕获的组件并重复步骤#3,但现在您将启用您想要捕获的内容。
- 按 W(大写 W - 区分大小写)写出 ESXTOP 配置文件。您可以接受默认设置或创建新的配置文件。您可能想要创建仅 CPU 的配置文件、仅内存的配置文件等等。
- 按 CTRL+C 停止 ESXTOP。
- 现在,以批处理模式调用 ESXTOP,使用 -c 开关调用您在步骤 #6 中创建的更新或新配置文件。以下是示例:# esxtop -b -d 30 -n 480 -c .esxtopcpustats > /tmp/esxtop_cpu_stats.csv,其中 .esxtopcpustats 是仅包含 CPU 统计信息的 ESXTOP 配置文件。-d 将捕获间隔设置为 30 秒,-n 将样本数设置为 480(或 4 小时,延迟 30 秒)。