0

我们可以像在 Cloudsim(模拟工具)中为主机添加一个 powerModel 一样为虚拟机添加一个 powerModel 吗?这样我们就可以跟踪每个虚拟机的功耗。

4

1 回答 1

0

使用CloudSim Plus,您可以在示例中使用以下代码计算 VM 的 CPU 使用率和功耗:

private void printVmsCpuUtilizationAndPowerConsumption() {
    for (Vm vm : vmList) {
        System.out.println("Vm " + vm.getId() + " at Host " + vm.getHost().getId() + " CPU Usage and Power Consumption");
        double vmPower; //watt-sec
        double utilizationHistoryTimeInterval, prevTime = 0;
        final UtilizationHistory history = vm.getUtilizationHistory();
        for (final double time : history.getHistory().keySet()) {
            utilizationHistoryTimeInterval = time - prevTime;
            vmPower = history.powerConsumption(time);
            final double wattsPerInterval = vmPower*utilizationHistoryTimeInterval;
            System.out.printf(
                "\tTime %8.1f | Host CPU Usage: %6.1f%% | Power Consumption: %8.0f Watt-Sec * %6.0f Secs = %10.2f Watt-Sec\n",
                time, history.vmCpuUsageFromHostCapacity(time) *100, vmPower, utilizationHistoryTimeInterval, wattsPerInterval);
            prevTime = time;
        }
        System.out.println();
    }
}

您没有为 VM 实现特定的 PowerModel。VM 功耗由其 CPU 利用率和主机的 PowerModel 决定。

您可以在此处获得完整的示例。

于 2019-03-21T00:55:11.670 回答