當前位置:首頁 » 硬碟大全 » tomcat報錯增大緩存空間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

tomcat報錯增大緩存空間

發布時間: 2022-06-19 05:22:26

⑴ Tomcat啟動報Java.io.IOException:設備上沒有空間 這個要怎麼解決

首先,它報這個,那麼你tomcat所在的盤肯定是沒空間了,你先看一下磁碟可用空間還有多少
其次,這個問題一般出在緩存區過大(比如你後台跑視頻)或log文件巨大(出現過80G的log問題,網上你搜一下就會發現)
如果是合理的沒磁碟了,只能增大磁碟空間,如果是緩沖區滿了,要麼調整程序不要用這么大緩沖,要麼增大磁碟,如果是日誌滿了,刪日誌

⑵ tomcat緩存問題

System.out.println(userName+"/"+password);

列印出來看看吧!呵呵!

不行Hi我!

=============================
竟然沒有讀取參數?
老紫竹 10:10:51
String userName = request.getParameter("userName");
另一句我就不寫了
然後再去檢測密碼
temp=DBUtility.isValide(con,userName,password);
判斷語句改一下
if(userName!=null && password!=null && !userName.equals("")&&!password.trim().equals(""))
加上null的判斷,免得出Exception

⑶ tomcat 報錯

java.lang.OutOfMemoryError: Java heap space

使用Java程序從資料庫中查詢大量的數據時出現異常:

VM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啟動的時候會自動設置Heap size的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。
解決辦法:
tomcat_home/bin下catalina.bat(win)或catalina.sh(linux)執行代碼前加上:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m

轉自:http://blog.csdn.net/jxzxm1_2/article/details/2499751

⑷ Tomcat伺服器如何清理緩存

Tomcat伺服器如何清理緩存

Tomcat因為其開源,免費,運行時佔用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統常用的功能而深受程序員的喜愛,那麼如何清理tomcat伺服器緩存呢?
Tomcat是Apache軟體基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支持,最新的Servlet 和JSP 規范總是能在Tomcat 中得到體現,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規范。因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。目前最新版本是7.0。
清理伺服器緩存可以消除某些未知的錯誤,如果你運行以前編譯的項目有錯,而沒有及時將伺服器緩存清理掉,錯誤依舊可能發生在新的項目中:所以,清理緩存是很有必要的:

步驟/方法
1
首先打開Myeclipse8.5,這里我使用的是Myeclipse8.5,所以以8.5版本來做說明:如果你使用的是Eclipse或者Myeclipse,依舊可以使用此方法:

2
第一種方法:打開一個項目,這里我打開的Mail項目,然後點擊Myeclipse菜單欄中的project-選擇clean:如下圖所示:
點擊這里可以不用進入tomcat伺服器直接清理緩存

3
上面的方式雖然簡便,不過使用起來,還是不能夠徹底的清理tomcat緩存。

4
第二種方法:
進入tomcat的安裝目錄進行清理緩存,這里我使用的tomcat6.0,使用的tomcat是免安裝的,解壓縮後直接使用,建議大家也用這個版本,而非安裝版本,如果你使用的是安裝版,方法與解壓版完全一樣。

5
然後點擊進入解壓後的tomcat,找到work文件夾,。此文件下有個catalina目錄(tomcat小名叫catalina),work目錄下的文件都可以刪除。
work目錄下有一個catalina目錄。

6
刪除work中的tomcat目錄後,緩存已經刪除。
7
如果我們先前發布的一個項目有錯,大家都知道,tomcat發布的項目在webapps下,如果以前的項目有錯那麼運行新的項目肯定還是會有錯的。以前的項目遺留的錯誤,這時,只要將以前的項目刪除掉就行了。

8
進入webapps將以前遺留的項目刪除就行了,也可以將所有的項目清空,因為Myeclipse的工作空間中還有以前的項目,我們只需要重新發布,tomcat的webapps目錄中就會將工作空間中的項目自動重新載入到webapps中。是不是很方便呢?

