中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

tomcat 優化 jvm參數

發布時間:2020-07-26 10:48:06 來源:網絡 閱讀:182 作者:w王不二 欄目:系統運維

tomcat

1、Tomcat 簡介Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由
Apache、Sun和其他一些公司及個人共同開發而成。
Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級應用服務器。目前Tomcat最新版本為9.0。Java容器還有resin、weblogic等。
Tomcat官網: http://tomcat.apache.org

2、Tomcat好幫手---JDK

JDK是 Java 語言的軟件開發工具包,主要用于移動設備、嵌入式設備上的java應用程序。JDK是整個java開發的核心,它包含了JAVA的運行環境(JVM+Java系統類庫)和JAVA工具。 http://www.oracle.com/technetwork/java/javase/downloads/index.html

端口: tomcat自身服務的端口:8005
tomcat和其他應用通信的端口:8009 tomcat給客戶端瀏覽器訪問頁面使用的端口:8080

JVM基礎

一、JVM 虛擬機常識作為了解JVM 虛擬機的開始。我們很有必要弄明白以下兩個問題。

1.什么是JAVA虛擬機

所謂虛擬機,就是一臺虛擬的計算機。他是一款軟件,用來執行一系列虛擬計算機指令。大體上,虛

擬機可以分為系統虛擬機和程序虛擬機。大名鼎鼎的VisualBox、VMware就屬于系統虛擬機。他們完全是對物理計算機的仿真。提供了一個可以運行完整操作系統的軟件平臺。
程序虛擬機的典型代表就是Java虛擬機,它專門為執行單個計算機程序而設計,在Java虛擬機中執行
的指令我們稱為Java字節碼指令。無論是系統虛擬機還是程序虛擬機,在上面運行的軟件都唄限制于虛擬機提供的資源中。

2.JAVA 如何做到跨平臺

同一個JAVA程序(JAVA字節碼的集合),通過JAVA虛擬機(JVM)運行于各大主流操作系統平臺比如Windows、CentOS、Ubuntu等。程序以虛擬機為中介,來實現跨平臺。

1/14

3.虛擬機基本結構我們要對JVM虛擬機的結構有一個感性的認知。畢竟我們不是編程人員,認知程度達不到那么深入。

1)、類加載子系統
負責從文件系統或者網絡中加載Class信息,加載的類信息存放于一塊稱為方法區的內存空間。除了類信息外,方法區中可能還會存放運行時常量池信息,包括字符串字面量和數字量。

2/14

2)、Java堆

在虛擬機啟動的時候建立,它是Java程序最主要的內存工作區域。幾乎所有的Java對象實例都放Java堆中。堆空間是所有線程共享的,這是一塊與Java應用密切相關的內存區間。

3)、Java的NIO庫(直接內存)

允許Java程序使用直接內存。直接內存是在Java堆外的、直接向系統申請的內存區間。通常訪問直接內存的速度會優于Java堆。因此出于性能考慮,讀寫頻繁的場合可能會考慮使用直接內存。由于直接內存
在Java堆外,因此它的大小不會受限于Xmx指定的最大堆大小。但是系統內存是有限的,Java堆和直接內存的總和依然受限于操作系統能給出的最大內存。

4)、垃圾回收系統
垃圾回收系統是Java虛擬機的重要組成部分,垃圾回收器可以對方法區、Java堆和直接內存進行回
收。

5)、Java棧

每一個Java虛擬機線程都有一個私有的Java棧。一個線程的Java棧在線程創建的時候被創建。Java保存著幀信息,Java棧中保存著局部變量、方法參數,同時和Java方法的調用、返回密切相關。

4.虛擬機堆內存結構

JVM中堆空間可以分成三個大區,年輕代、老年代、永久代(方法區)。

新生代:新生區

類在這里產生和應用,最后被垃圾回收。所有的類在伊甸區被new出來,當伊甸區滿了,GC會對該區不用的對象銷毀,剩余有用的轉到幸存區。

老年代:老年區用于存放生成周期比較長的對象。

3/14

