HBASE-4215 RS requestsPerSecond counter seems to be off
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1162198 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7b85e43c45
commit
389c621af6
@ -484,6 +484,7 @@ Release 0.90.5 - Unreleased
|
||||
IMPROVEMENT
|
||||
HBASE-4205 Enhance HTable javadoc (Eric Charles)
|
||||
HBASE-4222 Make HLog more resilient to write pipeline failures
|
||||
HBASE-4315 RS requestsPerSecond counter seems to be off (subramanian raghunathan)
|
||||
|
||||
Release 0.90.4 - August 10, 2011
|
||||
|
||||
|
@ -198,7 +198,7 @@ org.apache.hadoop.hbase.HTableDescriptor;
|
||||
<%java>
|
||||
}
|
||||
</%java>
|
||||
<tr><th>Total: </th><td>servers: <% servers.size() %></td><td> </td><td>requests=<% totalRequests %>, regions=<% totalRegions %></td></tr>
|
||||
<tr><th>Total: </th><td>servers: <% servers.size() %></td><td> </td><td>requestsPerSecond=<% totalRequests %>, numberOfOnlineRegions=<% totalRegions %></td></tr>
|
||||
</table>
|
||||
|
||||
<p>Load is requests per second and count of regions loaded</p>
|
||||
|
@ -40,11 +40,15 @@ implements WritableComparable<HServerLoad> {
|
||||
// Empty load instance.
|
||||
public static final HServerLoad EMPTY_HSERVERLOAD = new HServerLoad();
|
||||
|
||||
/** Number of requests since last report
|
||||
/** Number of requests per second since last report.
|
||||
*/
|
||||
// TODO: Instead build this up out of region counters.
|
||||
private int numberOfRequests = 0;
|
||||
|
||||
/** Total Number of requests from the start of the region server.
|
||||
*/
|
||||
private int totalNumberOfRequests = 0;
|
||||
|
||||
/** the amount of used heap, in MB */
|
||||
private int usedHeapMB = 0;
|
||||
|
||||
@ -367,12 +371,14 @@ implements WritableComparable<HServerLoad> {
|
||||
* @param usedHeapMB
|
||||
* @param maxHeapMB
|
||||
*/
|
||||
public HServerLoad(final int numberOfRequests, final int usedHeapMB,
|
||||
final int maxHeapMB, final Map<byte[], RegionLoad> regionLoad) {
|
||||
public HServerLoad(final int totalNumberOfRequests,
|
||||
final int numberOfRequests, final int usedHeapMB, final int maxHeapMB,
|
||||
final Map<byte[], RegionLoad> regionLoad) {
|
||||
this.numberOfRequests = numberOfRequests;
|
||||
this.usedHeapMB = usedHeapMB;
|
||||
this.maxHeapMB = maxHeapMB;
|
||||
this.regionLoad = regionLoad;
|
||||
this.totalNumberOfRequests = totalNumberOfRequests;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -380,7 +386,8 @@ implements WritableComparable<HServerLoad> {
|
||||
* @param hsl the template HServerLoad
|
||||
*/
|
||||
public HServerLoad(final HServerLoad hsl) {
|
||||
this(hsl.numberOfRequests, hsl.usedHeapMB, hsl.maxHeapMB, hsl.getRegionsLoad());
|
||||
this(hsl.totalNumberOfRequests, hsl.numberOfRequests, hsl.usedHeapMB,
|
||||
hsl.maxHeapMB, hsl.getRegionsLoad());
|
||||
for (Map.Entry<byte[], RegionLoad> e : hsl.regionLoad.entrySet()) {
|
||||
this.regionLoad.put(e.getKey(), e.getValue());
|
||||
}
|
||||
@ -456,11 +463,18 @@ implements WritableComparable<HServerLoad> {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the numberOfRequests
|
||||
* @return the numberOfRequests per second.
|
||||
*/
|
||||
public int getNumberOfRequests() {
|
||||
return numberOfRequests;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the numberOfRequests
|
||||
*/
|
||||
public int getTotalNumberOfRequests() {
|
||||
return totalNumberOfRequests;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the amount of heap in use, in MB
|
||||
@ -538,6 +552,7 @@ implements WritableComparable<HServerLoad> {
|
||||
rl.readFields(in);
|
||||
regionLoad.put(rl.getName(), rl);
|
||||
}
|
||||
totalNumberOfRequests = in.readInt();
|
||||
}
|
||||
|
||||
public void write(DataOutput out) throws IOException {
|
||||
@ -549,6 +564,7 @@ implements WritableComparable<HServerLoad> {
|
||||
out.writeInt(this.regionLoad.size());
|
||||
for (RegionLoad rl: regionLoad.values())
|
||||
rl.write(out);
|
||||
out.writeInt(totalNumberOfRequests);
|
||||
}
|
||||
|
||||
// Comparable
|
||||
|
@ -754,7 +754,7 @@ implements HMasterInterface, HMasterRegionInterface, MasterServices, Server {
|
||||
this.serverManager.regionServerReport(new ServerName(sn), hsl);
|
||||
if (hsl != null && this.metrics != null) {
|
||||
// Up our metrics.
|
||||
this.metrics.incrementRequests(hsl.getNumberOfRequests());
|
||||
this.metrics.incrementRequests(hsl.getTotalNumberOfRequests());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -765,7 +765,7 @@ public class HRegionServer implements HRegionInterface, HBaseRPCErrorHandler,
|
||||
}
|
||||
MemoryUsage memory =
|
||||
ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
|
||||
return new HServerLoad(requestCount.get(),
|
||||
return new HServerLoad(requestCount.get(),(int)metrics.getRequests(),
|
||||
(int)(memory.getUsed() / 1024 / 1024),
|
||||
(int) (memory.getMax() / 1024 / 1024), regionLoads);
|
||||
}
|
||||
|
@ -364,8 +364,8 @@ public class RegionServerMetrics implements Updater {
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb = Strings.appendKeyValue(sb, "requestsPerSecond",
|
||||
Float.valueOf(this.requests.getPreviousIntervalValue()));
|
||||
sb = Strings.appendKeyValue(sb, "requestsPerSecond", Integer
|
||||
.valueOf((int) this.requests.getPreviousIntervalValue()));
|
||||
sb = Strings.appendKeyValue(sb, "numberOfOnlineRegions",
|
||||
Integer.valueOf(this.regions.get()));
|
||||
sb = Strings.appendKeyValue(sb, "numberOfStores",
|
||||
|
Loading…
x
Reference in New Issue
Block a user