• JVM Server与Client运行模式


     

      JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是:

      当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器, 而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器. C2比C1编译器编译的相对彻底,,服务起来之后,性能更高.

      java -version 可以直接查看出你使用的是client还是 server

    client

        C:Documents and SettingsAdministrator>java -version  
        java version "1.6.0_21"  
        Java(TM) SE Runtime Environment (build 1.6.0_21-b06)  
        Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)  

    server

        [root@kaifa02 ~]# java -version  
        java version "1.6.0_06"  
        Java(TM) SE Runtime Environment (build 1.6.0_06-b02)  
        Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)  

      两种模式的切换可以通过更改配置(jvm.cfg配置文件)来实现:

      32位的虚拟机在目录JAVA_HOME/jre/lib/i386/jvm.cfg,

      64位的在JAVA_HOME/jre/lib/amd64/jvm.cfg, 目前64位只支持server模式, 配置内容大致如下

        -server KNOWN  
        -client KNOWN  
        -hotspot ALIASED_TO -client  
        -classic WARN  
        -native ERROR  
        -green ERROR  

      当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。 
       
      JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。我们可以通过运行:java -version来查看jvm默认工作在什么模式

    示例

    nohup java -Xloggc:jvm.log -server -Xms1000m -Xmn800m -Xmx1000m -XX:MaxPermSize=512m -classpath $CLASSPATH com.com... >>log.log &

    -Xms 
      设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为1024的整数倍并且要大于1MB,可用k(K)或m(M)为单位来设置较大的内存数。初始堆大小为2MB。

      例如:-Xms6400K,-Xms256M

    -Xmx

      设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为1024整数倍,并且要大于2MB。可用k(K)或m(M)为单位来设置较大的内存数。缺省堆最大值为64MB。

      例如:-Xmx81920K,-Xmx80M

    -Xloggc:

      将虚拟机每次垃圾回收的信息写到日志文件中,文件名由file指定,文件格式是平文件,内容和-verbose:gc输出内容相同。

    -client,-server

      这两个参数用于设置虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式,通常用于客户端应用程序。相反,server模式启动比client慢,但可获得更高的运行性能。

      在 windows上,缺省的虚拟机类型为client模式,如果要使用server模式,就需要在启动虚拟机时加-server参数,以获得更高性能,对服 务器端应用,推荐采用server模式,尤其是多个CPU的系统。在Linux,Solaris上缺省采用server模式。

  • 相关阅读:
    Linux虚拟内存(swap)调优篇-“swappiness”,“vm.dirty_background_ratio”和“vm.dirty_ratio”
    《Kafka权威指南》读书笔记-操作系统调优篇
    HTML&CSS基础-表单简介
    《Apache Kafka 实战》读书笔记-认识Apache Kafka
    HTML&CSS基础-完善clearfix
    HTML&CSS基础-使用表格布局
    比Kafka Mangaer更优秀的开源监控工具-Kafka Eagle
    Kafka吞吐量测试案例
    flume常见异常汇总以及解决方案
    运维监控-Open-Falcon单机部署实战篇
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/11290345.html
Copyright © 2020-2023  润新知