以ThrMc.java为例,说明参数enableOutput和outputToFile的用途
首先附上ThrMc.java的代码:
public class ThrMc {
/**
* The main method.
*
* @param args the arguments
* @throws IOException Signals that an I/O exception has occurred.
*/
public static void main(String[] args) throws IOException {
boolean enableOutput = true; //能够输出标志(输出仿真具体步骤,如虚拟机创建,分配虚拟机,迁移虚拟机具体步骤)
boolean outputToFile = false; //输出到文件标志
String inputFolder = NonPowerAware.class.getClassLoader().getResource("workload/planetlab").getPath(); //得到输入文件夹路径,即工作负载文件夹
//得到字符串inputFolder:/C:/Users/Dell/workspace/cloudsim-cloudsim-4.0/modules/cloudsim-examples/target/classes/workload/planetlab
String outputFolder = "output"; //输出文件夹名称
String workload = "20110303"; // PlanetLab workload //工作负载文件夹名称
String vmAllocationPolicy = "thr"; // Static Threshold (THR) VM allocation policy //采用的虚拟机分配策略
String vmSelectionPolicy = "mc"; // Maximum Correlation (MC) VM selection policy //才用的虚拟机选择策略
String parameter = "0.8"; // the static utilization threshold //利用率阈值
new PlanetLabRunner(
enableOutput,
outputToFile,
inputFolder,
outputFolder,
workload,
vmAllocationPolicy,
vmSelectionPolicy,
parameter);
}
}
第一个参数enableOutput的功能:控制输出的标志,控制是否输出仿真全过程的日志记录。若将该参数修改为false,输出结果如下:
第二个参数outputToFile的功能:控制输出标志,是否以文件的形式输出仿真全过程的日志记录。(最后生成一个output文件夹,文件夹中包含一个以试验名字命名的txt文本,详细记录了仿真的全过程的日志记录)。将参数修改为true,最后生成500多M的txt文本,记录了java控制台的输出信息,这样可以解决java堆栈不足,无法显示仿真全过程的详细日志记录问题!!!
最后生成的文件夹为“output”。
在“output”文件夹中,最后生成一个以试验名字命名的txt文本,记录着仿真的详细过程日志记录,包括虚拟机创建,虚拟机分配,虚拟机迁移,以及每五分钟采样的数据等等。如下图所示: