From 0336480a3ecfa38f6ea35d37224eebd8f2f48507 Mon Sep 17 00:00:00 2001 From: karlchenofhell Date: Fri, 5 Jan 2007 08:00:05 +0000 Subject: [PATCH] - the maxMemory-fix for the Sun JVM 1.4.2 wrongly also applied to 1.6, thx to NN - added logging of reducing word-cache (log-level fine) - disabled memprereq field in PerformanceQueues_p.html, because it is now set by the collections db - minor changes to ConfigSkins / -Language git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3165 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/ConfigLanguage_p.html | 10 ++++++---- htroot/ConfigSkins_p.html | 12 +++++++----- htroot/PerformanceQueues_p.html | 2 +- htroot/PerformanceQueues_p.java | 3 ++- source/de/anomic/server/serverAbstractThread.java | 6 ++++-- source/de/anomic/server/serverMemory.java | 4 ++-- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/htroot/ConfigLanguage_p.html b/htroot/ConfigLanguage_p.html index 702fcf0be..5ed5b4e6e 100644 --- a/htroot/ConfigLanguage_p.html +++ b/htroot/ConfigLanguage_p.html @@ -13,7 +13,7 @@

-
+
:
default(english) 
@@ -29,9 +29,11 @@ #{/langlist}# +
+ + +
- -
@@ -47,8 +49,8 @@
+
- #(status)# diff --git a/htroot/ConfigSkins_p.html b/htroot/ConfigSkins_p.html index 229807698..47521b4e0 100644 --- a/htroot/ConfigSkins_p.html +++ b/htroot/ConfigSkins_p.html @@ -14,19 +14,21 @@
-
+
:
#[currentskin]# 
:
- #{skinlist}# #{/skinlist}#
+
+ + +
- -
@@ -38,8 +40,8 @@
+
- #(status)# diff --git a/htroot/PerformanceQueues_p.html b/htroot/PerformanceQueues_p.html index 748904521..65d73bb1b 100644 --- a/htroot/PerformanceQueues_p.html +++ b/htroot/PerformanceQueues_p.html @@ -51,7 +51,7 @@ #[memusepercycle]# milliseconds milliseconds - kbytes + kbytes #[longdescr]# #{/table}# diff --git a/htroot/PerformanceQueues_p.java b/htroot/PerformanceQueues_p.java index 32155dc8d..6e6af7db7 100644 --- a/htroot/PerformanceQueues_p.java +++ b/htroot/PerformanceQueues_p.java @@ -165,7 +165,8 @@ public class PerformanceQueues_p { prop.put("table_" + c + "_idlesleep", idlesleep); prop.put("table_" + c + "_busysleep", busysleep); prop.put("table_" + c + "_memprereq", memprereq / 1024); - + // disallow setting of memprereq for indexer to prevent db from throwing OOMs + prop.put("table_" + c + "_disabled", (threadName.contains("_indexing")) ? 1 : 0); c++; } prop.put("table", c); diff --git a/source/de/anomic/server/serverAbstractThread.java b/source/de/anomic/server/serverAbstractThread.java index 3183d4cad..589b6953b 100644 --- a/source/de/anomic/server/serverAbstractThread.java +++ b/source/de/anomic/server/serverAbstractThread.java @@ -248,7 +248,7 @@ public abstract class serverAbstractThread extends Thread implements serverThrea logSystem("thread '" + this.getName() + "' deployed, " + ((this.busyPause < 0) ? "starting job." : "starting loop.")); } long timestamp; - long memstamp0, memstamp1; + long memstamp0, memstamp1, memnow; boolean isBusy; //Runtime rt = Runtime.getRuntime(); @@ -271,7 +271,7 @@ public abstract class serverAbstractThread extends Thread implements serverThrea timestamp = System.currentTimeMillis(); ratz(this.idlePause); idletime += System.currentTimeMillis() - timestamp; - } else if (serverMemory.available() > memprereq) try { + } else if ((memnow = serverMemory.available()) > memprereq) try { // do job timestamp = System.currentTimeMillis(); memstamp0 = serverMemory.used(); @@ -304,6 +304,8 @@ public abstract class serverAbstractThread extends Thread implements serverThrea this.jobExceptionHandler(e); busyCycles++; } else { + log.logFine("Thread '" + this.getName() + "' runs short memory cycle. Free mem: " + + (memnow / 1024) + " KB, needed: " + (memprereq / 1024) + " KB"); // omit job, not enough memory // process scheduled pause timestamp = System.currentTimeMillis(); diff --git a/source/de/anomic/server/serverMemory.java b/source/de/anomic/server/serverMemory.java index 4238159a3..18ba02c04 100644 --- a/source/de/anomic/server/serverMemory.java +++ b/source/de/anomic/server/serverMemory.java @@ -49,8 +49,8 @@ import java.text.DecimalFormat; public class serverMemory { - public static boolean vm15 = System.getProperty("java.vm.version").startsWith("1.5"); - public static final long max = (vm15) ? Runtime.getRuntime().maxMemory() : computedMaxMemory(); // patch for maxMemory bug in Java 1.4.2 + public static boolean vm14 = System.getProperty("java.vm.version").startsWith("1.4"); + public static final long max = (vm14) ? computedMaxMemory() : Runtime.getRuntime().maxMemory() ; // patch for maxMemory bug in Java 1.4.2 private static final Runtime runtime = Runtime.getRuntime(); public static long free() {