added basic performance page

other performance settings can be found on advanced settings

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5375 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
lotus 2008-12-03 14:10:01 +00:00
parent 1a51d9fcfd
commit 5280ad638d
10 changed files with 418 additions and 356 deletions

View File

@ -818,9 +818,6 @@ svnRevision=0
currentSkin=default
# hide some tables
enableSimpleConfig=true
# temporary flag for new database structure. set only true for testing
# ALL DATA THAT IS CREATED WITH THIS FLAG ON WILL BE VOID IN A FINAL VERSION
# table-types: RAM = 0, TREE = 1, FLEX = 2;

View File

@ -5,7 +5,7 @@
#%env/templates/metas.template%#
<script type="text/javascript" src="js/html.js"></script>
</head>
<body id="PerformanceMemory" #(enableSimpleConfig)#::onload="hide('memory_tables')"#(/enableSimpleConfig)#>
<body id="PerformanceMemory">
<script type="text/javascript"><!--
function reloadGraph() {
if(document.forms["optionreloadGraph"].option.checked)
@ -19,234 +19,216 @@
<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">auto-reload graph</label></form></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>
<form action="PerformanceMemory_p.html" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Memory Settings</legend>
<dl>
<dt><label for="Xmx">Memory reserved for JVM</label></dt>
<dd><input name="Xmx" id="Xmx" type="text" size="4" maxlength="4" value="#[Xmx]#" /> MByte&nbsp;
<input type="submit" name="setStartup" value="Set" />&nbsp;
#(setStartupCommit)#::<div class="commit">Accepted change. This will take effect after <strong>restart</strong> of YaCy</div>::<div class="error"></div>#(/setStartupCommit)#
</dd>
</dl>
</fieldset>
</form>
<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>
<a href="javascript:show('memory_tables')">show memory tables</a>
<div id="memory_tables">
<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>FlexTable RAM Index:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td>Table</td>
<td>Count</td>
<td>Chunk Size</td>
<td>Used Memory</td>
</tr>
#{TableList}#
<tr class="TableCellLight">
<td align="left" class="TableCellDark">#[tableIndexPath]#</td>
<td align="right">#[tableIndexCount]#</td>
<td align="right">#[tableIndexChunkSize]#</td>
<td align="right">#[tableIndexMem]#</td>
</tr>
#{/TableList}#
<tr class="TableCellDark">
<td colspan="6">Total Mem = #[TableIndexTotalMem]# MB</td>
</tr>
</table>
<p><strong>Node Caches:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<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>
</tr>
#{NodeList}#
<tr class="TableCellLight">
<td align="left" class="TableCellDark">#[nodeCachePath]#</td>
<td align="right">#[nodeCacheCount]#</td>
<td align="right">#[nodeChunkSize]#</td>
<td align="right">#[nodeCacheMem]#</td>
<td align="right">#[nodeCacheReadHit]#</td>
<td align="right">#[nodeCacheReadMiss]#</td>
<td align="right">#[nodeCacheWriteUnique]#</td>
<td align="right">#[nodeCacheWriteDouble]#</td>
<td align="right">#[nodeCacheDeletes]#</td>
<td align="right">#[nodeCacheFlushes]#</td>
</tr>
#{/NodeList}#
<tr class="TableCellDark">
<td colspan="10">Total Mem = #[nodeCacheTotalMem]# MB; Stop Grow when less than #[nodeCacheStopGrow]# MB available left; Start Shrink when less than #[nodeCacheStartShrink]# MB availabe left</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>
</div>
<p><strong>FlexTable RAM Index:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td>Table</td>
<td>Count</td>
<td>Chunk Size</td>
<td>Used Memory</td>
</tr>
#{TableList}#
<tr class="TableCellLight">
<td align="left" class="TableCellDark">#[tableIndexPath]#</td>
<td align="right">#[tableIndexCount]#</td>
<td align="right">#[tableIndexChunkSize]#</td>
<td align="right">#[tableIndexMem]#</td>
</tr>
#{/TableList}#
<tr class="TableCellDark">
<td colspan="6">Total Mem = #[TableIndexTotalMem]# MB</td>
</tr>
</table>
<p><strong>Node Caches:</strong></p>
<table border="0" cellpadding="2" cellspacing="1">
<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>
</tr>
#{NodeList}#
<tr class="TableCellLight">
<td align="left" class="TableCellDark">#[nodeCachePath]#</td>
<td align="right">#[nodeCacheCount]#</td>
<td align="right">#[nodeChunkSize]#</td>
<td align="right">#[nodeCacheMem]#</td>
<td align="right">#[nodeCacheReadHit]#</td>
<td align="right">#[nodeCacheReadMiss]#</td>
<td align="right">#[nodeCacheWriteUnique]#</td>
<td align="right">#[nodeCacheWriteDouble]#</td>
<td align="right">#[nodeCacheDeletes]#</td>
<td align="right">#[nodeCacheFlushes]#</td>
</tr>
#{/NodeList}#
<tr class="TableCellDark">
<td colspan="10">Total Mem = #[nodeCacheTotalMem]# MB; Stop Grow when less than #[nodeCacheStopGrow]# MB available left; Start Shrink when less than #[nodeCacheStartShrink]# MB availabe left</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>

View File

@ -54,17 +54,8 @@ public class PerformanceMemory_p {
defaultSettings = serverFileUtils.loadHashMap(new File(env.getRootPath(), "defaults/yacy.init"));
}
prop.put("enableSimpleConfig", env.getConfigBool("enableSimpleConfig", true) ? "1" : "0");
prop.put("gc", "0");
if (post != null) {
int xmx = 120; // default maximum heap size
if (post.containsKey("Xmx")) {
try { xmx = Integer.valueOf(post.get("Xmx", "120")).intValue(); } catch (final NumberFormatException e){}
env.setConfig("javastart_Xmx", "Xmx" + xmx + "m");
env.setConfig("javastart_Xms", "Xms" + xmx + "m");
prop.put("setStartupCommit", "1");
}
if (post.containsKey("gc")) {
System.gc();
prop.put("gc", "1");
@ -212,12 +203,6 @@ public class PerformanceMemory_p {
prop.putNum("objectCacheStartShrink", kelondroCache.getMemStartShrink() / (1024 * 1024d));
prop.putNum("objectHitCacheTotalMem", totalhitmem / (1024 * 1024d));
prop.putNum("objectMissCacheTotalMem", totalmissmem / (1024 * 1024d));
// parse initialization memory settings
final String Xmx = env.getConfig("javastart_Xmx", "Xmx120m").substring(3);
prop.put("Xmx", Xmx.substring(0, Xmx.length() - 1));
final String Xms = env.getConfig("javastart_Xms", "Xms120m").substring(3);
prop.put("Xms", Xms.substring(0, Xms.length() - 1));
// other caching structures
long amount = serverDomains.nameCacheHitSize();

View File

@ -5,34 +5,12 @@
#%env/templates/metas.template%#
<script type="text/javascript" src="js/html.js"></script>
</head>
<body id="PerformanceQueues" #(enableSimpleConfig)#::onload="hide('expert_settings')"#(/enableSimpleConfig)#>
<body id="PerformanceQueues">
#%env/templates/header.template%#
#%env/templates/submenuConfig.template%#
<h2>Performance Settings of Queues and Processes</h2>
<form action="PerformanceQueues_p.html" method="post" enctype="multipart/form-data">
<fieldset><legend>Use Default Profile:</legend>
<p>
<select name="defaultFile">
#{profile}#
<option value="#[filename]#"#(used)#:: selected="selected"#(/used)#>#[description]#</option>
#{/profile}#
</select>
and use
<select name="profileSpeed">
#{speed}#
<option value="#[value]#"#(used)#:: selected="selected"#(/used)#>#[label]#</option>
#{/speed}#
</select>
of the defined performance.
</p>
<p><input type="submit" name="submitdefault" value="Save" /> Changes take effect immediately</p>
</fieldset>
<a href="javascript:show('expert_settings')">show expert settings</a>
<div id="expert_settings">
<fieldset><legend>Scheduled tasks overview and waiting time settings:</legend>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
@ -219,57 +197,6 @@
</fieldset>
</form>
</div> <!-- /expert_settings -->
<form action="PerformanceQueues_p.html" method="post" enctype="multipart/form-data">
<fieldset><legend>Online Caution Settings:</legend>
<p>
This is the time that the crawler idles when the proxy is accessed, or a local or remote search is done.
The delay is extended by this time each time the proxy is accessed afterwards.
This shall improve performance of the affected process (proxy or search).
(current delta is #[crawlPauseProxyCurrent]#/#[crawlPauseLocalsearchCurrent]#/#[crawlPauseRemotesearchCurrent]#
seconds since last proxy/local-search/remote-search access.)
</p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td>Online Caution Case</td>
<td>indexer delay (milliseconds) after case occurency</td>
</tr>
<tr class="TableCellDark">
<td>Proxy:</td>
<td align="right"><input id="crawlPauseProxy" name="crawlPauseProxy" type="text" size="20" maxlength="100" value="#[crawlPauseProxy]#" /></td>
</tr>
<tr class="TableCellDark">
<td>Local Search:</td>
<td align="right"><input id="crawlPauseLocalsearch" name="crawlPauseLocalsearch" type="text" size="20" maxlength="100" value="#[crawlPauseLocalsearch]#" /></td>
</tr>
<tr class="TableCellDark">
<td>Remote Search:</td>
<td align="right"><input id="crawlPauseRemotesearch" name="crawlPauseRemotesearch" type="text" size="20" maxlength="100" value="#[crawlPauseRemotesearch]#" /></td>
</tr>
<tr class="TableCellLight">
<td align="left" colspan="2"><input type="submit" name="onlineCautionSubmit" value="Enter New Parameters" />
Changes take effect immediately</td>
</tr>
</table>
</fieldset>
</form>
<form action="PerformanceQueues_p.html" method="post" enctype="multipart/form-data">
<fieldset><legend>YaCy Priority Settings</legend>
<dl>
<dt><label for="priority">YaCy Process Priority</label>:</dt>
<dd><select id="priority" name="YaCyPriority">
<option value="0"#(priority_normal)#:: selected="selected"#(/priority_normal)#>Normal</option>
<option value="10"#(priority_below)#:: selected="selected"#(/priority_below)#>Below normal</option>
<option value="20"#(priority_low)#:: selected="selected"#(/priority_low)#>Idle</option>
</select></dd>
<dt><input type="submit" name="PrioritySubmit" value="Set new Priority" /></dt>
<dd>Changes take effect after <strong>restart</strong> of YaCy</dd>
</dl>
</fieldset>
</form>
#%env/templates/footer.template%#
</body>
</html>

View File

@ -56,12 +56,21 @@ public class PerformanceQueues_p {
final plasmaSwitchboard switchboard = (plasmaSwitchboard) sb;
final serverObjects prop = new serverObjects();
File defaultSettingsFile = new File(switchboard.getRootPath(), "defaults/yacy.init");
if(post != null && post.containsKey("defaultFile")) {
// TODO check file-path!
final File value = new File(switchboard.getRootPath(), post.get("defaultFile", "defaults/yacy.init"));
// check if value is readable file
if(value.exists() && value.isFile() && value.canRead()) {
defaultSettingsFile = value;
if(post != null) {
if(post.containsKey("defaultFile")){
// TODO check file-path!
final File value = new File(switchboard.getRootPath(), post.get("defaultFile", "defaults/yacy.init"));
// check if value is readable file
if(value.exists() && value.isFile() && value.canRead()) {
defaultSettingsFile = value;
}
}
if (post.containsKey("Xmx")) {
int xmx = 120; // default maximum heap size
try { xmx = Integer.valueOf(post.get("Xmx", "120")).intValue(); } catch (final NumberFormatException e){}
sb.setConfig("javastart_Xmx", "Xmx" + xmx + "m");
sb.setConfig("javastart_Xms", "Xms" + xmx + "m");
prop.put("setStartupCommit", "1");
}
}
final Map<String, String> defaultSettings = ((post == null) || (!(post.containsKey("submitdefault")))) ? null : serverFileUtils.loadHashMap(defaultSettingsFile);
@ -72,8 +81,6 @@ public class PerformanceQueues_p {
final boolean xml = (header.get("PATH")).endsWith(".xml");
prop.setLocalized(!xml);
prop.put("enableSimpleConfig", sb.getConfigBool("enableSimpleConfig", true) ? "1" : "0");
// calculate totals
long blocktime_total = 0, sleeptime_total = 0, exectime_total = 0;
while (threads.hasNext()) {
@ -315,6 +322,12 @@ public class PerformanceQueues_p {
prop.put("priority_below",(curr_prio==10) ? "1" : "0");
prop.put("priority_low",(curr_prio==20) ? "1" : "0");
// parse initialization memory settings
final String Xmx = sb.getConfig("javastart_Xmx", "Xmx120m").substring(3);
prop.put("Xmx", Xmx.substring(0, Xmx.length() - 1));
final String Xms = sb.getConfig("javastart_Xms", "Xms120m").substring(3);
prop.put("Xms", Xms.substring(0, Xms.length() - 1));
// return rewrite values for templates
return prop;
}

109
htroot/Performance_p.html Normal file
View File

@ -0,0 +1,109 @@
<!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</title>
#%env/templates/metas.template%#
<script type="text/javascript" src="js/html.js"></script>
</head>
<body id="PerformanceQueues">
<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</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>
<form action="Performance_p.html" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Memory Settings</legend>
<dl>
<dt><label for="Xmx">Memory reserved for JVM</label></dt>
<dd><input name="Xmx" id="Xmx" type="text" size="4" maxlength="4" value="#[Xmx]#" /> MByte&nbsp;
<input type="submit" name="setStartup" value="Set" />&nbsp;
#(setStartupCommit)#::<div class="commit">Accepted change. This will take effect after <strong>restart</strong> of YaCy</div>::<div class="error"></div>#(/setStartupCommit)#
</dd>
</dl>
</fieldset>
</form>
<form action="Performance_p.html" method="post" enctype="multipart/form-data">
<fieldset><legend>Use Default Profile:</legend>
<p>
<select name="defaultFile">
#{profile}#
<option value="#[filename]#"#(used)#:: selected="selected"#(/used)#>#[description]#</option>
#{/profile}#
</select>
and use
<select name="profileSpeed">
#{speed}#
<option value="#[value]#"#(used)#:: selected="selected"#(/used)#>#[label]#</option>
#{/speed}#
</select>
of the defined performance.
</p>
<p><input type="submit" name="submitdefault" value="Save" /> Changes take effect immediately</p>
</fieldset>
</form>
<form action="Performance_p.html" method="post" enctype="multipart/form-data">
<fieldset><legend>YaCy Priority Settings</legend>
<dl>
<dt><label for="priority">YaCy Process Priority</label>:</dt>
<dd><select id="priority" name="YaCyPriority">
<option value="0"#(priority_normal)#:: selected="selected"#(/priority_normal)#>Normal</option>
<option value="10"#(priority_below)#:: selected="selected"#(/priority_below)#>Below normal</option>
<option value="20"#(priority_low)#:: selected="selected"#(/priority_low)#>Idle</option>
</select></dd>
<dt><input type="submit" name="PrioritySubmit" value="Set new Priority" /></dt>
<dd>Changes take effect after <strong>restart</strong> of YaCy</dd>
</dl>
</fieldset>
</form>
<form action="Performance_p.html" method="post" enctype="multipart/form-data">
<fieldset><legend>Online Caution Settings:</legend>
<p>
This is the time that the crawler idles when the proxy is accessed, or a local or remote search is done.
The delay is extended by this time each time the proxy is accessed afterwards.
This shall improve performance of the affected process (proxy or search).
(current delta is #[crawlPauseProxyCurrent]#/#[crawlPauseLocalsearchCurrent]#/#[crawlPauseRemotesearchCurrent]#
seconds since last proxy/local-search/remote-search access.)
</p>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<td>Online Caution Case</td>
<td>indexer delay (milliseconds) after case occurency</td>
</tr>
<tr class="TableCellDark">
<td>Proxy:</td>
<td align="right"><input id="crawlPauseProxy" name="crawlPauseProxy" type="text" size="20" maxlength="100" value="#[crawlPauseProxy]#" /></td>
</tr>
<tr class="TableCellDark">
<td>Local Search:</td>
<td align="right"><input id="crawlPauseLocalsearch" name="crawlPauseLocalsearch" type="text" size="20" maxlength="100" value="#[crawlPauseLocalsearch]#" /></td>
</tr>
<tr class="TableCellDark">
<td>Remote Search:</td>
<td align="right"><input id="crawlPauseRemotesearch" name="crawlPauseRemotesearch" type="text" size="20" maxlength="100" value="#[crawlPauseRemotesearch]#" /></td>
</tr>
<tr class="TableCellLight">
<td align="left" colspan="2"><input type="submit" name="onlineCautionSubmit" value="Enter New Parameters" />
Changes take effect immediately</td>
</tr>
</table>
</fieldset>
</form>
#%env/templates/footer.template%#
</body>
</html>

37
htroot/Performance_p.java Normal file
View File

@ -0,0 +1,37 @@
//Performace_p.java
//-----------------------
//part of YaCy
//(C) by Michael Peter Christen; mc@yacy.net
//first published on http://www.anomic.de
//Frankfurt, Germany, 2004, 2005
//last major change: 16.02.2005
//
//This program is free software; you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation; either version 2 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//You must compile this file with
//javac -classpath .:../classes Network.java
//if the shell's current path is HTROOT
import de.anomic.http.httpRequestHeader;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
public class Performance_p {
public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch<?> sb) {
return PerformanceQueues_p.respond(header, post, sb);
}
}

View File

@ -28,6 +28,11 @@
but <strong>forgot your administration password</strong>, you must stop the proxy,
delete the file 'DATA/SETTINGS/yacy.conf' in the YaCy application root folder and start YaCy again.
</p>
<ul class="settingsMenu">
<li><a href="PerformanceQueues_p.html">Performance Settings of Queues and Processes</a></li>
<li><a href="PerformanceMemory_p.html">Performance Settings for Memory</a></li>
<li><a href="PerformanceSearch_p.html">Performance Settings of Search Sequence</a></li>
</ul>
<ul class="settingsMenu">
<li><a href="?page=ServerAccess">Server Access Settings</a></li>
<li><a href="?page=ProxyAccess">Proxy Access Settings</a></li>

View File

@ -10,9 +10,7 @@
</div>
<div class="SubMenu">
<ul class="SubMenu">
<li><a href="/PerformanceQueues_p.html" class="MenuItemLink lock">Performance</a></li>
<li><a href="/PerformanceMemory_p.html" class="MenuItemLink lock">Memory</a></li>
<li><a href="/PerformanceSearch_p.html" class="MenuItemLink lock">Search Sequence</a></li>
<li><a href="/Performance_p.html" class="MenuItemLink lock">Performance</a></li>
<li><a href="/Settings_p.html" class="MenuItemLink lock">Advanced Settings</a></li>
<li><a href="/ConfigProperties_p.html" class="MenuItemLink lock">Advanced Properties</a></li>
</ul>

View File

@ -1417,6 +1417,37 @@ Attributes==Attribute
"\#\(page\)\#::Process All News::Delete All News::Abort Publication of All News::Delete All News\#\(/page\)\#"=="#(page)#::Alle&nbsp;News&nbsp;als&nbsp;gelesen&nbsp;markieren::Alle&nbsp;News&nbsp;l&ouml;schen::Verbreitung&nbsp;von&nbsp;allen&nbsp;News&nbsp;abbrechen::Alle&nbsp;News&nbsp;l&ouml;schen#(/page)#"
#-----------------------------
#File: Performance_p.html
#---------------------------
Performance Settings==Leistungseinstellungen
Memory Settings==Speicher Einstellungen
Memory reserved for JVM==F&uuml;r JVM reservierter Speicher
"Set"=="Setzen"
Accepted change. This will take effect after <strong>restart</strong> of YaCy==&Auml;nderung akzeptiert. Diese werden erst nach einem <strong>Neustart</strong> von YaCy wirksam
refresh graph==aktualisiere Diagramm
show memory tables==Zeige Speicher-Tabellen
Use Default Profile:==Standard Profil benutzen:
and use==und nutze
of the defined performance.==der vorgegebenen Geschwindigkeit.
Save==Speichern
Changes take effect immediately==&Auml;nderungen werden sofort wirksam
Online Caution Settings==Online Caution Einstellungen
This is the time that the crawler idles when the proxy is accessed, or a local or remote search is done.==Dies ist die Zeit die der Crawler pausiert, wenn auf den Proxy zugegriffen wird, oder eine lokale oder globale Suche durchgef&uuml;hrt wird.
The delay is extended by this time each time the proxy is accessed afterwards.==Die normale Verz&ouml;gerung wird um diese Zeit verl&auml;ngert, wenn auf den Proxy zugegriffen wird.
This shall improve performance of the affected process \(proxy or search\).==Dies soll die Performance des betroffenen Prozesses (Proxy oder Suche) erh&ouml;hen.
\(current delta is==(Seit dem letzten Zugriff auf Proxy/Lokale-Suche/Globale-Suche sind
seconds since last proxy/local-search/remote-search access.\)==Sekunden vergangen.)
Enter New Parameters==Neue Parameter eintragen
milliseconds==Millisekunden
YaCy Priority Settings==YaCy Priorit&auml;t Einstellungen
YaCy Process Priority==YaCy Prozess Priorit&auml;t
#Normal==Normal
Below normal==unter Normal
Idle</option>==unt&auml;tig</option>
"Set new Priority"=="Neue Priorit&auml;t speichern"
Changes take effect after <strong>restart</strong> of YaCy==&Auml;nderungen werden erst nach einem <strong>Neustart</strong> von YaCy wirksam.
#-----------------------------
#File: PerformanceQueues_p.html
#---------------------------
Performance Settings of Queues and Processes==Performanceeinstellungen f&uuml;r Puffer und Prozesse
@ -1439,11 +1470,6 @@ Short Mem<br />Cycles==Durchl.<br />ohne ausr. Speicher
Minimum of<br />Required Memory==Mindestens<br />ben&ouml;tigter Speicher
Full Description==vollst&auml;ndige Beschreibung
Submit New Delay Values==Neue Verz&ouml;gerungswerte speichern
Use Default Profile:==Standard Profil benutzen:
Save==Speichern
and use==und nutze
of the defined performance.==der vorgegebenen Geschwindigkeit.
show expert settings==Zeige Experten-Einstellungen
Changes take effect immediately==&Auml;nderungen werden sofort wirksam
Cache Settings:==Cache Einstellungen:
Cache Type==Cache Typ
@ -1475,26 +1501,12 @@ Thread pool settings:==Threadpool Einstellungen:
maximum Active==max. aktiv
current Active==derzeit aktiv
Enter new Threadpool Configuration==neue Threadpoolkonfiguration eintragen
YaCy Priority Settings==YaCy Priorit&auml;t Einstellungen
YaCy Process Priority==YaCy Prozess Priorit&auml;t
#Normal==Normal
Below normal==unter Normal
Idle</option>==unt&auml;tig</option>
"Set new Priority"=="Neue Priorit&auml;t speichern"
Changes take effect after <strong>restart</strong> of YaCy==&Auml;nderungen werden erst nach einem <strong>Neustart</strong> von YaCy wirksam.
Proxy Performance Settings==Proxy Performance Einstellungen
This is the time that the crawler idles when the proxy is accessed, or a local or remote search is done.==Dies ist die Zeit die der Crawler pausiert, wenn auf den Proxy zugegriffen wird, oder eine lokale oder globale Suche durchgef&uuml;hrt wird.
The delay is extended by this time each time the proxy is accessed afterwards.==Die normale Verz&ouml;gerung wird um diese Zeit verl&auml;ngert, wenn auf den Proxy zugegriffen wird.
This shall improve performance of the affected process \(proxy or search\).==Dies soll die Performance des betroffenen Prozesses (Proxy oder Suche) erh&ouml;hen.
\(current delta is==(Seit dem letzten Zugriff auf Proxy/Lokale-Suche/Globale-Suche sind
seconds since last proxy/local-search/remote-search access.\)==Sekunden vergangen.)
Enter New Parameters==Neue Parameter eintragen
milliseconds==Millisekunden
#-----------------------------
#File: PerformanceMemory_p.html
#---------------------------
Performance Settings for Memory==Performanceeinstellungen f&uuml;r Speicher
refresh graph==aktualisiere Diagramm
Memory Usage:==Speichernutzung:
After Startup==Nach Start
After Initializations==Nach Initialisierungen
@ -1512,12 +1524,6 @@ total memory taken from the OS==gesamter vom Betriebssystem zugewiesener Speiche
free memory in the JVM within total amount==freier Speicher in der JVM innerhalb des Gesamten Speichers
>Used<==>Belegt<
used memory in the JVM within total amount==genutzter Speicher in der JVM innerhalb des Gesamten Speichers
Memory Settings==Speicher Einstellungen
Memory reserved for JVM==F&uuml;r JVM reservierter Speicher
"Set"=="Setzen"
Accepted change. This will take effect after <strong>restart</strong> of YaCy==&Auml;nderung akzeptiert. Diese werden erst nach einem <strong>Neustart</strong> von YaCy wirksam
auto-reload graph==Grafik automatisch neu laden
show memory tables==Zeige Speicher-Tabellen
EcoTable RAM Index:==EcoTabelle RAM Index:
>Size==>Gr&ouml;sse
>Key==>Schl&uuml;ssel
@ -1679,6 +1685,9 @@ Advanced Settings==Erweiterte Einstellungen
If you want to restore all settings to the default values,==Wenn Sie alle Einstellungen auf die urspr&uuml;nglichen Werte zur&uuml;cksetzen wollen,
but <strong>forgot your administration password</strong>, you must stop the proxy,==aber Ihr <strong>Administatorpasswort vergessen haben</strong>, m&uuml;ssen Sie YaCy stoppen,
delete the file 'DATA/SETTINGS/yacy.conf' in the YaCy application root folder and start YaCy again.==die Datei 'DATA/SETTINGS/yacy.conf' im YaCy Hauptordner l&ouml;schen und YaCy neu starten.
Performance Settings of Queues and Processes==Performanceeinstellungen f&uuml;r Puffer und Prozesse
Performance Settings for Memory==Performanceeinstellungen f&uuml;r Speicher
Performance Settings of Search Sequence==Performanceeinstellungen des Suchablaufs
Server Access Settings==Server Zugangs-Einstellungen
Proxy Access Settings==Proxy Zugangs-Einstellungen
Content Parser Settings==Inhalt Parser Einstellungen