'Called periodically to update per-pool node utilization metrics.'

def update_performance_cache(self, ssc_pools):

    if (not (self.zapi_client.features.SYSTEM_METRICS or self.zapi_client.features.SYSTEM_CONSTITUENT_METRICS)):
        return
    aggr_names = self._get_aggregates_for_pools(ssc_pools)
    (node_names, aggr_node_map) = self._get_nodes_for_aggregates(aggr_names)
    node_utilization = {}
    for node_name in node_names:
        if (node_name not in self.performance_counters):
            self.performance_counters[node_name] = []
        counters = self._get_node_utilization_counters(node_name)
        if (not counters):
            continue
        self.performance_counters[node_name].append(counters)
        self.performance_counters[node_name] = self.performance_counters[node_name][(-10):]
        counters = self.performance_counters[node_name]
        if (len(counters) < 2):
            node_utilization[node_name] = perf_base.DEFAULT_UTILIZATION
        else:
            node_utilization[node_name] = self._get_node_utilization(counters[0], counters[(-1)], node_name)
    pool_utilization = {}
    for (pool_name, pool_info) in ssc_pools.items():
        aggr_name = pool_info.get('netapp_aggregate', 'unknown')
        node_name = aggr_node_map.get(aggr_name)
        if node_name:
            pool_utilization[pool_name] = node_utilization.get(node_name, perf_base.DEFAULT_UTILIZATION)
        else:
            pool_utilization[pool_name] = perf_base.DEFAULT_UTILIZATION
    self.pool_utilization = pool_utilization