永久代:永久區存放JDK自帶的class,interface。

JVM 運維實用排障工具

jps

1、jps

用來查看Java進程的具體狀態, 包括進程ID,進程啟動的路徑及啟動參數等等,與unix上的ps類似,只不過jps是用來顯示java進程,可以把jps理解為ps的一個子集。
常用參數如下:
-q:忽略輸出的類名、Jar名以及傳遞給main方法的參數,只輸出pid -m:輸出傳遞給main方法的參數,如果是內嵌的JVM則輸出為null -l:輸出完全的包名,應用主類名,jar的完全路徑名-v:輸出傳給jvm的參數

注意: 使用jps 時的運行賬戶要和JVM 虛擬機啟動的賬戶一致。若啟動JVM虛擬機是運行的賬戶為www,那使用jps指令時,也要使用www 用戶去指定。 sudo -u www jps

Example:
// 查看已經運行的JVM 進程的實際啟動參數
[root@java-tomcat1 ~]# jps -v

58154 Jps -Denv.class.path=.:/usr/local/java/lib:/usr/local/java/jre/lib:/usr/local/java/lib/tools.jar - Dapplication.home=/usr/local/java -Xms8m

58015 Bootstrap -Djava.util.logging.config.file=/data/application/tomcat/conf/logging.properties - Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 - Djava.protocol.handler.pkgs=org.apache.catalina.webresources - Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/data/ application/tomcat -Dcatalina.home=/data/application/tomcat -Djava.io.tmpdir=/data/application/tomcat/temp

部署Tomcat

Tomcat,Resin,JBOSS,WebSphere,Weblogic屬于oracle

一、Tomcat Http Server 1.安裝JDK和tomcat
#tar xf apache-tomcat-7.0.34.tar.gz -C /usr/local/

#tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local

#ln -s /usr/local/jdk1.8.0_91 /usr/local/java 做了一個連接,或者是改名.或者直接mv
#ln -s /usr/local/apache-tomcat-7.0.34 /usr/local/tomcat
2.修改環境變量

vim /etc/profile JAVA_HOME=/usr/local/java

4/14

PATH=$JAVA_HOME/bin:$PATH //使用JAVA_HOME下的JAVA命令 export JAVA_HOME PATH
CATALINA_HOME=/usr/local/tomcat //Tomcat安裝目錄 export CATALINA_HOME
讓環境變量生效

#source /etc/profile 3.檢測
#java -version

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
4.啟動Tomcat

/usr/local/tomcat/bin/startup.sh //啟動tomcat

Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.7.0_11
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

netstat -tnlp |grep java

tcp 0 0 ::ffff:127.0.0.1:8005 ::: LISTEN 6191/java
tcp 0 0 :::8009 :::
LISTEN 6191/java
tcp 0 0 :::8080 :::* LISTEN 6191/java

/usr/local/tomcat/bin/shutdown.sh //關閉tomcat關于tomcat端口:

Tomcat服務器通過Connector連接器組件與客戶程序建立連接,Connector組件負責接收客戶的請
求,以及把Tomcat服務器的響應結果發送給客戶。默認情況下,Tomcat在server.xml中配置了兩種連接器:
第一個連接器監聽8080端口,負責建立HTTP連接。在通過瀏覽器訪問Tomcat服務器的Web應用時,使用的就是這個連接器。

第二個連接器監聽8009端口,負責和其他的HTTP服務器建立連接。在把Tomcat與其他HTTP服務器集成時,就需要用到這個連接器。
8005是tomcat本身的端口

  1. 測試
    http://192.168.2.251:8080/ 二、安裝MySQL(略) 使用mysql(略)1.使用mariadb
    yum -y install mariadb mariadb-server systemctl start mariadb

mysqladmin -u root password '123'

創建數據庫并指定字符集 create database jspgou default charset=utf8; flush privileges;

三、部署jspgou

ls /usr/local/tomcat/webapps/ //默認網站的基目錄base

docs examples host-manager manager ROOT

ls /usr/local/tomcat/webapps/ROOT //默認網站的主目錄

