{"id":10634,"date":"2017-11-12T08:05:42","date_gmt":"2017-11-12T07:05:42","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/"},"modified":"2017-11-12T08:05:42","modified_gmt":"2017-11-12T07:05:42","slug":"documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/","title":{"rendered":"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage"},"content":{"rendered":"<p>Sometimes you have java processes or even jboss servers using a lot of CPU. In my example I had an xPlore dsearch server using like 98% of the cpu. When using jconsole and jvisualvm I figured out the garbage collector was using 50 to 60% of the cpu time.<br \/>\nThis was because the server was indexing and accessing the internal DB very often. Hence a lot of objects were created, the JVM was not correctly sized, thus all objects went to the tenured(old) space resulting in filling up the heap. The garbage collector had to go through the whole heap and perform a lot of FUll GC. I went to a point where I had a Full GC every 5 seconds that lasted 4 seconds. So I had only 1 second every 5 seconds of &#8220;real&#8221; processing.<\/p>\n<p>So if you have a process stuck in collecting garbage you can use the following parameters:<br \/>\nUSER_MEM_ARGS=&#8221;-Xms8G -Xmx8G -XX:PermSize=64m -XX:NewSize=2g -XX:MaxNewSize=2g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=95 -XX:+UseCMSInitiatingOccupancyOnly -XX:MaxTenuringThreshold=2 -XX:MaxPermSize=256m -Xss1024k -Xloggc:\/pkgs\/dmsp\/opt\/documentum\/xPlore\/jboss7.1.1\/server\/DctmServer_PrimaryDsearch\/logs\/PrimaryJVM.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution&#8221;<\/p>\n<p>-Xms8G: Starting limit of the size of JVM<br \/>\n-Xmx8G: Max limit of heap usage<br \/>\n-XX:PermSize=64m: Permanent space size<br \/>\n-XX:MaxPermSize=256m:<br \/>\n-XX:NewSize=2g: Young Gen space size, here 1\/4 of total<br \/>\n-XX:MaxNewSize=2: Maximum Young Gen space<br \/>\n-XX:+UseParNewGC: Parallele copying collector for Young generation, parallelizes the collection process with multiple threads, better perf with multiple processor architecture<br \/>\n-XX:+UseConcMarkSweepGC: Use concurrent mark-sweep collection for the old generation<br \/>\n-XX:+CMSParallelRemarkEnabled: Parallelize the remark phase, goes with CMS option, increases response time<br \/>\n-XX:+ParallelRefProcEnabled: Parallelize the process of weak referenced objects (cache)<br \/>\n-XX:+CMSClassUnloadingEnabled: Enables the class unloading capability for CMS<br \/>\n-XX:CMSInitiatingOccupancyFraction=95: Puts the limit after which the full GC will be trigered, higher value means less Full GC but longuer<br \/>\n-XX:+UseCMSInitiatingOccupancyOnly: Prevents the JVM tu use heuristics GC triggering rules, sets the trigger to use only the previous percentage as a threeshold for Full GC trigger.<br \/>\n-XX:MaxTenuringThreshold=2: Maximum value for tenuring threshold. The default value is 15<br \/>\n-Xss1024k: Thread stack size<\/p>\n<p>These arguments will help you see the behaviour of the GC process:<br \/>\n-Xloggc:\/path\/to\/log\/JVM.log<br \/>\n-XX:+PrintGCDetails<br \/>\n-XX:+PrintGCDateStamps<br \/>\n-XX:+PrintTenuringDistribution<\/p>\n<p>&nbsp;<\/p>\n<p>After tuning the JVM I went back to a normal behaviour:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-19560\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png\" alt=\"jvm-all-green\" width=\"1024\" height=\"689\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sometimes you have java processes or even jboss servers using a lot of CPU. In my example I had an xPlore dsearch server using like 98% of the cpu. When using jconsole and jvisualvm I figured out the garbage collector was using 50 to 60% of the cpu time. This was because the server was [&hellip;]<\/p>\n","protected":false},"author":40,"featured_media":10635,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[423,129,1216,1217,1218,474],"type_dbi":[],"class_list":["post-10634","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-integration-middleware","tag-cpu","tag-documentum","tag-high","tag-jvm","tag-tuning","tag-xplore"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Documentum xPlore: Tuning of JVM for high throughput and low CPU usage - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage\" \/>\n<meta property=\"og:description\" content=\"Sometimes you have java processes or even jboss servers using a lot of CPU. In my example I had an xPlore dsearch server using like 98% of the cpu. When using jconsole and jvisualvm I figured out the garbage collector was using 50 to 60% of the cpu time. This was because the server was [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-12T07:05:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1032\" \/>\n\t<meta property=\"og:image:height\" content=\"694\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Middleware Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Middleware Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/\"},\"author\":{\"name\":\"Middleware Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\"},\"headline\":\"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage\",\"datePublished\":\"2017-11-12T07:05:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/\"},\"wordCount\":419,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png\",\"keywords\":[\"CPU\",\"Documentum\",\"high\",\"jvm\",\"tuning\",\"xPlore\"],\"articleSection\":[\"Application integration &amp; Middleware\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/\",\"name\":\"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png\",\"datePublished\":\"2017-11-12T07:05:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png\",\"width\":1032,\"height\":694},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\",\"name\":\"Middleware Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"caption\":\"Middleware Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/middleware-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage - dbi Blog","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:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/","og_locale":"en_US","og_type":"article","og_title":"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage","og_description":"Sometimes you have java processes or even jboss servers using a lot of CPU. In my example I had an xPlore dsearch server using like 98% of the cpu. When using jconsole and jvisualvm I figured out the garbage collector was using 50 to 60% of the cpu time. This was because the server was [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/","og_site_name":"dbi Blog","article_published_time":"2017-11-12T07:05:42+00:00","og_image":[{"width":1032,"height":694,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png","type":"image\/png"}],"author":"Middleware Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Middleware Team","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/"},"author":{"name":"Middleware Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"headline":"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage","datePublished":"2017-11-12T07:05:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/"},"wordCount":419,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png","keywords":["CPU","Documentum","high","jvm","tuning","xPlore"],"articleSection":["Application integration &amp; Middleware"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/","url":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/","name":"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png","datePublished":"2017-11-12T07:05:42+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Capture4.png","width":1032,"height":694},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-xplore-tuning-of-jvm-for-high-throughput-and-low-cpu-usage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Documentum xPlore: Tuning of JVM for high throughput and low CPU usage"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1","name":"Middleware Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","caption":"Middleware Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/middleware-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=10634"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/10635"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=10634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=10634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=10634"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=10634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}