added nice configuration for the resource observer

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6554 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
lotus 2010-01-07 17:19:50 +00:00
parent bb2e03761c
commit 32972139af
3 changed files with 49 additions and 4 deletions

View File

@ -31,10 +31,10 @@ import java.util.Map;
import net.yacy.kelondro.util.FileUtils;
import net.yacy.kelondro.util.Formatter;
import net.yacy.kelondro.util.MemoryControl;
import net.yacy.kelondro.util.OS;
import net.yacy.kelondro.workflow.BusyThread;
import net.yacy.kelondro.workflow.WorkflowThread;
import de.anomic.http.server.RequestHeader;
import de.anomic.search.Segment;
import de.anomic.search.Segments;
@ -83,14 +83,32 @@ public class PerformanceQueues_p {
}
}
if (post.containsKey("Xmx")) {
int xmx = 120; // default maximum heap size
try { xmx = Integer.valueOf(post.get("Xmx", "120")).intValue(); } catch (final NumberFormatException e){}
int xmx = 180; // default maximum heap size
try { xmx = Integer.valueOf(post.get("Xmx", "" + xmx)).intValue(); } catch (final NumberFormatException e){}
if (!(OS.isWin32 && xmx >= 2000)){
sb.setConfig("javastart_Xmx", "Xmx" + xmx + "m");
sb.setConfig("javastart_Xms", "Xms" + xmx + "m");
prop.put("setStartupCommit", "1");
}
}
if(post.containsKey("diskFree")) {
int diskFree = 3000; // default
try { diskFree = Integer.valueOf(post.get("diskFree", "" + diskFree)).intValue(); } catch (final NumberFormatException e){}
sb.setConfig(SwitchboardConstants.DISK_FREE, diskFree);
}
if(post.containsKey("diskFreeHardlimit")) {
int diskFreeHardlimit = 1000; // default
try { diskFreeHardlimit = Integer.valueOf(post.get("diskFreeHardlimit", "" + diskFreeHardlimit)).intValue(); } catch (final NumberFormatException e){}
sb.setConfig(SwitchboardConstants.DISK_FREE_HARDLIMIT, diskFreeHardlimit);
}
if(post.containsKey("memoryAcceptDHT")) {
int memoryAcceptDHT = 50000; // default
try { memoryAcceptDHT = Integer.valueOf(post.get("memoryAcceptDHT", "" + memoryAcceptDHT)).intValue(); } catch (final NumberFormatException e){}
sb.setConfig(SwitchboardConstants.MEMORY_ACCEPTDHT, memoryAcceptDHT);
}
if(post.containsKey("resetObserver")) {
MemoryControl.setDHTallowed();
}
}
final Map<String, String> defaultSettings = ((post == null) || (!(post.containsKey("submitdefault")))) ? null : FileUtils.loadMap(defaultSettingsFile);
Iterator<String> threads = sb.threadNames();
@ -338,6 +356,15 @@ public class PerformanceQueues_p {
final String Xms = sb.getConfig("javastart_Xms", "Xms120m").substring(3);
prop.put("Xms", Xms.substring(0, Xms.length() - 1));
final String diskFree = sb.getConfig(SwitchboardConstants.DISK_FREE, "3000");
final String diskFreeHardlimit = sb.getConfig(SwitchboardConstants.DISK_FREE_HARDLIMIT, "1000");
final String memoryAcceptDHT = sb.getConfig(SwitchboardConstants.MEMORY_ACCEPTDHT, "50000");
final boolean observerTrigger = !MemoryControl.getDHTallowed();
prop.put("diskFree", diskFree);
prop.put("diskFreeHardlimit", diskFreeHardlimit);
prop.put("memoryAcceptDHT", memoryAcceptDHT);
if(observerTrigger) prop.put("observerTrigger", "1");
// return rewrite values for templates
return prop;
}

View File

@ -35,6 +35,23 @@
</fieldset>
</form>
<form action="Performance_p.html" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Resource Observer</legend>
<dl>
<dt></dt>
<dd>DHT-Trigger #(observerTrigger)#not triggered::<strong>triggered</strong>#(/observerTrigger)# <a href="?resetObserver=">[reset state]</a></dd>
<dt><label for="diskFree">HDD</label></dt>
<dd>disable crawls below <input name="diskFree" id="diskFree" type="text" size="4" value="#[diskFree]#" /> MiB free space,<br/>
disable DHT-in below <input name="diskFreeHardlimit" id="diskFreeHardlimit" type="text" size="4" value="#[diskFreeHardlimit]#" /> MiB free space</dd>
<dt><label for="memoryAcceptDHT">RAM</label></dt>
<dd>disable DHT-in below <input name="memoryAcceptDHT" id="memoryAcceptDHT" type="text" size="4" value="#[memoryAcceptDHT]#" /> KiB free space</dd>
<dt></dt>
<dd><input type="submit" name="setObserver" value="Save" /></dd>
</dl>
</fieldset>
</form>
<form action="Performance_p.html" method="post" enctype="multipart/form-data">
<fieldset><legend>Use Default Profile:</legend>
<p>

View File

@ -194,12 +194,13 @@ public class MemoryControl {
final long t = System.currentTimeMillis();
if(prevDHTtreshold + 11L /* minutes */ * 60000L > t) {
DHTtresholdCount++;
log.logInfo("checkDHTrule: below treshold; tresholdCount: " + DHTtresholdCount);
if(DHTtresholdCount > 3 /* occurencies - 1 */) allowDHT = false;
}
else DHTtresholdCount = 1;
prevDHTtreshold = t;
log.logInfo("checkDHTrule: below treshold; tresholdCount: " + DHTtresholdCount + "; allowDHT: " + allowDHT);
}
//allowDHT = ((available >> 10) < DHTkbytes) ? false : true; // stupid
}