① 如何設置 java_OPTS
在windows平台,需要參照如下步驟設置:
1 On the taskabar, click Start, and then point to Settings, Control Panel, and System.
2 In the System Properties dialog box Advanced tab, click Environment Variables.
3 In the Environment Variables dialog box, under System variables, click New.
4 In the New System Variable dialog box, enter:
a Variable name: JAVA_OPTS.
b Variable value -Xms256m -Xmx512m
5 Click OK.
6 Verify that the Environment Variables dialog box displays the following system variable name value pair:
JAVA_OPTS="-Xms256m -Xmx512m "
7 Click OK, OK to close the System Properties dialog box.
在linux/unix下,需要參照以下步驟設置
1 Start a terminal session.
2 At the command prompt type:
3 export set JAVA_OPTS=」-Xms256m -Xmx512m」
4 Close the terminal session.
② java opts這個參數在什麼地方設置
你可以看一下你的啟動腳本裡面,他裡面應該有設置值的,如果沒有的話,他會調用 其他配置文件,裡面應該有配置的。比如:Tomcat 的啟動文件會調用 catalina.bat ,然後你在 catalina.bat 裡面,可以看到:
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
③ linux下tomcat6內存如何設置(詳細)我在catalina.sh裡面加了JAVA_OPTS每次重啟報指令無效!!
這樣寫:
declare -x JAVA_OPTS="-Xms128m -Xmx256"
"declare -x"一定要加,不然就會報-x指令無效,還有後面的引號也要注意加上
④ set JAVA_OPTS=-Xms128m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=1024m
如果是2G內存的話,就可以這樣設置,Xms和PermSize只對性能有影響。
關鍵是Xmx和MaxPermSize,如果是3G以上的內存的話,可以把Xmx設置的大一些,比如Xmx1024m,代表
虛擬機
可以使用1G的內存,Xmx2048m表示虛擬機可以使用2G的內存,1G的內存對於一個Tomcat而言應該綽綽有餘了。
⑤ 如何修改java虛擬機內存
一、設置JVM內存設置
1. 設置JVM內存的參數有四個:
-Xmx Java Heap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;
-Xmn Java Heap Young區大小,不熟悉最好保留默認值;
-Xss 每個線程的Stack大小,不熟悉最好保留默認值;
2. 如何設置JVM內存分配:
(1)當在命令提示符下啟動並使用JVM時(只對當前運行的類Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)當在集成開發環境下(如eclipse)啟動並使用JVM時:
a. 在eclipse根目錄下打開eclipse.ini,默認內容為(這里設置的是運行當前開發工具的JVM內存分配):
-vmargs
-Xms40m
-Xmx256m
-vmargs表示以下為虛擬機設置參數,可修改其中的參數值,也可添加-Xmn,-Xss,另外,eclipse.ini內還可以設置非堆內存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此處設置的參數值可以通過以下配置在開發工具的狀態欄顯示:
在eclipse根目錄下創建文件options,文件內容為:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目錄下的eclipse.ini文件,在開頭處添加如下內容:
-debug
options
-vm
javaw.exe
重新啟動eclipse,就可以看到下方狀態條多了JVM信息。
b. 打開eclipse-窗口-首選項-Java-已安裝的JRE(對在當前開發環境中運行的java程序皆生效)
編輯當前使用的JRE,在預設VM參數中輸入:-Xmx128m -Xms64m -Xmn32m -Xss16m
c. 打開eclipse-運行-運行-Java應用程序(只對所設置的java類生效)
選定需設置內存分配的類-自變數,在VM自變數中輸入:-Xmx128m -Xms64m -Xmn32m -Xss16m
註:如果在同一開發環境中同時進行了b和c設置,則b設置生效,c設置無效,如:
開發環境的設置為:-Xmx256m,而類Test的設置為:-Xmx128m -Xms64m,則運行Test時生效的設置為:
-Xmx256m -Xms64m
(3)當在伺服器環境下(如Tomcat)啟動並使用JVM時(對當前伺服器環境下所以Java程序生效):
a. 設置環境變數:
變數名:CATALINA_OPTS
變數值:-Xmx128m -Xms64m -Xmn32m -Xss16m
b. 打開Tomcat根目錄下的bin文件夾,編輯catalina.bat,將其中的�TALINA_OPTS%(共有四處)替換為:-Xmx128m -Xms64m -Xmn32m -Xss16m
⑥ 如何優化tomcat配置
Tomcat有很多方面,我從內存、並發、緩存四個方面介紹優化方法。
一.Tomcat內存優化
Tomcat內存優化主要是對 tomcat 啟動參數優化,我們可以在 tomcat 的啟動腳本 catalina.sh 中設置 JAVA_OPTS 參數。
JAVA_OPTS參數說明
-server 啟用jdk 的 server 版;
-Xms java虛擬機初始化時的最小內存;
-Xmx java虛擬機可使用的最大內存;
-XX:PermSize 內存永久保留區域
-XX:MaxPermSize 內存最大永久保留區域
伺服器參數配置
現公司伺服器內存一般都可以加到最大2G ,所以可以採取以下配置:
JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'
配置完成後可重啟Tomcat ,通過以下命令進行查看配置是否生效:
首先查看Tomcat 進程號:
sudo lsof -i:9027
我們可以看到Tomcat 進程號是 12222 。
查看是否配置生效:
sudo jmap – heap 12222
我們可以看到MaxHeapSize 等參數已經生效。、
二.Tomcat並發優化
1.Tomcat連接相關參數
在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中
1>參數說明
minProcessors:最小空閑連接線程數,用於提高系統處理性能,默認值為 10
maxProcessors:最大連接線程數,即:並發處理的最大請求數,默認值為 75
acceptCount:允許的最大連接數,應大於等於 maxProcessors ,默認值為 100
enableLookups:是否反查域名,取值為: true 或 false 。為了提高處理能力,應設置為 false
connectionTimeout:網路連接超時,單位:毫秒。設置為 0 表示永不超時,這樣設置有隱患的。通常可設置為30000 毫秒。
其中和最大連接數相關的參數為maxProcessors 和 acceptCount 。如果要加大並發連接數,應同時加大這兩個參數。
web server允許的最大連接數還受制於操作系統的內核參數設置,通常 Windows 是 2000 個左右, Linux 是 1000 個左右。
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
2.調整連接器connector的並發處理能力
1>參數說明
maxThreads 客戶請求最大線程數
minSpareThreads Tomcat初始化時創建的 socket 線程數
maxSpareThreads Tomcat連接器的最大空閑 socket 線程數
enableLookups 若設為true, 則支持域名解析,可把 ip 地址解析為主機名
redirectPort 在需要基於安全通道的場合,把客戶請求轉發到基於SSL 的 redirectPort 埠
acceptAccount 監聽埠隊列最大數,滿了之後客戶請求會被拒絕(不能小於maxSpareThreads )
connectionTimeout 連接超時
minProcessors 伺服器創建時的最小處理線程數
maxProcessors 伺服器同時最大處理線程數
URIEncoding URL統一編碼
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
3.Tomcat緩存優化
1>參數說明
c ompression 打開壓縮功能
compressionMinSize 啟用壓縮的輸出內容大小,這裡面默認為2KB
compressableMimeType 壓縮類型
connectionTimeout 定義建立客戶連接超時的時間. 如果為 -1, 表示不限制建立客戶連接的時間
2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
4.參考配置
1>舊有的配置
參考網路對伺服器做過如下配置,拿出來分享下:
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="200"
redirectPort="8443"
disableUploadTimeout="true" />
後來發現在訪問量達到3 百萬多的時候出現性能瓶頸。
2>更改後的配置
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
⑦ set JAVA_OPTS=%JAVA_OPTS% -server -Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=512m
設置內存超過了你電腦能用的內存,所以啟動不了,再加大最少要內存為8G的電腦。
⑧ 如何安裝JAVA虛擬機並設置JAVA環境變數
vi /etc/profile 末尾加上如下配置
export JAVA_HOME=/usr/local/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
並檢查java版本
java -version
配置java虛擬機即調整JVM大小
進入tomcat的bin目錄編輯catalina.sh文件
在echo "Using CATALINA_BASE: $CATALINA_BASE"上面加入以下行:JAVA_OPTS="$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
手動設置MaxPermSize大小
在catalina.sh添加如下行
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"
如果tomcat的日誌中出現 java.lang.OutOfMemoryError: PermGen space
不是存在內存泄露問題就是JVM設置過小