linuxjvm配置linuxjvm设置

在Eclipse中怎么设置为使用JDK作为JVM?

不用设置了。一般Eclipse有自带的,一定要设置的话,Eclipse->Windows->Preferences->Java->InstalledJREs其中有一项能引入jdk路径(你安装JDK的那个bin文件夹)。

如何设置Docker容器中Java应用的内存限制?

如果使用官方的Java镜像,或者基于Java镜像构建的Docker镜像,都可以通过传递JAVA_OPTS环境变量来轻松地设置JVM的内存参数。比如,对于官方Tomcat镜像,我们可以执行下面命令来启动一个最大内存为512M的tomcat实例

dockerrun--rm-eJAVA_OPTS='-Xmx512m'tomcat:8

在日志中,我们可以清楚地发现设置已经生效“Commandlineargument:-Xmx512m”

02-Apr-201612:46:26.970INFOorg.apache.catalina.startup.VersionLoggerListener.logServerversion:ApacheTomcat/8.0.32

02-Apr-201612:46:26.974INFOorg.apache.catalina.startup.VersionLoggerListener.logServerbuilt:Feb2201619:34:53UTC

02-Apr-201612:46:26.975INFOorg.apache.catalina.startup.VersionLoggerListener.logServernumber:8.0.32.0

02-Apr-201612:46:26.975INFOorg.apache.catalina.startup.VersionLoggerListener.logOSName:Linux

02-Apr-201612:46:26.975INFOorg.apache.catalina.startup.VersionLoggerListener.logOSVersion:4.1.19-boot2docker

02-Apr-201612:46:26.975INFOorg.apache.catalina.startup.VersionLoggerListener.logArchitecture:amd64

02-Apr-201612:46:26.975INFOorg.apache.catalina.startup.VersionLoggerListener.logJavaHome:/usr/lib/jvm/java-7-openjdk-amd64/jre

02-Apr-201612:46:26.976INFOorg.apache.catalina.startup.VersionLoggerListener.logJVMVersion:1.7.0_95-b00

02-Apr-201612:46:26.976INFOorg.apache.catalina.startup.VersionLoggerListener.logJVMVendor:OracleCorporation

02-Apr-201612:46:26.977INFOorg.apache.catalina.startup.VersionLoggerListener.logCATALINA_BASE:/usr/local/tomcat

02-Apr-201612:46:26.977INFOorg.apache.catalina.startup.VersionLoggerListener.logCATALINA_HOME:/usr/local/tomcat

02-Apr-201612:46:26.978INFOorg.apache.catalina.startup.VersionLoggerListener.logCommandlineargument:-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties

02-Apr-201612:46:26.978INFOorg.apache.catalina.startup.VersionLoggerListener.logCommandlineargument:-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

02-Apr-201612:46:26.978INFOorg.apache.catalina.startup.VersionLoggerListener.logCommandlineargument:-Xmx512m

...

然而在Docker集群上部署运行Java容器应用的时候,仅仅对JVM的heap参数设置是不够的,我们还需要对Docker容器的内存资源进行限制:

1.限制容器使用的内存的最大量,防止对系统或其他应用造成伤害

2.能够将Docker容器调度到拥有足够空余的内存的节点,从而保证应用的所需运行资源

关于容器的资源分配约束,Docker提供了相应的启动参数

对内存而言,最基本的就是通过-m参数来约束容器使用内存的大小

-m,--memory=""

Memorylimit(format:number>).Numberisapositiveinteger.Unitcanbeoneofb,k,m,org.Minimumis4M.

那么问题就来了,为了正确设置Docker容器内存的大小,难道我们需要同时传递容器的内存限制和JAVA_OPTS环境变量吗?如下所示:

dockerrun--rm-m512m-eJAVA_OPTS='-Xmx512m'tomcat:8

这个方法有两个问题

1.需要管理员保证容器内存和JVM内存设置匹配,否则可能引发错误

2.当对容器内存限制调整时,环境变量也需要重新设定,这就需要重建一个新的容器

是否有一个方法,可以让容器内部的JVM自动适配容器的内存限制?这样可以采用更加统一的方法来进行资源管理,简化配置工作。

大家知道Docker是通过CGroup来实现资源约束的,自从1.7版本之后,Docker把容器的localcgroups以只读方式挂载到容器内部的文件系统上,这样我们就可以在容器内部,通过cgroups信息来获取系统对当前容器的资源限制了。

我创建了一个示例镜像registry.aliyuncs.com/denverdino/tomcat:8-autoheap

