You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "John Zhuge (JIRA)" <ji...@apache.org> on 2016/05/26 23:13:12 UTC

[jira] [Comment Edited] (HADOOP-12855) Add option to disable JVMPauseMonitor across services

    [ https://issues.apache.org/jira/browse/HADOOP-12855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15303121#comment-15303121 ] 

John Zhuge edited comment on HADOOP-12855 at 5/26/16 11:12 PM:
---------------------------------------------------------------

Hi [~stevel@apache.org], looking back, I do not like the designs in HADOOP-12946 and HADOOP-12908 which both rely heavily on static variable and atomic operation.

{{JVMPauseMonitor}} should NOT be embedded in other service. JVM should start one and only copy of {{JVMPauseMonitor}} and then start other services. A typical main function:
{code}
  main(String args[]) {
    new JVMPauseMonitor(new Configuration()).start();
    DataNode datanode = createDataNode(args, null, resources);
  }
{code}


was (Author: jzhuge):
Hi [~stevel@apache.org], looking back, I do not like the designs in HADOOP-12946 and HADOOP-12908 which both rely heavily on static variable and atomic operation.

{{JVMPauseMonitor}} should NOT be embedded in other service. When one JVM starts, it should start one and only copy of {{JVMPauseMonitor}} and then start other services. A typical main function can be:
{code}
  main(String args[]) {
    Configuration conf = new SomeConfiguration();
    new JVMPauseMonitor(conf).start();
    DataNode datanode = createDataNode(args, conf, resources);
  }
{code}

> Add option to disable JVMPauseMonitor across services
> -----------------------------------------------------
>
>                 Key: HADOOP-12855
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12855
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: performance, test
>    Affects Versions: 2.8.0
>         Environment: JVMs with miniHDFS and miniYarn clusters
>            Reporter: Steve Loughran
>            Assignee: John Zhuge
>         Attachments: HADOOP-12855-001.patch, HADOOP-12855-002.patch, HADOOP-12855-003.patch, HADOOP-12855-004.patch, HADOOP-12855-005.patch, HADOOP-12855-option-001.patch, HADOOP-12855-option-002.patch
>
>
> Now that the YARN and HDFS services automatically start a JVM pause monitor, if you start up the mini HDFS and YARN clusters, with history server, you are spinning off 5 + threads, all looking for JVM pauses, all printing things out when it happens.
> We do not need these monitors in minicluster testing; they merely add load and noise to tests.
> Rather than retrofit new options everywhere, how about having a "jvm.pause.monitor.enabled" flag (default true), which, when set, starts off the monitor thread.
> That way, the existing code is unchanged, there is always a JVM pause monitor for the various services —it just isn't spinning up threads.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org