#unzip jsp…… .zip

#cp -r ROOT/ /usr/usr/local/tomcat/webapps/

四、更改數據庫鏈接

程序包內vim /usr/local/tomcat/webapps/ROOT\WEB-INF\config\jdbc.properties文件第20行左右jdbc.url=jdbc:mysql://127.0.0.1:3306/創建好的數據庫名?characterEncoding=UTF-8 jdbc.username=root
jdbc.password=123

3.導入數據:
mysql -u root -p123 -D jspgou < jspgou.sql

五、測試
系統管理后臺登錄:http://localhost:8080/jeeadmin/jspgou/index.do
用戶名:admin

5/14

密 碼:123456

tomcat基礎

1、tomcat主目錄介紹 [root@java-tomcat1 tomcat]# tree -L 1
.
├── bin #存放tomcat的管理腳本

├── BUILDING.txt
├── conf #tomcat的配置文件

├── CONTRIBUTING.md
├── lib #web應用調用的jar包存放路徑

├── LICENSE
├── logs #tomcat日志存放目錄

├── NOTICE

├── README.md

├── RELEASE-NOTES

├── RUNNING.txt
├── temp #存放臨時文件
├── webapps #默認網站發布目錄
└── work #存放編譯生產的.java與.class文件

2.webapps目錄介紹 [root@java-tomcat1 webapps]# tree -L 1
.

├── docs #tomcat的幫助文檔 ├── examples #web應用實例 ├── host-manager #主機管理 ├── manager #管理 └── ROOT #默認站點根目錄

3.Tomcat配置文件目錄介紹(conf) [root@java-tomcat1 conf]# tree -L 1
.

├── Catalina ├── catalina.policy

├── catalina.properties ├── context.xml

├── logging.properties

├── logs
├── server.xml # tomcat 主配置文件
├── server.xml.bak

├── server.xml.bak2
├── tomcat-users.xml # tomcat 管理用戶配置文件
├── tomcat-users.xsd

└── web.xml

4.Tomcat的管理
啟動程序 #/data/application/tomcat/bin/startup.sh 關閉程序 #/data/application/tomcat/bin/shutdown.sh

5.Tomcat日志說明
[root@java-tomcat1 bin]# tail -f /data/application/tomcat/logs/catalina.out

org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/data/application/tomcat/webapps/host-manager] has finished in [21] ms
04-Jul-2019 22:40:00.026 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/data/ application/tomcat/webapps/manager]
04-Jul-2019 22:40:00.042 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/data/ application/tomcat/webapps/manager] has finished in [16] ms

6/14

04-Jul-2019 22:40:00.048 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 04-Jul-2019 22:40:00.058 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 04-Jul-2019 22:40:00.062 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 479 ms
發現啟動時間較長,其中有一項的啟動時間占據了絕大多數

24-Nov-2017 15:09:50.629 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /application/ apache-tomcat-8.0.27/webapps/memtest.war has finished in 58,892 ms
發現耗時在這里:是session引起的隨機數問題導致的。Tocmat的Session ID是通過SHA1算法計算得到

的,計算Session ID的時候必須有一個密鑰。為了提高安全性Tomcat在啟動的時候會通過隨機生成一個密鑰。

解決Tomcat啟動慢的方法Tomcat啟動慢主要原因是生成隨機數的時候卡住了,導致tomcat啟動不了。
是否有足夠的熵來用于產生隨機數,可以通過如下命令來查看

[root@java-tomcat1 ~]# cat /proc/sys/kernel/random/entropy_avail 1065

為了加速/dev/random提供隨機數的速度,你可以通過操作設備的外設,讓其產生大量的中斷,網絡傳輸數據,按鍵,移動鼠標,在命令行敲幾個不同的命令,俗稱聚氣。
方法一:

vim $TOMCAT_HOME/bin/catalina.sh ---添加如下內容 if [[ "$JAVA_OPTS" != -Djava.security.egd= ]]; then
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"

fi

這個系統屬性egd表示熵收集守護進程(entropy gathering daemon)

方法二:

