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
pull/1/head
lotus 16 years ago
parent 1a51d9fcfd
commit 5280ad638d

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

@ -5,7 +5,7 @@
#%env/templates/metas.template%# #%env/templates/metas.template%#
<script type="text/javascript" src="js/html.js"></script> <script type="text/javascript" src="js/html.js"></script>
</head> </head>
<body id="PerformanceMemory" #(enableSimpleConfig)#::onload="hide('memory_tables')"#(/enableSimpleConfig)#> <body id="PerformanceMemory">
<script type="text/javascript"><!-- <script type="text/javascript"><!--
function reloadGraph() { function reloadGraph() {
if(document.forms["optionreloadGraph"].option.checked) if(document.forms["optionreloadGraph"].option.checked)
@ -19,234 +19,216 @@
<h2>Performance Settings for Memory</h2> <h2>Performance Settings for Memory</h2>
<p><img src="PerformanceGraph.png" name="graph" alt="PerformanceGraph"/></p> <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"> <p><strong>EcoTable RAM Index:</strong></p>
<fieldset> <table border="0" cellpadding="2" cellspacing="1">
<legend>Memory Settings</legend> <tr class="TableHeader" valign="bottom">
<dl> <td rowspan="2">Table</td>
<dt><label for="Xmx">Memory reserved for JVM</label></dt> <td rowspan="2">Size</td>
<dd><input name="Xmx" id="Xmx" type="text" size="4" maxlength="4" value="#[Xmx]#" /> MByte&nbsp; <td colspan="2">Key</td>
<input type="submit" name="setStartup" value="Set" />&nbsp; <td colspan="2">Value</td>
#(setStartupCommit)#::<div class="commit">Accepted change. This will take effect after <strong>restart</strong> of YaCy</div>::<div class="error"></div>#(/setStartupCommit)# </tr>
</dd> <tr class="TableHeader" valign="bottom">
</dl> <td>Chunk Size</td>
</fieldset> <td>Used Memory</td>
</form> <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> <p><strong>FlexTable RAM Index:</strong></p>
<div id="memory_tables"> <table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom">
<p><strong>Memory Usage:</strong></p> <td>Table</td>
<table border="0" cellpadding="2" cellspacing="1"> <td>Count</td>
<tr class="TableHeader" valign="bottom"> <td>Chunk Size</td>
<td>&nbsp;<br />Type</td> <td>Used Memory</td>
<td>After Startup<br />&nbsp;</td> </tr>
<td>After Initializations<br />before GC</td> #{TableList}#
<td>After Initializations<br />after GC</td> <tr class="TableCellLight">
<td>Now<br />#(gc)#before <a href="PerformanceMemory_p.html?gc=">GC</a>::after GC#(/gc)#</td> <td align="left" class="TableCellDark">#[tableIndexPath]#</td>
<td>Description<br />&nbsp;</td> <td align="right">#[tableIndexCount]#</td>
</tr> <td align="right">#[tableIndexChunkSize]#</td>
<tr class="TableCellLight"> <td align="right">#[tableIndexMem]#</td>
<td class="TableCellDark" align="left">Max</td> </tr>
<td align="center" colspan="4">#[memoryMax]# MByte</td> #{/TableList}#
<td align="left">maximum memory that the JVM will attempt to use</td> <tr class="TableCellDark">
</tr> <td colspan="6">Total Mem = #[TableIndexTotalMem]# MB</td>
<tr class="TableCellLight"> </tr>
<td class="TableCellDark" align="left">Available</td> </table>
<td align="right">#[memoryAvailAfterStartup]# MByte</td>
<td align="right">#[memoryAvailAfterInitBGC]# MByte</td> <p><strong>Node Caches:</strong></p>
<td align="right">#[memoryAvailAfterInitAGC]# MByte</td> <table border="0" cellpadding="2" cellspacing="1">
<td align="right">#[memoryAvailNow]# MByte</td> <tr class="TableHeader" valign="bottom">
<td align="left">total available memory including free for the JVM within maximum</td> <td>Table</td>
</tr> <td>Size</td>
<tr class="TableCellLight"> <td>Chunk Size</td>
<td class="TableCellDark" align="left">Total</td> <td>Used Memory</td>
<td align="right">#[memoryTotalAfterStartup]# KByte</td> <td>Read Hit</td>
<td align="right">#[memoryTotalAfterInitBGC]# KByte</td> <td>Read Miss</td>
<td align="right">#[memoryTotalAfterInitAGC]# KByte</td> <td>Write Unique</td>
<td align="right">#[memoryTotalNow]# MByte</td> <td>Write Double</td>
<td align="left">total memory taken from the OS</td> <td>Deletes</td>
</tr> <td>Flushes</td>
<tr class="TableCellLight"> </tr>
<td class="TableCellDark" align="left">Free</td> #{NodeList}#
<td align="right">#[memoryFreeAfterStartup]# KByte</td> <tr class="TableCellLight">
<td align="right">#[memoryFreeAfterInitBGC]# KByte</td> <td align="left" class="TableCellDark">#[nodeCachePath]#</td>
<td align="right">#[memoryFreeAfterInitAGC]# KByte</td> <td align="right">#[nodeCacheCount]#</td>
<td align="right">#[memoryFreeNow]# MByte</td> <td align="right">#[nodeChunkSize]#</td>
<td align="left">free memory in the JVM within total amount</td> <td align="right">#[nodeCacheMem]#</td>
</tr> <td align="right">#[nodeCacheReadHit]#</td>
<tr class="TableCellLight"> <td align="right">#[nodeCacheReadMiss]#</td>
<td class="TableCellDark" align="left">Used</td> <td align="right">#[nodeCacheWriteUnique]#</td>
<td align="right">#[memoryUsedAfterStartup]# KByte</td> <td align="right">#[nodeCacheWriteDouble]#</td>
<td align="right">#[memoryUsedAfterInitBGC]# KByte</td> <td align="right">#[nodeCacheDeletes]#</td>
<td align="right">#[memoryUsedAfterInitAGC]# KByte</td> <td align="right">#[nodeCacheFlushes]#</td>
<td align="right">#[memoryUsedNow]# MByte</td> </tr>
<td align="left">used memory in the JVM within total amount</td> #{/NodeList}#
</tr> <tr class="TableCellDark">
</table> <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>
<p><strong>EcoTable RAM Index:</strong></p> </table>
<table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom"> <p><strong>Object Read Caches:</strong></p>
<td rowspan="2">Table</td> <table border="0" cellpadding="2" cellspacing="1">
<td rowspan="2">Size</td> <tr class="TableHeader" valign="bottom">
<td colspan="2">Key</td> <td></td>
<td colspan="2">Value</td> <td colspan="9">Read Hit Cache</td>
</tr> <td colspan="8">Read Miss Cache</td>
<tr class="TableHeader" valign="bottom"> </tr>
<td>Chunk Size</td> <tr class="TableHeader" valign="bottom">
<td>Used Memory</td> <td>Table</td>
<td>Chunk Size</td> <td>Size</td>
<td>Used Memory</td> <td>Chunk Size</td>
</tr> <td>Used Memory</td>
#{EcoList}# <td>Read Hit</td>
<tr class="TableCellLight"> <td>Read Miss</td>
<td align="left" class="TableCellDark">#[tableIndexPath]#</td> <td>Write Unique</td>
<td align="right">#[tableSize]#</td> <td>Write Double</td>
<td align="right">#[tableKeyChunkSize]#</td> <td>Deletes</td>
<td align="right">#[tableKeyMem]#</td> <td>Flushes</td>
<td align="right">#[tableValueChunkSize]#</td> <td>Size</td>
<td align="right">#[tableValueMem]#</td> <td>Chunk Size</td>
</tr> <td>Used Memory</td>
#{/EcoList}# <td>Read Hit</td>
<tr class="TableCellDark"> <td>Read Miss</td>
<td colspan="9">Total Mem = #[EcoIndexTotalMem]# MB</td> <td>Write Unique</td>
</tr> <td>Write Double</td>
</table> <td>Deletes</td>
<!-- <td>Flushes</td> -->
<p><strong>FlexTable RAM Index:</strong></p> </tr>
<table border="0" cellpadding="2" cellspacing="1"> #{ObjectList}#
<tr class="TableHeader" valign="bottom"> <tr class="TableCellLight">
<td>Table</td> <td align="left" class="TableCellDark">#[objectCachePath]#</td>
<td>Count</td> <td align="right">#[objectHitCacheCount]#</td>
<td>Chunk Size</td> <td align="right">#[objectHitChunkSize]#</td>
<td>Used Memory</td> <td align="right">#[objectHitCacheMem]#</td>
</tr> <td align="right">#[objectHitCacheReadHit]#</td>
#{TableList}# <td align="right">#[objectHitCacheReadMiss]#</td>
<tr class="TableCellLight"> <td align="right">#[objectHitCacheWriteUnique]#</td>
<td align="left" class="TableCellDark">#[tableIndexPath]#</td> <td align="right">#[objectHitCacheWriteDouble]#</td>
<td align="right">#[tableIndexCount]#</td> <td align="right">#[objectHitCacheDeletes]#</td>
<td align="right">#[tableIndexChunkSize]#</td> <td align="right">#[objectHitCacheFlushes]#</td>
<td align="right">#[tableIndexMem]#</td> <td align="right">#[objectMissCacheCount]#</td>
</tr> <td align="right">#[objectMissChunkSize]#</td>
#{/TableList}# <td align="right">#[objectMissCacheMem]#</td>
<tr class="TableCellDark"> <td align="right">#[objectMissCacheReadHit]#</td>
<td colspan="6">Total Mem = #[TableIndexTotalMem]# MB</td> <td align="right">#[objectMissCacheReadMiss]#</td>
</tr> <td align="right">#[objectMissCacheWriteUnique]#</td>
</table> <td align="right">#[objectMissCacheWriteDouble]#</td>
<td align="right">#[objectMissCacheDeletes]#</td>
<p><strong>Node Caches:</strong></p> <!-- <td align="right">#[objectMissCacheFlushes]#</td> -->
<table border="0" cellpadding="2" cellspacing="1"> </tr>
<tr class="TableHeader" valign="bottom"> #{/ObjectList}#
<td>Table</td> <tr class="TableCellDark">
<td>Size</td> <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>
<td>Chunk Size</td> </tr>
<td>Used Memory</td> </table>
<td>Read Hit</td>
<td>Read Miss</td> <!-- other cache sizes -->
<td>Write Unique</td> <p><strong>Other Caching Structures:</strong></p>
<td>Write Double</td> <table border="0" cellpadding="2" cellspacing="1">
<td>Deletes</td> <tr class="TableHeader" valign="bottom">
<td>Flushes</td> <td>Type</td>
</tr> <td>Amount</td>
#{NodeList}# </tr>
<tr class="TableCellLight"> <tr class="TableCellLight">
<td align="left" class="TableCellDark">#[nodeCachePath]#</td> <td>DNSCache</td>
<td align="right">#[nodeCacheCount]#</td> <td>#[namecache.hit]#</td>
<td align="right">#[nodeChunkSize]#</td> </tr>
<td align="right">#[nodeCacheMem]#</td> <tr class="TableCellDark">
<td align="right">#[nodeCacheReadHit]#</td> <td>DNSNoCache</td>
<td align="right">#[nodeCacheReadMiss]#</td> <td>#[namecache.noCache]#</td>
<td align="right">#[nodeCacheWriteUnique]#</td> </tr>
<td align="right">#[nodeCacheWriteDouble]#</td> <tr class="TableCellLight">
<td align="right">#[nodeCacheDeletes]#</td> <td>HashBlacklistedCache</td>
<td align="right">#[nodeCacheFlushes]#</td> <td>#[blacklistcache.size]#</td>
</tr> </tr>
#{/NodeList}# </table>
<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>
#%env/templates/footer.template%# #%env/templates/footer.template%#
</body> </body>

@ -54,17 +54,8 @@ public class PerformanceMemory_p {
defaultSettings = serverFileUtils.loadHashMap(new File(env.getRootPath(), "defaults/yacy.init")); defaultSettings = serverFileUtils.loadHashMap(new File(env.getRootPath(), "defaults/yacy.init"));
} }
prop.put("enableSimpleConfig", env.getConfigBool("enableSimpleConfig", true) ? "1" : "0");
prop.put("gc", "0"); prop.put("gc", "0");
if (post != null) { 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")) { if (post.containsKey("gc")) {
System.gc(); System.gc();
prop.put("gc", "1"); prop.put("gc", "1");
@ -212,12 +203,6 @@ public class PerformanceMemory_p {
prop.putNum("objectCacheStartShrink", kelondroCache.getMemStartShrink() / (1024 * 1024d)); prop.putNum("objectCacheStartShrink", kelondroCache.getMemStartShrink() / (1024 * 1024d));
prop.putNum("objectHitCacheTotalMem", totalhitmem / (1024 * 1024d)); prop.putNum("objectHitCacheTotalMem", totalhitmem / (1024 * 1024d));
prop.putNum("objectMissCacheTotalMem", totalmissmem / (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 // other caching structures
long amount = serverDomains.nameCacheHitSize(); long amount = serverDomains.nameCacheHitSize();

@ -5,34 +5,12 @@
#%env/templates/metas.template%# #%env/templates/metas.template%#
<script type="text/javascript" src="js/html.js"></script> <script type="text/javascript" src="js/html.js"></script>
</head> </head>
<body id="PerformanceQueues" #(enableSimpleConfig)#::onload="hide('expert_settings')"#(/enableSimpleConfig)#> <body id="PerformanceQueues">
#%env/templates/header.template%# #%env/templates/header.template%#
#%env/templates/submenuConfig.template%# #%env/templates/submenuConfig.template%#
<h2>Performance Settings of Queues and Processes</h2> <h2>Performance Settings of Queues and Processes</h2>
<form action="PerformanceQueues_p.html" method="post" enctype="multipart/form-data"> <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> <fieldset><legend>Scheduled tasks overview and waiting time settings:</legend>
<table border="0" cellpadding="2" cellspacing="1"> <table border="0" cellpadding="2" cellspacing="1">
<tr class="TableHeader" valign="bottom"> <tr class="TableHeader" valign="bottom">
@ -219,57 +197,6 @@
</fieldset> </fieldset>
</form> </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%# #%env/templates/footer.template%#
</body> </body>
</html> </html>

@ -56,12 +56,21 @@ public class PerformanceQueues_p {
final plasmaSwitchboard switchboard = (plasmaSwitchboard) sb; final plasmaSwitchboard switchboard = (plasmaSwitchboard) sb;
final serverObjects prop = new serverObjects(); final serverObjects prop = new serverObjects();
File defaultSettingsFile = new File(switchboard.getRootPath(), "defaults/yacy.init"); File defaultSettingsFile = new File(switchboard.getRootPath(), "defaults/yacy.init");
if(post != null && post.containsKey("defaultFile")) { if(post != null) {
// TODO check file-path! if(post.containsKey("defaultFile")){
final File value = new File(switchboard.getRootPath(), post.get("defaultFile", "defaults/yacy.init")); // TODO check file-path!
// check if value is readable file final File value = new File(switchboard.getRootPath(), post.get("defaultFile", "defaults/yacy.init"));
if(value.exists() && value.isFile() && value.canRead()) { // check if value is readable file
defaultSettingsFile = value; 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); 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"); final boolean xml = (header.get("PATH")).endsWith(".xml");
prop.setLocalized(!xml); prop.setLocalized(!xml);
prop.put("enableSimpleConfig", sb.getConfigBool("enableSimpleConfig", true) ? "1" : "0");
// calculate totals // calculate totals
long blocktime_total = 0, sleeptime_total = 0, exectime_total = 0; long blocktime_total = 0, sleeptime_total = 0, exectime_total = 0;
while (threads.hasNext()) { while (threads.hasNext()) {
@ -315,6 +322,12 @@ public class PerformanceQueues_p {
prop.put("priority_below",(curr_prio==10) ? "1" : "0"); prop.put("priority_below",(curr_prio==10) ? "1" : "0");
prop.put("priority_low",(curr_prio==20) ? "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 rewrite values for templates
return prop; return prop;
} }

@ -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>

@ -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);
}
}

@ -28,6 +28,11 @@
but <strong>forgot your administration password</strong>, you must stop the proxy, 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. delete the file 'DATA/SETTINGS/yacy.conf' in the YaCy application root folder and start YaCy again.
</p> </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"> <ul class="settingsMenu">
<li><a href="?page=ServerAccess">Server Access Settings</a></li> <li><a href="?page=ServerAccess">Server Access Settings</a></li>
<li><a href="?page=ProxyAccess">Proxy Access Settings</a></li> <li><a href="?page=ProxyAccess">Proxy Access Settings</a></li>

@ -10,9 +10,7 @@
</div> </div>
<div class="SubMenu"> <div class="SubMenu">
<ul class="SubMenu"> <ul class="SubMenu">
<li><a href="/PerformanceQueues_p.html" class="MenuItemLink lock">Performance</a></li> <li><a href="/Performance_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="/Settings_p.html" class="MenuItemLink lock">Advanced Settings</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> <li><a href="/ConfigProperties_p.html" class="MenuItemLink lock">Advanced Properties</a></li>
</ul> </ul>

@ -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)#" "\#\(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 #File: PerformanceQueues_p.html
#--------------------------- #---------------------------
Performance Settings of Queues and Processes==Performanceeinstellungen f&uuml;r Puffer und Prozesse 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 Minimum of<br />Required Memory==Mindestens<br />ben&ouml;tigter Speicher
Full Description==vollst&auml;ndige Beschreibung Full Description==vollst&auml;ndige Beschreibung
Submit New Delay Values==Neue Verz&ouml;gerungswerte speichern 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 Changes take effect immediately==&Auml;nderungen werden sofort wirksam
Cache Settings:==Cache Einstellungen: Cache Settings:==Cache Einstellungen:
Cache Type==Cache Typ Cache Type==Cache Typ
@ -1475,26 +1501,12 @@ Thread pool settings:==Threadpool Einstellungen:
maximum Active==max. aktiv maximum Active==max. aktiv
current Active==derzeit aktiv current Active==derzeit aktiv
Enter new Threadpool Configuration==neue Threadpoolkonfiguration eintragen 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 #File: PerformanceMemory_p.html
#--------------------------- #---------------------------
Performance Settings for Memory==Performanceeinstellungen f&uuml;r Speicher Performance Settings for Memory==Performanceeinstellungen f&uuml;r Speicher
refresh graph==aktualisiere Diagramm
Memory Usage:==Speichernutzung: Memory Usage:==Speichernutzung:
After Startup==Nach Start After Startup==Nach Start
After Initializations==Nach Initialisierungen 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 free memory in the JVM within total amount==freier Speicher in der JVM innerhalb des Gesamten Speichers
>Used<==>Belegt< >Used<==>Belegt<
used memory in the JVM within total amount==genutzter Speicher in der JVM innerhalb des Gesamten Speichers 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: EcoTable RAM Index:==EcoTabelle RAM Index:
>Size==>Gr&ouml;sse >Size==>Gr&ouml;sse
>Key==>Schl&uuml;ssel >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, 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, 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. 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 Server Access Settings==Server Zugangs-Einstellungen
Proxy Access Settings==Proxy Zugangs-Einstellungen Proxy Access Settings==Proxy Zugangs-Einstellungen
Content Parser Settings==Inhalt Parser Einstellungen Content Parser Settings==Inhalt Parser Einstellungen

Loading…
Cancel
Save