Java VI-SDK集群内存

Java VI-SDK集群内存,java,sdk,virtual-machine,Java,Sdk,Virtual Machine,我需要使用Vi Java SDK程序获取集群保留内存和已使用内存的帮助 我可以使用下面的代码获得集群的总内存 ClusterComputeResource crs=(ClusterComputeResource) mes[i]; ClusterConfigInfo clusconfig=crs.getConfiguration(); ComputeResourceSummary cm=crs.getSummary(); double mem=cm.getTotalMemory()/1099511

我需要使用Vi Java SDK程序获取集群保留内存和已使用内存的帮助

我可以使用下面的代码获得集群的总内存

ClusterComputeResource crs=(ClusterComputeResource) mes[i];
ClusterConfigInfo clusconfig=crs.getConfiguration();
ComputeResourceSummary cm=crs.getSummary();
double mem=cm.getTotalMemory()/1099511627776D;
double round=Math.round(mem);
String str = String.format("%1.2f", mem);
double totalmemory = Double.valueOf(str);
System.out.println("Cluster NAME " + crs.getName());
System.out.println("Cluster Memory " + totalmemory +"TB");
有谁能指导我进一步获取集群的保留和使用内存吗


请提前提供帮助和感谢。

阅读文档,数据对象还有一个名为

有效内存:可用于运行虚拟机的有效内存资源(MB)。这是所有运行主机的聚合有效资源级别。处于维护模式或无响应的主机不计算在内。VMware Service Console使用的资源不包括在聚合中。此值表示根资源池可用于运行虚拟机的资源量

现在要计算已用内存,您必须进行一些计算。这并不是直接的TotalMemory-EffectiveMem

编辑:我想你想要存储容量? 要检索集群的容量,请检查集群对象是否具有数据存储对象数组。遍历数组并检索数据存储容量

ManagedEntity[] clusters = new InventoryNavigator(rootFolder).searchManagedEntities("ClusterComputeResource");      
ClusterComputeResource cluster = (ClusterComputeResource)clusters[0];
Datastore[] datastores = cluster.getDatastores();
for(Datastore datastore: datastores)
    System.out.println("Capacity for datastore " +datastore.getName() + ": " + datastore.getSummary().capacity +" bytes");

非常感谢您的回复,这有助于满足我的需求。我还有一件事要获得群集的保留容量,我如何获得它?谢谢您的回复。实际上,我正在尝试获取将在Vsphere客户端的资源分配中显示的内存保留容量。嗨,鲁本,我使用ResourcePoolRuntimeInfo获得了内存保留容量。非常感谢您的帮助。。