mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-19 00:01:41 +02:00
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:
parent
bb2e03761c
commit
32972139af
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user