{"action":"created","issue":{"url":"https://api.github.com/repos/cloudfoundry/java-buildpack/issues/122","labels_url":"https://api.github.com/repos/cloudfoundry/java-buildpack/issues/122/labels{/name}","comments_url":"https://api.github.com/repos/cloudfoundry/java-buildpack/issues/122/comments","events_url":"https://api.github.com/repos/cloudfoundry/java-buildpack/issues/122/events","html_url":"https://github.com/cloudfoundry/java-buildpack/issues/122","id":53551729,"number":122,"title":"Support for user specified MaxPermGen and MaxMetaSpace without fork","user":{"login":"youngm","id":438661,"avatar_url":"https://avatars.githubusercontent.com/u/438661?v=3","gravatar_id":"","url":"https://api.github.com/users/youngm","html_url":"https://github.com/youngm","followers_url":"https://api.github.com/users/youngm/followers","following_url":"https://api.github.com/users/youngm/following{/other_user}","gists_url":"https://api.github.com/users/youngm/gists{/gist_id}","starred_url":"https://api.github.com/users/youngm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/youngm/subscriptions","organizations_url":"https://api.github.com/users/youngm/orgs","repos_url":"https://api.github.com/users/youngm/repos","events_url":"https://api.github.com/users/youngm/events{/privacy}","received_events_url":"https://api.github.com/users/youngm/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":26,"created_at":"2015-01-06T19:20:45Z","updated_at":"2015-03-04T08:58:57Z","closed_at":null,"body":"Over the last couple of years we've gathered a lot of user experience with the java-buildpack and its fork to customize approach.  For the most part this approach has worked well and usually when faced with the choice to fork or just go with the default behaviour our users realize the default behaviour is good enough for them.\r\n\r\nHowever, one issue that seems to frequently pop up is the issue of perm gen tuning.  It is difficult to find a set of permgen settings that works for most smaller apps but don't waste memory for apps that require more permgen.\r\n\r\nWe could provide our users with small and large permgen forks but we already provide our users with standard jdk7 and jdk8 forks.  Given more permgen flexibility would jump our supported forks from 2 to 4 and potentially add complexity for most of our users that don't need that complexity.\r\n\r\nI'd like to propose an option, for apps that need it, to specify a fixed permgen/metaspace size for use in memory heuristics calculations without forking the buildpack.  I'm not proposing a universal solution that would give users fine grained control over all of their memory settings.  From my experience the only item that really seems to need to be tweaked is Permgen/metaspace all our users are happy to let the buildpack calculate the other memory settings.\r\n\r\nI was thinking that users today have the option of specifying JAVA_OPTS via an environment variable.  I'd like to propose that if the user supplies an MaxPermGen or MaxMetaSpace option that the buildpack honor that as if it were a fixed `metaspace/permgen` config parameter supplied to the jvm `/config/open_jdk_jre.yml`.  All other permgen and metaspace parameters would be invalid as user specified values as they are today.\r\n\r\nThoughts?"},"comment":{"url":"https://api.github.com/repos/cloudfoundry/java-buildpack/issues/comments/77119210","html_url":"https://github.com/cloudfoundry/java-buildpack/issues/122#issuecomment-77119210","issue_url":"https://api.github.com/repos/cloudfoundry/java-buildpack/issues/122","id":77119210,"user":{"login":"cgfrost","id":166104,"avatar_url":"https://avatars.githubusercontent.com/u/166104?v=3","gravatar_id":"","url":"https://api.github.com/users/cgfrost","html_url":"https://github.com/cgfrost","followers_url":"https://api.github.com/users/cgfrost/followers","following_url":"https://api.github.com/users/cgfrost/following{/other_user}","gists_url":"https://api.github.com/users/cgfrost/gists{/gist_id}","starred_url":"https://api.github.com/users/cgfrost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgfrost/subscriptions","organizations_url":"https://api.github.com/users/cgfrost/orgs","repos_url":"https://api.github.com/users/cgfrost/repos","events_url":"https://api.github.com/users/cgfrost/events{/privacy}","received_events_url":"https://api.github.com/users/cgfrost/received_events","type":"User","site_admin":false},"created_at":"2015-03-04T08:58:57Z","updated_at":"2015-03-04T08:58:57Z","body":"Hi @youngm We have a new design on the backlog to get implemented but other tasks keep jumping in front of it. It will get done but I'm not going to make any promises about when."}}