yum install rng-tools # 安裝rngd服務(熵服務,增大熵池) systemctl start rngd # 啟動服務

tomcat主配置文件詳情

Tomcat的配置文件:
Tomcat的配置文件默認存放在/usr/local/tomcat/conf目錄中,主要有以下幾個
server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主組件的相關配置信息;

web.xml:遵循Servlet規范標準的配置文件,用于配置servlet,并為所有的Web應用程序提供包括MIME映射等默認配置信息;
tomcat-user.xml:Realm認證時用到的相關角色、用戶和密碼等信息;Tomcat自帶的manager默認情
況下會用到此文件;在Tomcat中添加/刪除用戶,為用戶指定角色等將通過編輯此文件實現;catalina.policy:Java相關的安全策略配置文件,在系統資源級別上提供訪問控制的能力;catalina.properties:Tomcat內部package的定義及訪問相關的控制,也包括對通過類裝載器裝載的內
容的控制;Tomcat6在啟動時會事先讀取此文件的相關設置;
logging.properties: Tomcat6通過自己內部實現的JAVA日志記錄器來記錄操作相關的日志,此文件即為日志記錄器相關的配置信息,可以用來定義日志記錄的組件級別以及日志文件的存在位置等;

context.xml:所有host的默認配置信息;

1、Server組件:
<Server port=”8005” shutdown=”SHUTDOWN”> port: 接收shutdown指令的端口,默認僅允許通過本機訪問,默認為8005;
shutdown:發往此Server用于實現關閉tomcat實例的命令字符串,默認為SHUTDOWN;

2、Service組件:

7/14

Service主要用于關聯一個引擎和與此引擎相關的連接器,每個連接器通過一個特定的端口和協議接收入站

請求交將其轉發至關聯的引擎進行處理。困此,Service要包含一個引擎、一個或多個連接器。如上面示例中的定義:

<Service name=”Catalina”>
這定義了一個名為Catalina的Service,此名字也會在產生相關的日志信息時記錄在日志文件當中。
Service相關的屬性:
className: 用于實現service的類名,一般都是org.apache.catalina.core.StandardService。name:此服務的名稱,默認為Catalina;
3、Connector組件:
進入Tomcat的請求可以根據Tomcat的工作模式分為如下兩類:

Tomcat作為應用程序服務器:請求來自于前端的web服務器,這可能是Apache, IIS, Nginx等;Tomcat作為獨立服務器:請求來自于web瀏覽器;
Tomcat應該考慮工作情形并為相應情形下的請求分別定義好需要的連接器才能正確接收來自于客戶端的請求。一個引擎可以有一個或多個連接器,以適應多種請求方式。

定義連接器可以使用多種屬性,有些屬性也只適用于某特定的連接器類型。一般說來,常見于server.xml中的連接器類型通常有4種:
1) HTTP連接器 2) SSL連接器 3) AJP 1.3連接器 4) proxy連接器如上面示例server.xml中定義的HTTP連接器:
<Connector port=”8080″ protocol=”HTTP/1.1″ maxThreads=”150″ connectionTimeout=”20000″ redirectPort=”8443″/>
4、Engine組件:
Engine是Servlet處理器的一個實例,即servlet引擎,默認為定義在server.xml中的Catalina。Engine需要
defaultHost屬性來為其定義一個接收所有發往非明確定義虛擬主機的請求的host組件。如前面示例中定義的:

<Engine name=”Catalina” defaultHost=”localhost”>
5、Host組件:
位于Engine容器中用于接收請求并進行相應處理的主機或虛擬主機,如前面示例中的定義:

<Host name=”localhost” appBase=”webapps” unpackWARs=”true” autoDeploy=”true” xmlValidation=”false” xmlNamespaceAware=”false”> </Host>

autoDeploy:在Tomcat處于運行狀態時放置于appBase目錄中的應用程序文件是否自動進行deploy;默認為true;unpackWars:在啟用此webapps時是否對WAR格式的歸檔文件先進行展開;默認為true;

Tomcat管理功能使用

注意:測試功能,生產環境不要用