參考資料:網路經驗
參考鏈接:http://jingyan..com/article/b24f6c82e76af886bfe5dad3.html
———————————————分割線——————————————————
滿意請採納(⊙o⊙),以上是軟硬謙施團隊為你帶來的回答。
如果有什麼不懂的可以追問,以後有什麼問題可以向我提問或者向我的團隊提問。(*^__^*) 嘻嘻……

⑸ 如何修改和查看tomcat內存大小

為了解決tomcat在進行大並發請求時,出現內存溢出的問題,請修改tomcat的內存大小,其中分為以下兩種方式:
一、使用 catalina.bat 等命令行方式運行的 tomcat
查看系統是否能支持所填最大內存命令:java -Xmx1024m -version,當所填值不合法時,執行該命令將報錯
1、修改 tomcat\bin\Catalina.bat 文件
windows環境下:
在166行左右
rem Execute Java with the applicable properties 」以下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
在 %DEBUG_OPTS% 後面添加-Xms256m -Xmx512m
linux環境下:
打開在Tomcat的安裝目錄的bin文件的catalina.sh文件,進入編輯狀態.
在注釋後面加上如下腳本:
JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"
其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是設置Tomcat使用的內存的大小.
-XX:PermSize=64M -XX:MaxPermSize=256m 指定類空間(用於載入類)的內存大小
保存後,重新以命令行的方式運行 tomcat ,即可,然後通過最後面介紹的如何觀察tomcat現有內存情況的方法進行查看是否已經變更成功。

二、使用 系統中的 「服務」,或者開始菜單的可執行程序運行的tomcat
1、關閉 現在正在運行的tomcat

2.1 [注意]
[高版本tomcat配置方法]
如果是tomcat 5.5 或者是 5.0.28 之後的版本,在 Java 選項卡中,下方,會有
Inital memory Pool:
Maximum memory Pool:
Thread stack size:
三個輸入框,在這里即可不用做上面的操作,直接配置內存大小,只需要設置
Inital memory Pool 為 256
Maximum memory Pool 為 512
點擊確定後,重啟tomcat 生效

如果您是低版本的tomcat,發現沒有上面那幾個錄入框,請看下面的操作步驟

[低版本tomcat配置方法]
在開始菜單中,找到「Apache Tomcat 5.0」,並選擇「Configure Tomcat」,在彈出的對話框窗口中,切換到 Java VM 選項卡,並在 Java Options 輸入框的最前面輸入
-Xms256m -Xmx512m
即輸入框中的內容會像下面的代碼(與自己的環境有所區別)
-Xms256m -Xmx512m
-Dcatalina.home="C:\tomcat5"
-Djava.endorsed.dirs="C:\tomcat5\common\endorsed"
-Xrs
設置完後,點擊「確定」,並重啟tomcat即可。

三、查看現有tomcat的內存大小情況
1、啟動tomcat
2、訪問 http://localhost:8080/manager/status ,並輸入您在安裝tomcat時輸入的用戶與口令,如 admin ,密碼 admin(密碼是您在tomcat安裝時輸入的)
註:添加用戶,修改conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
3、進入了Server Status頁面,可以在JVM表格中看到
Free memory: 241.80 MB Total memory: 254.06 MB Max memory: 508.06 MB
上面的文字即代表了,當前空閑內存、當前總內存、最大可使用內存三個數據。
確定了最大內存足夠大時,tomcat即可正常運轉
最後總結下內存設置中常用的幾個參數
(1)-Xms,jvm啟動時,初始分配的堆/棧內存
(2)-Xmx,JVM最大允許分配的堆/棧內存,按需分配
(3)-Xss,設定每個線程的堆棧大小
(4)-XX:PermSize,JVM初始分配的非堆內存
(5)-XX:MaxPermSize,JVM最大允許分配的非堆內存,按需分配
舉例:
-Xms256m -Xms512m -XX:PermSize=64m -XX:MaxPermSize=128m

⑹ 怎樣調節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"/>

⑺ 如何加大jvm的內存和tomcat的內存

