<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.logicaldoc.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Performance_Tuning</id>
	<title>Performance Tuning - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.logicaldoc.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Performance_Tuning"/>
	<link rel="alternate" type="text/html" href="http://wiki.logicaldoc.com/wiki/index.php?title=Performance_Tuning&amp;action=history"/>
	<updated>2026-08-29T07:59:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://wiki.logicaldoc.com/wiki/index.php?title=Performance_Tuning&amp;diff=1157&amp;oldid=prev</id>
		<title>Blucecio at 15:28, 8 February 2010</title>
		<link rel="alternate" type="text/html" href="http://wiki.logicaldoc.com/wiki/index.php?title=Performance_Tuning&amp;diff=1157&amp;oldid=prev"/>
		<updated>2010-02-08T15:28:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Lo scopo di questa pagina è quello di ilustrare alcune possibilità di ottimizzazione dei settaggi di logicaldoc al fine di milgiorare le performance ed i tempi di risposta della applicazione. &lt;br /&gt;
&lt;br /&gt;
Nello specifico questa pagina contiene informazioni utili alla configurazione delle opzioni Java che condizionano l&amp;#039;impiego, l&amp;#039;allocazione della memoria ed il garbage collector della virtual machine che esegue l&amp;#039;application server Tomcat. &lt;br /&gt;
&lt;br /&gt;
LogicalDOC per la sua architettura basata su Spring, Hibernate e JSF e poichè può trovarsi ad operare con tabelle contenenti centinaia di migliaia di record ha la necessità di creare in memoria centinaia di oggetti che possono saturare la memoria. &lt;br /&gt;
&lt;br /&gt;
Quando la memoria resa disponibile alla applicazione si satura la virtual machine può andare in Out-of-memory e l&amp;#039;applicazione non risponde più oppure risponde ma non funziona correttamente. &lt;br /&gt;
&lt;br /&gt;
Il file di configurazione per le impostazioni di cui stiamo parlando si trova in &amp;amp;lt;LOGICALDOC_HOME&amp;amp;gt;\tomcat\bin\catalina.bat &lt;br /&gt;
&lt;br /&gt;
e le impostazioni sono quelle relative alla variabile di ambiente JAVA_OPTS set JAVA_OPTS=-Xmx900m -Dorg.apache.el.parser.COERCE_TO_ZERO=false (windows) &lt;br /&gt;
&lt;br /&gt;
normalmente queste impostazioni dicono di assegnare al massimo 900 megabyte di memoria a tomcat (l&amp;#039;application server che esegue logicaldoc) ed al parser delle espressioni regolari di non trasformare gli interi nulli in 0 &lt;br /&gt;
&lt;br /&gt;
A seconda dell&amp;#039;utilizzo che si fa della applicazione, dello scheduling delle attività e degli utenti che utilizzano logicaldoc contemporaneamente queste impostazioni potrebbero non essere adeguate è quindi necessario provvedere ad adeguarle (ove possibile) in base alla proprie necessità. &lt;br /&gt;
&lt;br /&gt;
Questo sono le impostazioni che ci ha proposto un nostro cliente e che funzionano bene su una virtual machine Linux con 2 processori assegnati e 4GB di memoria fisica assegnata. &lt;br /&gt;
&lt;br /&gt;
JAVA_OPTS=&amp;quot; -Xmx900m -XX:MaxPermSize=384M -Xms512m -XX:MaxNewSize=24m -XX:NewSize=24m -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC -Dorg.apache.el.parser.COERCE_TO_ZERO=false&amp;quot; (Linux) &lt;br /&gt;
&lt;br /&gt;
Per un approfondimento su queste particolari impostazioni si faccia riferimento alla pagina [[Java Options|Java Options]] su questo stesso wiki &lt;br /&gt;
&lt;br /&gt;
Con queste impostazioni la virtual machine java (JVM) utilizza un processo concorrente UseConcMarkSweepGC come garbage collector per ridurre al minimo le interruzioni, i tempi di latenza ed i ritardi causati dal processo di garbage collector necessario per liberare la memoria dagli oggetti non referenziati. &lt;br /&gt;
&lt;br /&gt;
A partire dalla versione java 1.5 (J2SE 5) la virtual machine integra già il controllo di riconoscimento della tipologia si funzionamento in base alla configurazione hardware se lo si desidera è possibile comunque esplicitare il funzionamento con l&amp;#039;opzione -server tra le opzioni di avvio. &lt;br /&gt;
&lt;br /&gt;
JAVA_OPTS=-Xmx900m -Dorg.apache.el.parser.COERCE_TO_ZERO=false -server &lt;br /&gt;
&lt;br /&gt;
Se avete un server con 4GB di memoria fisica relativamente inutilizzata potete tranquillamente aumentare la memoria assegnata alla JVM fino a 2GB di spazio ed al contempo aumentare lo spazio riservato alla generazione degli oggetti in memoria in questo modo: &lt;br /&gt;
&lt;br /&gt;
JAVA_OPTS=&amp;quot;$JAVA_OPTS -Xmx2048m -XX:MaxPermSize=512m&amp;quot; (windows) &lt;br /&gt;
&lt;br /&gt;
Se lo desiderate potete definire aanche la memoria allocata allo startup dalla JVM con l&amp;#039;opzione -Xms &lt;br /&gt;
&lt;br /&gt;
JAVA_OPTS=&amp;quot;$JAVA_OPTS -Xmx1024m -Xms1024m -XX:MaxPermSize=384m&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;/div&gt;</summary>
		<author><name>Blucecio</name></author>
	</entry>
</feed>