예제 #1
0
    def __init__(self, service, jvm_opts, full_jvm_opts):
        self.service = service

        if full_jvm_opts:
            self.jvm_opts = full_jvm_opts

            if jvm_opts:
                self._add_jvm_opts(jvm_opts)
        else:
            self.jvm_opts = create_jvm_settings(
                opts=jvm_opts,
                gc_dump_path=os.path.join(service.log_dir, "gc.log"),
                oom_path=os.path.join(service.log_dir, "out_of_mem.hprof"))

        self._add_jvm_opts([
            "-DIGNITE_SUCCESS_FILE=" +
            os.path.join(self.service.persistent_root, "success_file"),
            "-Dlog4j.configDebug=true"
        ])

        if self.service.config and self.service.config.service_type == IgniteServiceType.THIN_CLIENT:
            self._add_jvm_opts(
                ["-Dlog4j.configuration=file:" + self.service.log_config_file])

        if service.context.globals.get(JFR_ENABLED, False):
            self._add_jvm_opts([
                "-XX:+UnlockCommercialFeatures", "-XX:+FlightRecorder",
                "-XX:StartFlightRecording=dumponexit=true," +
                f"filename={self.service.jfr_dir}/recording.jfr"
            ])
예제 #2
0
    def __get_default_jvm_opts(self):
        """
        Return a set of default JVM options.
        """
        default_jvm_opts = create_jvm_settings(
            gc_dump_path=os.path.join(self.service.log_dir, "gc.log"),
            oom_path=os.path.join(self.service.log_dir, "out_of_mem.hprof"))

        default_jvm_opts = merge_jvm_settings(default_jvm_opts, [
            "-DIGNITE_SUCCESS_FILE=" +
            os.path.join(self.service.persistent_root, "success_file"),
            "-Dlog4j.configDebug=true"
        ])

        if self.service.config and self.service.config.service_type == IgniteServiceType.THIN_CLIENT:
            default_jvm_opts = merge_jvm_settings(default_jvm_opts, [
                "-Dlog4j.configurationFile=file:" +
                self.service.log_config_file
            ])

        if self.service.context.globals.get(JFR_ENABLED, False):
            default_jvm_opts = merge_jvm_settings(default_jvm_opts, [
                "-XX:+UnlockCommercialFeatures", "-XX:+FlightRecorder",
                "-XX:StartFlightRecording=dumponexit=true," +
                f"filename={self.service.jfr_dir}/recording.jfr"
            ])

        jmx_remote_params = get_jmx_remote_params(self.service.context.globals)
        if jmx_remote_params.enabled:
            default_jvm_opts = merge_jvm_settings(default_jvm_opts, [
                "-Dcom.sun.management.jmxremote",
                "-Dcom.sun.management.jmxremote.port=%d" %
                jmx_remote_params.port,
                "-Dcom.sun.management.jmxremote.local.only=false",
                "-Dcom.sun.management.jmxremote.authenticate=false",
                "-Dcom.sun.management.jmxremote.ssl=false"
            ])

        return default_jvm_opts
예제 #3
0
    def check_list(self):
        """
        Checks list representation of JVM settings.
        """
        jvm_settings = create_jvm_settings()

        assert "-Xms" + DEFAULT_HEAP in jvm_settings
        assert "-Xmx" + DEFAULT_HEAP in jvm_settings

        jvm_settings = merge_jvm_settings(jvm_settings,
                                          additionals="-Xms981M -Xmx981M")

        assert "-Xms981M" in jvm_settings
        assert "-Xmx981M" in jvm_settings
        assert "-Xms" + DEFAULT_HEAP not in jvm_settings
        assert "-Xmx" + DEFAULT_HEAP not in jvm_settings

        jvm_settings = merge_jvm_settings(
            jvm_settings, additionals="-XX:ParallelGCThreads=1024")
        jvm_settings = merge_jvm_settings(
            jvm_settings, additionals="-xx:ParallelGCThreads=512")

        assert "-XX:ParallelGCThreads=1024" in jvm_settings
        assert "-XX:ParallelGCThreads=512" not in jvm_settings