{"id":2703,"date":"2015-10-27T16:38:01","date_gmt":"2015-10-27T16:38:01","guid":{"rendered":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/maintenance\/performance\/"},"modified":"2024-08-27T07:42:41","modified_gmt":"2024-08-27T07:42:41","slug":"performance","status":"publish","type":"page","link":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/","title":{"rendered":"Performance"},"content":{"rendered":"<p>Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular environment.<\/p>\n<p>This section assumes some technical IT competence.<\/p>\n<h2>Java memory usage<\/h2>\n<p>Twproject is a Java application, and it runs in Java web servers \u2013 by default Tomcat is hungry for memory; fortunately server memory is really cheap these days.<\/p>\n<p>The server where Twproject is running should have at least 2GB of memory, so that Ttwproject can run in at least 1GB.<\/p>\n<p>If you want to go beyond the 1GB limitation, you should not use Windows servers, as these have notoriously contiguous memory limitations in running Java. Use a 64 bit Linux server and you will have no limitations about the amount of memory you can give to Java.<\/p>\n<p>It must be said that for most usage scenarios 1GB of memory for Twproject is more than sufficient.<\/p>\n<p>A typical symptom that memory configuration must be tuned is when you get \u201cjava.lang.OutOfMemoryError: Java heap space\u201d errors. In this case the most likely culprit<\/p>\n<p>The best way to be sure that the memory configuration changes are in use in Twproject is to launch the \u201csystem check\u201d page (admin -&gt; system check) and verify the memory parameters there reported. For example, before:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border: 0px;\" title=\"\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg\" alt=\"\" width=\"214\" height=\"89\" border=\"0\" \/><\/p>\n<p>To do the changes: instructions for different OS follow.<\/p>\n<p>On a Windows server: open a DOS command interface:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5248\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2018\/01\/performance_shell.jpg\" alt=\"\" width=\"475\" height=\"88\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2018\/01\/performance_shell.jpg 475w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2018\/01\/performance_shell-300x56.jpg 300w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5249\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2018\/01\/performance_tomcat.jpg\" alt=\"\" width=\"415\" height=\"490\" srcset=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2018\/01\/performance_tomcat.jpg 415w, https:\/\/twproject.com\/support\/wp-content\/uploads\/2018\/01\/performance_tomcat-254x300.jpg 254w\" sizes=\"auto, (max-width: 415px) 100vw, 415px\" \/><\/p>\n<p>Change\u00a0 -XX:MaxPermSize\u00a0 to 384m or more and<br \/>\nchanged maximum memory to 1024MB or more<\/p>\n<p>and after restarting the Twproject service:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4578\" style=\"border: 1px solid black;\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/tomacat7w_3.png\" alt=\"\" width=\"235\" height=\"103\" \/><\/p>\n<p>That\u2019s it!<\/p>\n<p>For additional information on Tomcat service see:<br \/>\n<a href=\"https:\/\/tomcat.apache.org\/tomcat-7.0-doc\/windows-service-howto.html\">https:\/\/tomcat.apache.org\/tomcat-7.0-doc\/windows-service-howto.html<\/a><\/p>\n<p>On Linux: open the twprojectLinux.sh script, and change the -Xms128m -Xmx384m settings to a higher range.<\/p>\n<p>On OSX: if you are launching by script by hand, open the twprojectOsx.sh script, and change the -Xms64m -Xmx128m settings to a higher range. If you are launching Twproject as service, change in [twproject root folder]\/launchdScript.sh the line &#8220;export JAVA_OPTS=-Xmx512M $JAVA_OPTS&#8221; (if it is #export JAVA_OPTS=-Xmx512M $JAVA_OPTS, remove the #).<\/p>\n<p>&nbsp;<\/p>\n<h2>Permission Cache<\/h2>\n<p>By limiting the number of complete and frequent security-related queries, Twproject manages a cache that is allowed to reuse the security test in the last &#8220;maximum age&#8221;. Changing your roles could therefore have a slightly delayed effect and indeed, when there is a tuning of them it is advisable to turn off the cache.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5039\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/permission-cache.png\" alt=\"\" width=\"596\" height=\"250\" \/><\/p>\n<h2>Enabling more database connections<\/h2>\n<p>By default Twproject uses a database connection pool, called Proxool (<a href=\"http:\/\/proxool.sourceforge.net\/\">http:\/\/proxool.sourceforge.net\/<\/a>).<\/p>\n<p>This pool has a built-in monitor, which you can enable by modifying the provided web.xml (WEB-INF\/web.xml). Add among the servlets configuration<\/p>\n<pre>&lt;servlet&gt;\r\n&lt;servlet-name&gt;proxool&lt;\/servlet-name&gt;\r\n&lt;servlet-class&gt;org.logicalcobwebs.proxool.admin.servlet.AdminServlet&lt;\/servlet-class&gt;\r\n&lt;\/servlet&gt;<\/pre>\n<p>And in the servlets mapping<\/p>\n<pre>&lt;servlet-mapping&gt;\r\n&lt;servlet-name&gt;proxool&lt;\/servlet-name&gt;\r\n&lt;url-pattern&gt;\/proxool&lt;\/url-pattern&gt;\r\n&lt;\/servlet-mapping&gt;<\/pre>\n<p>Restart Twproject, and call<\/p>\n<p><em>[your Twproject URL]\/proxool<\/em><\/p>\n<p>Getting:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border: 0px;\" title=\"\" src=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0161.jpg\" alt=\"\" width=\"450\" height=\"128\" border=\"0\" \/><\/p>\n<p>To enable more db connections, you have to set in config.properties the poolMaxSize property:<\/p>\n<pre>## connection pooling: optionally set max size\r\npoolMaxSize=50<\/pre>\n<h2>Clustering the database<\/h2>\n<p>Twproject uses a very simple JDBC connection to \u201ca database\u201d. The entry point provided can of course be clustered: for this you must refer to your database specific documentation.<\/p>\n<h2>Clustering the web server<\/h2>\n<p>Twproject can be clustered also as application: in case of load balance, so called \u201csticky sessions\u201d must be enabled. The only conflict that could be raised in case of application clustering is in the scheduled jobs. Twproject has a built-in mechanisms that enabled only one node in the cluster for job scheduling. Of course we assume that all nodes in the application cluster will be pointing to the same database entry point instance (eventually clustered too).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular environment. This section assumes some technical IT competence. Java memory usage Twproject is a Java application, and it runs in Java web servers \u2013 by default Tomcat is hungry for memory; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2565,"menu_order":18,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-2703","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Performance | Twproject support<\/title>\n<meta name=\"description\" content=\"Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Performance | Twproject support\" \/>\n<meta property=\"og:description\" content=\"Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular\" \/>\n<meta property=\"og:url\" content=\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/\" \/>\n<meta property=\"og:site_name\" content=\"Twproject support\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/twproject\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-27T07:42:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/\",\"url\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/\",\"name\":\"Performance | Twproject support\",\"isPartOf\":{\"@id\":\"https:\/\/twproject.com\/support\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg\",\"datePublished\":\"2015-10-27T16:38:01+00:00\",\"dateModified\":\"2024-08-27T07:42:41+00:00\",\"description\":\"Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular\",\"breadcrumb\":{\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#primaryimage\",\"url\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg\",\"contentUrl\":\"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg\",\"width\":214,\"height\":89},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/twproject.com\/support\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced usage\",\"item\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Monitoring\",\"item\":\"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Performance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/twproject.com\/support\/#website\",\"url\":\"https:\/\/twproject.com\/support\/\",\"name\":\"Twproject support\",\"description\":\"Twproject documentation online\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/twproject.com\/support\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Performance | Twproject support","description":"Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/","og_locale":"en_US","og_type":"article","og_title":"Performance | Twproject support","og_description":"Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular","og_url":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/","og_site_name":"Twproject support","article_publisher":"https:\/\/www.facebook.com\/twproject","article_modified_time":"2024-08-27T07:42:41+00:00","og_image":[{"url":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg","type":"","width":"","height":""}],"twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/","url":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/","name":"Performance | Twproject support","isPartOf":{"@id":"https:\/\/twproject.com\/support\/#website"},"primaryImageOfPage":{"@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#primaryimage"},"image":{"@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#primaryimage"},"thumbnailUrl":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg","datePublished":"2015-10-27T16:38:01+00:00","dateModified":"2024-08-27T07:42:41+00:00","description":"Twproject\u2019s installer will set some default configuration of the web server and database usage \u2013 which could need to\u00a0be fine tuned for each particular","breadcrumb":{"@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#primaryimage","url":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg","contentUrl":"https:\/\/twproject.com\/support\/wp-content\/uploads\/2014\/02\/clip_image0047.jpg","width":214,"height":89},{"@type":"BreadcrumbList","@id":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/performance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/twproject.com\/support\/"},{"@type":"ListItem","position":2,"name":"Advanced usage","item":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/"},{"@type":"ListItem","position":3,"name":"Monitoring","item":"https:\/\/twproject.com\/support\/twproject-advanced-usage\/monitoring\/"},{"@type":"ListItem","position":4,"name":"Performance"}]},{"@type":"WebSite","@id":"https:\/\/twproject.com\/support\/#website","url":"https:\/\/twproject.com\/support\/","name":"Twproject support","description":"Twproject documentation online","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/twproject.com\/support\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages\/2703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/comments?post=2703"}],"version-history":[{"count":0,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages\/2703\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/pages\/2565"}],"wp:attachment":[{"href":"https:\/\/twproject.com\/support\/wp-json\/wp\/v2\/media?parent=2703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}