yacy_search_server/htroot/PerformanceMemory_p.html
orbiter c079b18ee7 - refactoring of IntegerHandleIndex and LongHandleIndex: both classes had been merged into the new HandleMap class, which handles (key<byte[]>,n-byte-long) pairs with arbitraty key and value length. This will be useful to get a memory-enhanced/minimized database table indexing.
- added a analysis method that counts bytes that could be saved in case the new HandleMap can be applied in the most efficient way. Look for the log messages beginning with "HeapReader saturation": in most cases we could save about 30% RAM!
- removed the old FlexTable database structure. It was not used any more.
- removed memory statistics in PerformanceMemory about flex tables and node caches (node caches were used by Tree Tables, which are also not used any more)
- add a stub for a steering of navigation functions. That should help to switch off naviagtion computation in cases where it is not demanded by a client

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6034 6c8d7289-2bf4-0310-a012-ef5d649a1542
2009-06-07 21:48:01 +00:00

182 lines
7.6 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>YaCy '#[clientname]#': Performance Settings for Memory</title>
#%env/templates/metas.template%#
<script type="text/javascript" src="js/html.js"></script>
</head>
<body id="PerformanceMemory">
<script type="text/javascript"><!--
function reloadGraph() {
if(document.forms["optionreloadGraph"].option.checked)
document.images["graph"].src="PerformanceGraph.png?time="+(new Date()).getTime();
window.status="";
}
window.setInterval("reloadGraph()", 1000);
//--></script>
#%env/templates/header.template%#
#%env/templates/submenuConfig.template%#
<h2>Performance Settings for Memory</h2>
<p><img src="PerformanceGraph.png" name="graph" alt="PerformanceGraph"/></p>
<p><form name="optionreloadGraph" action="" method="get"><input type="checkbox" name="option" id="autoreload"/> <label for="autoreload">refresh graph</label></form></p>
<p><strong>Memory Usage:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td>&nbsp;<br />Type</td>
<td>After Startup<br />&nbsp;</td>
<td>After Initializations<br />before GC</td>
<td>After Initializations<br />after GC</td>
<td>Now<br />#(gc)#before <a href="PerformanceMemory_p.html?gc=">GC</a>::after GC#(/gc)#</td>
<td>Description<br />&nbsp;</td>
</tr>
<tr class="TableCellLight">
<td class="TableCellDark" align="left">Max</td>
<td align="center" colspan="4">#[memoryMax]# MByte</td>
<td align="left">maximum memory that the JVM will attempt to use</td>
</tr>
<tr class="TableCellLight">
<td class="TableCellDark" align="left">Available</td>
<td align="right">#[memoryAvailAfterStartup]# MByte</td>
<td align="right">#[memoryAvailAfterInitBGC]# MByte</td>
<td align="right">#[memoryAvailAfterInitAGC]# MByte</td>
<td align="right">#[memoryAvailNow]# MByte</td>
<td align="left">total available memory including free for the JVM within maximum</td>
</tr>
<tr class="TableCellLight">
<td class="TableCellDark" align="left">Total</td>
<td align="right">#[memoryTotalAfterStartup]# KByte</td>
<td align="right">#[memoryTotalAfterInitBGC]# KByte</td>
<td align="right">#[memoryTotalAfterInitAGC]# KByte</td>
<td align="right">#[memoryTotalNow]# MByte</td>
<td align="left">total memory taken from the OS</td>
</tr>
<tr class="TableCellLight">
<td class="TableCellDark" align="left">Free</td>
<td align="right">#[memoryFreeAfterStartup]# KByte</td>
<td align="right">#[memoryFreeAfterInitBGC]# KByte</td>
<td align="right">#[memoryFreeAfterInitAGC]# KByte</td>
<td align="right">#[memoryFreeNow]# MByte</td>
<td align="left">free memory in the JVM within total amount</td>
</tr>
<tr class="TableCellLight">
<td class="TableCellDark" align="left">Used</td>
<td align="right">#[memoryUsedAfterStartup]# KByte</td>
<td align="right">#[memoryUsedAfterInitBGC]# KByte</td>
<td align="right">#[memoryUsedAfterInitAGC]# KByte</td>
<td align="right">#[memoryUsedNow]# MByte</td>
<td align="left">used memory in the JVM within total amount</td>
</tr>
</table>
<p><strong>EcoTable RAM Index:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td rowspan="2">Table</td>
<td rowspan="2">Size</td>
<td colspan="2">Key</td>
<td colspan="2">Value</td>
</tr>
<tr class="TableHeader" valign="bottom">
<td>Chunk Size</td>
<td>Used Memory</td>
<td>Chunk Size</td>
<td>Used Memory</td>
</tr>
#{EcoList}#
<tr class="TableCellLight">
<td align="left" class="TableCellDark">#[tableIndexPath]#</td>
<td align="right">#[tableSize]#</td>
<td align="right">#[tableKeyChunkSize]#</td>
<td align="right">#[tableKeyMem]#</td>
<td align="right">#[tableValueChunkSize]#</td>
<td align="right">#[tableValueMem]#</td>
</tr>
#{/EcoList}#
<tr class="TableCellDark">
<td colspan="9">Total Mem = #[EcoIndexTotalMem]# MB</td>
</tr>
</table>
<p><strong>Object Read Caches:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td></td>
<td colspan="9">Read Hit Cache</td>
<td colspan="8">Read Miss Cache</td>
</tr>
<tr class="TableHeader" valign="bottom">
<td>Table</td>
<td>Size</td>
<td>Chunk Size</td>
<td>Used Memory</td>
<td>Read Hit</td>
<td>Read Miss</td>
<td>Write Unique</td>
<td>Write Double</td>
<td>Deletes</td>
<td>Flushes</td>
<td>Size</td>
<td>Chunk Size</td>
<td>Used Memory</td>
<td>Read Hit</td>
<td>Read Miss</td>
<td>Write Unique</td>
<td>Write Double</td>
<td>Deletes</td>
<!-- <td>Flushes</td> -->
</tr>
#{ObjectList}#
<tr class="TableCellLight">
<td align="left" class="TableCellDark">#[objectCachePath]#</td>
<td align="right">#[objectHitCacheCount]#</td>
<td align="right">#[objectHitChunkSize]#</td>
<td align="right">#[objectHitCacheMem]#</td>
<td align="right">#[objectHitCacheReadHit]#</td>
<td align="right">#[objectHitCacheReadMiss]#</td>
<td align="right">#[objectHitCacheWriteUnique]#</td>
<td align="right">#[objectHitCacheWriteDouble]#</td>
<td align="right">#[objectHitCacheDeletes]#</td>
<td align="right">#[objectHitCacheFlushes]#</td>
<td align="right">#[objectMissCacheCount]#</td>
<td align="right">#[objectMissChunkSize]#</td>
<td align="right">#[objectMissCacheMem]#</td>
<td align="right">#[objectMissCacheReadHit]#</td>
<td align="right">#[objectMissCacheReadMiss]#</td>
<td align="right">#[objectMissCacheWriteUnique]#</td>
<td align="right">#[objectMissCacheWriteDouble]#</td>
<td align="right">#[objectMissCacheDeletes]#</td>
<!-- <td align="right">#[objectMissCacheFlushes]#</td> -->
</tr>
#{/ObjectList}#
<tr class="TableCellDark">
<td colspan="19">Total Mem: #[objectHitCacheTotalMem]# MB (hit), #[objectMissCacheTotalMem]# MB (miss); Stop Grow when less than #[objectCacheStopGrow]# MB available left; Start Shrink when less than #[objectCacheStartShrink]# MB availabe left</td>
</tr>
</table>
<!-- other cache sizes -->
<p><strong>Other Caching Structures:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td>Type</td>
<td>Amount</td>
</tr>
<tr class="TableCellLight">
<td>DNSCache</td>
<td>#[namecache.hit]#</td>
</tr>
<tr class="TableCellDark">
<td>DNSNoCache</td>
<td>#[namecache.noCache]#</td>
</tr>
<tr class="TableCellLight">
<td>HashBlacklistedCache</td>
<td>#[blacklistcache.size]#</td>
</tr>
</table>
#%env/templates/footer.template%#
</body>
</html>