mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-19 00:01:41 +02:00
* reenable DHT if yet enough memory is available
* reset treshold on reconfiguratoin (thanks to sixcooler) * display status message in web interface git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6562 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
parent
0752634b8b
commit
eac2daf2e8
|
@ -93,6 +93,13 @@
|
|||
</dd>
|
||||
#(/warningDiskSpaceLow)#
|
||||
|
||||
#(warningMemoryLow)#::
|
||||
<dt class="hintIcon"><img src="env/grafics/bad.png" width="32" height="32" alt="bad"/></dt>
|
||||
<dd class="hint">Free memory is lower than #[minSpace]#. DHT has been disabled. Please fix
|
||||
it as soon as possible and restart YaCy.
|
||||
</dd>
|
||||
#(/warningMemoryLow)#
|
||||
|
||||
<!-- hints -->
|
||||
|
||||
#(hintVersionAvailable)#::
|
||||
|
|
|
@ -133,13 +133,20 @@ public class Status {
|
|||
prop.put("unrestrictedLocalAccess", 1);
|
||||
}
|
||||
|
||||
// free disk space
|
||||
if ((adminaccess) && (!sb.observer.getDisksOK()))
|
||||
{
|
||||
final String minFree = Formatter.bytesToString(sb.observer.getMinFreeDiskSpace());
|
||||
prop.put("warningDiskSpaceLow", "1");
|
||||
prop.put("warningDiskSpaceLow_minSpace", minFree);
|
||||
}
|
||||
// resource observer status
|
||||
if (adminaccess) {
|
||||
if (!sb.observer.getDisksOK()){
|
||||
final String minFree = Formatter.bytesToString(sb.observer.getMinFreeDiskSpace());
|
||||
prop.put("warningDiskSpaceLow", "1");
|
||||
prop.put("warningDiskSpaceLow_minSpace", minFree);
|
||||
}
|
||||
if (!sb.observer.getMemoryOK()){
|
||||
final String minFree = Formatter.bytesToString(sb.observer.getMinFreeMemory() * 1024L);
|
||||
prop.put("warningMemoryLow", "1");
|
||||
prop.put("warningMemoryLow_minSpace", minFree);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// version information
|
||||
|
|
|
@ -56,6 +56,7 @@ public final class ResourceObserver {
|
|||
private int checkMemoryUsageCount;
|
||||
private int disksFree;
|
||||
private int memoryFree;
|
||||
private boolean disabledDHT = false;
|
||||
|
||||
/**
|
||||
* The ResourceObserver checks the resources
|
||||
|
@ -106,7 +107,7 @@ public final class ResourceObserver {
|
|||
* checks the resources and pauses crawls if necessary
|
||||
*/
|
||||
public void resourceObserverJob() {
|
||||
MemoryControl.setDHTkbytes(sb.getConfigLong(SwitchboardConstants.MEMORY_ACCEPTDHT, 0));
|
||||
MemoryControl.setDHTkbytes(getMinFreeMemory());
|
||||
|
||||
checkDiskUsageCount++;
|
||||
checkMemoryUsageCount++;
|
||||
|
@ -136,11 +137,19 @@ public final class ResourceObserver {
|
|||
log.logInfo("disabling index receive");
|
||||
sb.setConfig(SwitchboardConstants.INDEX_RECEIVE_ALLOW, false);
|
||||
sb.peers.mySeed().setFlagAcceptRemoteIndex(false);
|
||||
disabledDHT = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (DiskSpace.isUsable())
|
||||
if (DiskSpace.isUsable()) {
|
||||
if(disabledDHT) { // we were wrong!
|
||||
log.logInfo("enabling index receive");
|
||||
sb.setConfig(SwitchboardConstants.INDEX_RECEIVE_ALLOW, true);
|
||||
sb.peers.mySeed().setFlagAcceptRemoteIndex(true);
|
||||
disabledDHT = false;
|
||||
}
|
||||
log.logInfo("run completed; everything in order");
|
||||
}
|
||||
else
|
||||
log.logInfo("The observer is out of order: " + DiskSpace.getErrorMessage());
|
||||
}
|
||||
|
@ -161,19 +170,26 @@ public final class ResourceObserver {
|
|||
}
|
||||
|
||||
/**
|
||||
* @return amount of space (MiB) that should be kept free
|
||||
* @return amount of space (bytes) that should be kept free
|
||||
*/
|
||||
public long getMinFreeDiskSpace () {
|
||||
return sb.getConfigLong(SwitchboardConstants.DISK_FREE, 3000) /* MiB */ * 1024L * 1024L;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return amount of space (MiB) that should at least be kept free
|
||||
* @return amount of space (bytes) that should at least be kept free
|
||||
*/
|
||||
public long getMinFreeDiskSpace_hardlimit () {
|
||||
return sb.getConfigLong(SwitchboardConstants.DISK_FREE_HARDLIMIT, 100) /* MiB */ * 1024L * 1024L;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return amount of space (KiB) that should at least be free
|
||||
*/
|
||||
public long getMinFreeMemory() {
|
||||
return sb.getConfigLong(SwitchboardConstants.MEMORY_ACCEPTDHT, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the amount of disk space available
|
||||
* @return <ul>
|
||||
|
|
|
@ -182,10 +182,12 @@ public class MemoryControl {
|
|||
|
||||
public static void setDHTallowed() {
|
||||
allowDHT = true;
|
||||
DHTtresholdCount = 0;
|
||||
}
|
||||
|
||||
public static void setDHTkbytes(final long kbytes) {
|
||||
DHTkbytes = kbytes;
|
||||
DHTtresholdCount = 0;
|
||||
}
|
||||
|
||||
private static void checkDHTrule(final long available) {
|
||||
|
@ -202,7 +204,8 @@ public class MemoryControl {
|
|||
|
||||
log.logInfo("checkDHTrule: below treshold; tresholdCount: " + DHTtresholdCount + "; allowDHT: " + allowDHT);
|
||||
}
|
||||
//allowDHT = ((available >> 10) < DHTkbytes) ? false : true; // stupid
|
||||
else if (!allowDHT && (available >> 10) > (DHTkbytes * 2L)) // we were wrong!
|
||||
setDHTallowed();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user