(1)修改 tomcat 的內存方式:
在set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%這行下面前面加上JAVA_OPTS='-Xms512m -Xmx1024m'JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"。


其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是設置Tomcat使用的內存的大小,-XX:PermSize=64M -XX:MaxPermSize=256m 指定類空間(用於載入類)的內存大小 。

(2)擴大jvm的方法這個說法太泛,其實是在運行jvm的時候指定的,如果運行的是 tomcat 就是改 catalina.bat。如果運行的是eclipse 就是修改 eclipse.ini。所以jvm的內存大小怎麼修改是看你運行的具體程序的,不通程序有不同的改法。

⑻ 如何加大jvm的內存和tomcat的內存

修改 tomcat 的內存方式:
修改 catalina.bat

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
這行下面前面加上
JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"

其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是設置Tomcat使用的內存的大小.

-XX:PermSize=64M -XX:MaxPermSize=256m 指定類空間(用於載入類)的內存大小

擴大jvm的方法這個說法太泛,其實是在運行jvm的時候指定的,如果你運行的是 tomcat 就是改 catalina.bat 如果你運行的是eclipse 就是修改 eclipse.ini 所以jvm的內存大小怎麼修改是看你運行的具體程序的,不通程序有不同的改法

⑼ 啟動tomcat 6的時候報錯

/首先檢查程序有沒有限入死循環
這個問題主要還是由這個問題 java.lang.OutOfMemoryError: Java heap space 引起的。第一次出現這樣的的問題以後,引發了其他的問題。在網上一查可能是JAVA的堆棧設置太小的原因。
跟據網上的答案大致有這兩種解決方法:
1、設置環境變數
解決方法:手動設置Heap size
修改TOMCAT_HOME/bin/catalina.sh
set JAVA_OPTS= -Xms32m -Xmx512m
可以根據自己機器的內存進行更改。

2、java -Xms32m -Xmx800m className
就是在執行JAVA類文件時加上這個參數,其中className是需要執行的確類名。(包括包名)
這個解決問題了。而且執行的速度比沒有設置的時候快很多。

如果在測試的時候可能會用Eclispe 這時候就需要在Eclipse ->run -arguments 中的VM arguments 中輸入-Xms32m -Xmx800m這個參數就可以了。
後來在Eclilpse中修改了啟動參數,在VM arguments 加入了-Xms32m -Xmx800m,問題解決。
一、java.lang.OutOfMemoryError: PermGen space
PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,
這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,
它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對
PermGen space進行清理,所以如果你的應用中有很多CLASS的話,就很可能出現PermGen space錯誤,
這種錯誤常見在web伺服器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超過了jvm默認的大小(4M)那麼就會產生此錯誤信息了。
解決方法: 手動設置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在「echo "Using CATALINA_BASE: $CATALINA_BASE"」上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建議:將相同的第三方jar文件移置到tomcat/shared/lib目錄下,這樣可以達到減少jar 文檔重復佔用內存的目的。
二、java.lang.OutOfMemoryError: Java heap space
Heap size 設置
JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啟動的時候會自動設置Heap size的值,
其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可
進行設置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。
提示:在JVM中如果98%的時間是用於GC且可用的Heap size 不足2%的時候將拋出此異常信息。
提示:Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同,而-Xmn為1/4的-Xmx值。
解決方法:手動設置Heap size
修改TOMCAT_HOME/bin/catalina.sh
在「echo "Using CATALINA_BASE: $CATALINA_BASE"」上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三、實例,以下給出1G內存環境下java jvm 的參數設置參考:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
很大的web工程,用tomcat默認分配的內存空間無法啟動,如果不是在myeclipse中啟動tomcat可以對tomcat這樣設置:
TOMCAT_HOME/bin/catalina.bat 中添加這樣一句話:

set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m
如果要在myeclipse中啟動,上述的修改就不起作用了,可如下設置:
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m
以上是轉貼,但本人遇見的問題是:在myeclipse中啟動Tomcat時,提示"ava.lang.OutOfMemoryError: Java heap space",解決辦法就是:
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m

轉來的,你試試~