Tomcat管理功能用于對Tomcat自身以及部署在Tomcat上的應用進行管理的web應用。在默認情況下是處于禁用狀態的。如果需要開啟這個功能,就需要配置管理用戶,即配置tomcat-users.xml 文件。

[root@java-tomcat1 ~]# vim /data/application/tomcat/conf/tomcat-users.xml <role rolename="manager-gui"/>

<role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/>

<user username="tomcat" password="tomcat" roles="manager-status,manager-gui,manager-script,manager-jmx"/> </tomcat-users> # 在此行前加入上面三行

[root@java-tomcat1 conf]# vim ../webapps/manager/META-INF/context.xml

注釋掉以下部分

<!--

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1" />

-->

重啟tomcat:

8/14

[root@java-tomcat1 bin]# ./shutdown.sh [root@java-tomcat1 bin]# ./startup.sh

輸入之前配置的賬戶與密碼即可:

報錯

注意:導入數據庫時如果報錯
1.把所有datetime類型的字段默認值改成CURRENT_TIMESTAMP

2.凡是NOT NULL 的報錯 :%s/00000000/CURRENT_TIMESTAMP/

3.將壓縮包內 DB文件中jspgou.sql文件導入至創建好的jspgou數據庫中,如導入中出現執行sql語句過長問題,請修改mysql配置文件my.cnf中max_allowed_packet參數為64m,默認為1m

mysql數據庫:
[root@jspgou DB]# vim /etc/my.cnf sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUB explicit_defaults_for_timestamp=1
修改完配置文件后重新啟動服務后在導入數據庫

tomcat多實例部署

多實例:1.單機多實例,發布網站的目錄不動

2.tomcat在不同服務器上,通過共享網站目錄實現不同tomcat主機訪問統一網站

Tomcat 一機多實例多實例運行不同的應用(類似虛擬主機)

9/14

多實例運行相同的應用(實現負載均衡,支持高并發處理,session問題)

tomcat單機多實例配置
CATALINA_BASE: 在一個工作目錄下創建多實例目錄
instance1: /usr/local/tomcat/instance1/{conf,logs,temp,work} 8081 8091
instance2: /usr/local/tomcat/instance2/{conf,logs,temp,work} 8082 8092
instance3: /usr/local/tomcat/instance3/{conf,logs,temp,work} 8083 8093

webapps:

拷貝原來單實例的webapps到/下 /webapps/ROOT

  1. 以單實例為基礎

[root@www ~]# /usr/local/tomcat/bin/shutdown.sh

配置多實例步驟:

1.創建多實例目錄,根據實例多少確定分別創建目錄instance1 instance2 instance3,拷貝原來的conf,log,temp,work到3個目錄下
[root@www ~]# tree -d -L 2 /usr/local/tomcat/

/usr/local/tomcat/ ├── bin
├── instance1

│├── conf

│├── logs

│├── temp

│└── work ├── instance2
│├── conf

│├── logs

│├── temp

│└── work ├── instance3
│├── conf

│├── logs

│├── temp

│└── work └── lib

  1. 配置實例server.xml

[root@www ~]# vim /usr/local/tomcat/instance1/conf/server.xml <Server port="8091" shutdown="SHUTDOWN"> //修改8005
<Connector port="8081" protocol="HTTP/1.1" //刪掉8080和8009的配置,添加此配置 connectionTimeout="20000"
redirectPort="8443" />

<Host name="localhost" appBase="/webapps" //修改網站基準目錄 unpackWARs="true" autoDeploy="true">
......

  1. 腳本內容

[root@www ~]# vim /usr/local/tomcat/instance1/ins1.sh

10/14

  1. 啟動測試

[root@www ~]# /usr/local/tomcat/instance1/ins1.sh start [root@www ~]# /usr/local/tomcat/instance2/ins2.sh start [root@www ~]# /usr/local/tomcat/instance3/ins3.sh start

[root@www ~]# ss -tnlp |grep :80