,其源代码可以从Github获得。它基于Docker官方Tomcat镜像创建,它的启动脚本会检查CGroup中内存限置,并计算JVM最大Heapsize来传递给Tomcat。其代码如下

#!/bin/bash

limit_in_bytes=$(cat/sys/fs/cgroup/memory/memory.limit_in_bytes)

#Ifnotdefaultlimit_in_bytesincgroup

if

then

limit_in_megabytes=$(expr$limit_in_bytes/1048576)

heap_size=$(expr$limit_in_megabytes-$RESERVED_MEGABYTES)

exportJAVA_OPTS="-Xmx${heap_size}m$JAVA_OPTS"

echoJAVA_OPTS=$JAVA_OPTS

fi

execcatalina.shrun

说明:

为了监控,故障排查等场景,我们预留了部分内存(缺省64M),其余容器内存我们都分配给JVM的堆。

这里没有对边界情况做进一步处理。在生产系统中需要根据情况做相应的设定,比如最大的堆大小等等。

现在我们启动一个tomcat运行在512兆的容器中

dockerrun-d--nametest-m512mregistry.aliyuncs.com/denverdino/tomcat:8-autoheap

通过下列命令,从日志中我们可以检测到相应的JVM参数已经被设置成448MB(512-64)

dockerlogstest

...

02-Apr-201614:18:09.870INFOorg.apache.catalina.startup.VersionLoggerListener.logCommandlineargument:-Xmx448m

...

我们也可以方便的调整Java应用的内存.

Docker1.10提供了对容器资源限制的动态修改能力。但是由于JVM无法感知容器资源修改,我们依然需要重启tomcat来变更JVM的内存设置,例如,我们可以通过下面命令把容器内存限制调整到1GB

dockerupdate-m1024mtest

dockerrestarttest

再次检查日志,相应的JVMHeapSize最大值已被设置为960MB

dockerlogstest

...

02-Apr-201614:21:07.644INFOorg.apache.catalina.startup.VersionLoggerListener.logCommandlineargument:-Xmx960m

linuxJni调用so文件建了测试WebProject写了一个servlet执行调用,一启动tomcatjvm崩溃了,错误日志如下?

建议你在linux底下编译so加-g选项,然后gdbjava,进去以后可以bc函数名来设置断点,单步调试。或者生成core文件,再gdbjavacore看看崩溃堆栈上下文。推荐第一种方式。

any100参数设置?

数设置

1、修改启动时内存参数、并指定JVM时区(在windowsserver2008下时间少了8个小时):

在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:

window下,在catalina.bat最前面:

setJAVA_OPTS=-XX:PermSize=64M-XX:MaxPermSize=128m-Xms512m-Xmx1024m

一定加在catalina.bat最前面。

linux下,在catalina.sh最前面增加:

JAVA_OPTS="-XX:PermSize=64M-XX:MaxPermSize=128m-Xms512m-Xmx1024m-Duser.timezone=Asia/Shanghai"

注意:前后二者区别,有无set,有无双引号。

2、线程池配置(Tomcat6下)

使用线程池,用较少的线程处理较多的访问,可提高tomcat处理请求的能力。使用方式:

首先。打开/conf/server.xml,增加

Executorname="tomcatThreadPool"namePrefix="catalina-exec-"

maxThreads="500"minSpareThreads="20"maxIdleTime="60000"/>

最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。

然后,修改Connector...>节点,增加executor属性,如:

Connectorexecutor="tomcatThreadPool"

port="80"protocol="HTTP/1.1"

connectionTimeout="60000"

keepAliveTimeout="15000"

maxKeepAliveRequests="1"

redirectPort="443"

....../>

注意:可以多个connector公用1个线程池。

3、调整连接相关Connector的参数:

Connectorexecutor="tomcatThreadPool"

port="80"protocol="HTTP/1.1"

connectionTimeout="60000"

keepAliveTimeout="15000"

maxKeepAliveRequests="1"

redirectPort="443"