LISTEN 0 100 :::8081 ::: users:(("java",pid=7288,fd=48)) LISTEN 0 100 :::8082 ::: users:(("java",pid=7468,fd=48)) LISTEN 0 100 :::8083 :::* users:(("java",pid=7496,fd=48))

LISTEN 0 1 ::ffff:127.0.0.1:8091 ::: users:(("java",pid=7288,fd=61)) LISTEN 0 1 ::ffff:127.0.0.1:8092 ::: users:(("java",pid=7468,fd=61)) LISTEN 0 1 ::ffff:127.0.0.1:8093 :::* users:(("java",pid=7496,fd=61))

11/14

tomcat負載均衡

Nginx配置

[root@www ~]# vim /usr/local/nginx/conf/nginx.conf

這個地方是 地址池,這里包含了后端服務器的地址和端口,這里的名字隨便啟。 http {

upstream tomcat_pool { #ip_hash; 最大失敗次數 失敗超時時間

server 192.168.122.105:8081 weight=1 max_fails=2 fail_timeout=2; server 192.168.122.105:8082 weight=1 max_fails=2 fail_timeout=2; server 192.168.122.105:8083 weight=1 max_fails=2 fail_timeout=2; server 192.168.122.105:8084 weight=1 max_fails=2 fail_timeout=2;

}

負載均衡的算法: RR round robin session ip_hash 是常用的負載均衡的算法
server { location / {

proxy_pass http://tomcat_pool; proxy_redirect off; proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}

會話保持,即將同一個client的訪問始終調度到同一后端實例。

服務調優

12/14

1、日志格式配置

[root@java-tomcat1 ~]# cd /data/application/tomcat/conf/ [root@java-tomcat1 conf]# vim server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/www/logs" prefix="jenkins-" suffix="-access_log"

pattern="%{X-Real-IP}i - %v %t "%r" - %s %b %T "%{Referer}i" "% {User-Agent}i" %a "-" "-"" />

[root@java-tomcat1 conf]# mkdir -p /data/www

2、JVM 參數優化

[root@java-tomcat1 conf]# cd ../bin/ [root@java-tomcat1 bin]# cp catalina.sh catalina.sh.bak [root@java-tomcat1 bin]# vim catalina.sh

JAVA_OPTS="$JAVA_OPTS -Xms4096m -Xmx4096m -XX:PermSize=1024m -XX:MaxPermSize=2048m"

3、開啟GC日志

vim catalina.sh

JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data/logs/gc-%t.log" [root@java-tomcat1 bin]# mkdir /data/logs

設置初始堆、非堆內存大小以及年輕代

-Xms50m –Xmx200m -XX:PermSize=30m -XX:MaxPermSize=60m
-Xloggc:eclipse_gc.log (設置垃圾回收日志打印的文件,文件名稱可以自定義)

-XX:+PrintGCTimeStamps (打印垃圾回收時間信息時的時間格式) -XX:+PrintGCDetails (打印垃圾回收詳情)
-XX:PermSize:設置永久代(perm gen)初始值。默認值為物理內存的1/64。
-XX:MaxPermSize:設置持久代最大值。物理內存的1/4。

-Xms:初始堆大小,默認為物理內存的1/64(<1GB) -Xmx:最大堆大小
-Xmn:新生代的內存空間大小,注意:此處的大小是(eden+ 2 survivor space)。與jmap -heap中顯示的
New gen是不同的。整個堆大小=新生代大小 + 老生代大小 + 永久代大小。

13/14

14/14

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新邵县| 巧家县| 喀喇| 象山县| 灌南县| 高雄市| 隆昌县| 临邑县| 佛坪县| 六安市| 凤庆县| 开化县| 云梦县| 师宗县| 浦东新区| 沙田区| 镇赉县| 灵璧县| 邛崃市| 嘉黎县| 威信县| 新和县| 本溪| 韩城市| 蒙山县| 三亚市| 玉溪市| 祁阳县| 丽水市| 旅游| 南华县| 汶上县| 黔西县| 修武县| 托克逊县| 海晏县| 古田县| 南充市| 平阴县| 永寿县| 武清区|