maxHttpHeaderSize="8192"URIEncoding="UTF-8"enableLookups="false"acceptCount="100"disableUploadTimeout="true"/



  • linux涓jvm鍐呭瓨涓嶅鎬庝箞瑙e喅
    绛旓細鍔犲ぇJVM鍚姩鏃剁殑鍐呭瓨 java -Xmx1g -Xms1g application -Xmx1g 璁剧疆鏈澶у彲鐢ㄥ唴瀛樹负1g -Xms1g 璁剧疆鍐呭瓨鍒濆鍖栨渶灏忓1g
  • JVM绾跨▼鐨勬爤鍦64浣Linux鎿嶄綔绯荤粺涓婄殑榛樿澶у皬鏄灏
    绛旓細涓嶆樉寮璁剧疆-Xss鎴-XX:ThreadStackSize鏃讹紝鍦Linux x64涓奣hreadStackSize鐨勯粯璁ゅ煎氨鏄1024KB锛岀粰Java绾跨▼鍒涘缓鏍堜細鐢ㄨ繖涓弬鏁版寚瀹氱殑澶у皬銆傝繖鏄墠涓鍧椾唬鐮佺殑鎰忔濄傚鏋滄妸-Xss鎴栬-XX:ThreadStackSize璁句负0锛屽氨鏄娇鐢ㄢ滅郴缁熼粯璁ゅ尖濄傝屽湪Linux x64涓奌otSpot VM缁橨ava鏍堝畾涔夌殑鈥滅郴缁熼粯璁も濆ぇ灏忎篃鏄1MB銆傛墍浠...
  • Linux 褰搄meter鍘嬫祴鏃,JVM鍐呭瓨娉勬紡,绔彛涓嶅闂,瑙e喅鍔炴硶
    绛旓細杩樻湁鍙︿竴涓柟娉曪細鍚姩鍔犲弬鏁璁剧疆锛JVM_ARGS="-Xms2048m -Xmx2048m" jmeter -t test.jmx 锛堜笂闈㈣皟鏁村唴瀛樻牸寮忓彲浠1g 2g锛屼篃鍙互1024m 2048m锛岃繖鏍峰啓閮藉彲浠ワ級Response code: Non HTTP response code: java.net.BindException Response message: Non HTTP response message: Address already in use: ...
  • 濡備綍鏌ョ湅褰撳墠linux绯荤粺缁JVM鍒嗛厤浜嗗澶х殑鍐呭瓨
    绛旓細浠AS涓轰緥锛歔tmp]$ ps -ef | grep java root 9787 1 0 Sep17 ? 00:02:48 /opt/IBM/WebSphere/AppServer/java/bin/java -Xms50m -Xmx256m -Xms 鍜 -Xmx 鍒嗗埆浠h〃鍒嗛厤JVM鐨勬渶灏忓唴瀛樺拰鏈澶у唴瀛樸傚爢鏍堜俊鎭綘鍙互鐢 kill -3 鍚庨潰璺熶笂java杩涚▼鐨刾id锛岃繖鏍峰氨鑳界敓鎴 thread dump...
  • linux鏌ョ湅jvm浣跨敤鎯呭喌linuxjvm鏌ョ湅
    绛旓細;3.鍗曞嚮宸ュ叿閫夐」鎵撳紑杈呭姪鑿滃崟鏍忥紝鎵惧埌寮鍙戜汉鍛樻ā寮忛夐」锛岀劧鍚庡崟鍑绘墦寮鎺у埗鍙般;4.鏇村揩鐨勬柟娉曟槸鎸塅12閿揩閫熸墦寮鎺у埗鍙般倃ps濡備綍鏌ヨjvm缂栫爜锛焪ps鏌ョ湅缂栫爜鏍煎紡宸︿笂瑙掔殑:鏂囦欢鈥斺旈夐」鈥斺斿父瑙勪笌淇濆瓨 centos7鏌ョ湅jvm鍗犵敤鍐呭瓨锛熼偅鏄唴瀛樹娇鐢ㄦ儏鍐碉紝搴旇鍦ㄧ瀹堕噷闈㈠氨鑳界湅瑙侊紝鎴栬呭湪璁剧疆閲岄潰閮借兘鐪嬭 ...
  • 濡備綍璁╁湪XP涓嬪紑鍙戠殑java绋嬪簭鍦linux涓杩愯,linux涓嬮渶瀹夎jdk鍚?鍙﹀浠涔...
    绛旓細JRE锛欽ava Runtime Environment 浠呬粎杩愯鏃朵笉闇瑕丣DK鐨勶紝JRE灏卞浜嗭紝濡傛灉寮鍙戠殑璇濊繕鏄瀹夎JDK鐨 JVM锛欽ava Virtual Machine java涔嬫墍浠ヨ绉颁负璺ㄥ钩鍙扮殑璇█锛屽氨鍥犱负浠栫殑杩愯鐜鏄嫭绔嬩簬绯荤粺澶х幆澧冪殑锛岃繖涓繍琛岀幆澧冨氨鏄痡ava铏氭嫙鏈猴紝姣忓綋杩愯涓涓猨ava绋嬪簭鐨勬椂鍊欙紝绯荤粺灏变細鍒涘缓涓涓猨ava铏氭嫙鏈猴紝鐒跺悗java绋嬪簭鍦...
  • java绋嬪簭鍦linux(Ubuntu14.04)涓嬭繍琛岄渶瑕佸畨瑁呭叾浠栫殑鎻掍欢涔
    绛旓細闇瑕佸畨瑁匤DK锛孞DK涓寘鍚JVM锛岃孞VM鏄痡ava绋嬪簭杩愯鐨勫熀纭銆1. 鍏堜粠Oracle瀹樼綉涓嬭浇JDK銆傚厛閫夋嫨鍚屾剰鎸夐挳锛岀劧鍚庢牴鎹嚜宸辩殑绯荤粺涓嬭浇鐩稿簲鐗堟湰銆傛垜鐨勭郴缁熸槸Ubuntu14.04 64浣嶇殑锛屾墍浠ユ垜涓嬭浇鐨 2. 鍒涘缓涓涓洰褰/usr/lib/jvm浠ヤ究浜庢妸涓嬭浇瑙e帇鍚庣殑鍖呮斁鍒拌繖涓洰褰曚笅銆3. 瑙e帇骞舵妸瑙e帇鍚庣殑jdk1.8.0_25鏂囦欢澶...
  • linux鐩戞帶jvm鍐呭瓨linux鐩戞帶jvm
    绛旓細arthas鍙傛暟锛焌rthas鐨勫弬鏁板涓:灏哄鏄142*458*754MM锛屽熀鏈娇鐢ㄥ満鏅槸瀹氫綅澶嶇幇涓浜涚敓浜х幆澧冩瘮杈冮毦浠ュ畾浣嶉棶棰樸傚彲浠ュ湪绾挎帓鏌ラ棶棰橈紝浠ュ強鍔ㄦ佽拷韪狫ava浠g爜锛屽疄鏃剁洃鎺JVM鐘舵佺瓑绛夈俛rthas涓彲浠ョ湅鍒板緢璇︾粏鐨jvm鐘舵佷互鍙婁竴浜涙瘮杈冩柟渚跨殑宸ュ叿锛屾瘮濡傚弽缂栬瘧锛屽湪绾胯皟璇曠瓑銆傞湼澶╁畨鐩戞帶鎬庢牱鎭㈠鍑哄巶璁剧疆锛1锛屾仮澶嶅嚭鍘傝缃浜庝竴鑸...
  • linux jvm g1鍨冨溇鍥炴敹鏃,璁剧疆鐨70%瑙﹀彂gc鐨勫洖鏀,涓轰粈涔堜笉绠$敤_鐧惧害...
    绛旓細linux jvm g1鍨冨溇鍥炴敹鏃讹紝璁剧疆鐨70%瑙﹀彂gc鐨勫洖鏀 Java鐨勫爢鏄竴涓繍琛屾椂鏁版嵁鍖猴紝绫荤殑瀹炰緥(瀵硅薄)浠庝腑鍒嗛厤绌洪棿銆侸ava铏氭嫙鏈(JVM)鐨勫爢涓偍瀛樼潃姝e湪杩愯鐨勫簲鐢ㄧ▼搴忔墍寤虹珛鐨勬墍鏈夊璞★紝杩欎簺瀵硅薄閫氳繃new銆乶ewarray銆乤newarray鍜宮ultianewarray绛夋寚浠ゅ缓绔嬶紝浣嗘槸瀹冧滑涓嶉渶瑕佺▼搴忎唬鐮佹潵鏄惧紡鍦伴噴鏀俱備竴鑸潵璇...
  • resin 閰嶇疆jvm 鍙傛暟 鍦ㄥ摢涓枃浠
    绛旓細2. 璁剧疆resin.conf鍙傛暟鍙JVM璁剧疆 <jvm-arg>-Xmx4096m</jvm-arg> <jvm-arg>-Xms4096m</jvm-arg> <jvm-arg>-Xmn512M</jvm-arg> <jvm-arg>-Xss50M</jvm-arg> <jvm-arg>-XX:PermSize=768M</jvm-arg> <jvm-arg>-XX:MaxPermSize=768M</jvm-arg> <jvm-arg>-XX:SurvivorRatio=8</jvm-arg> ...
  • 扩展阅读:javascript免费网站 ... 国外直播sdk ... xboxone港版欧版美版区别 ... matebook14 ... www.sony.com.cn ... macbook ... 黑马java视频 ... java windowbuilder ... 国产任天堂switch手柄 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网