⑴ linux 怎麼給tomcat增加內存
在bin/catalina.bat(windows系統tomcat)或者bin/catalina.sh(Linux系統tomcat)中設置變數,示例如下: java_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m -Xms800m -Xmx800m -XX:MaxNewSize=256m" Xms是最小內存,Xmx是最大內存,P...
⑵ linux下tomcat6內存如何設置(詳細)我在catalina.sh裡面加了JAVA_OPTS每次重啟報指令無效!!
這樣寫:
declare -x JAVA_OPTS="-Xms128m -Xmx256"
"declare -x"一定要加,不然就會報-x指令無效,還有後面的引號也要注意加上
⑶ Tomcat配置實踐
要部署使用tomcat,則必須了解tomcat的目錄結構以及各目錄的作用。這里以tomcat7為例,進入tomcat安裝目錄下:
前端請求被tomcat直接接收或者由前端的代理,通過HTTP,或者AJP代理給Tomcat,此時請求被tomcat中的connector接收,不同的connector和Engine被service組件關聯起來,在一個Engine中定義了許多的虛擬主機,由Host容器定義,每一個Host容器代表一個主機,在各自的Host中,又可以定義多個Context,用此來定義一個虛擬主機中的多個獨立的應用程序。
Tomcat Server的結構圖如下:
看上去很復雜。其實,大部分都是注釋。下面是一個簡圖說明了各組件之間的關系!
上面列出的比較常用的組件元素,server.xml文件中可定義的元素非常多,包括Server, Service, Connector, Engine, Cluster, Host, Alias, Context, Realm, Valve, Manager, Listener, Resources, Resource, ResourceEnvRef, ResourceLink, WatchedResource, GlobalNameingResources, Store, Transaction, Channel, Membership, Transport, Member, ClusterListener等等。
由以上配置不難看出存在的一個問題。如果我們想要對其中一個應用程序的配置做一些修改,那麼就必須重新啟動tomcat,那樣勢必就會影響到另外兩個應用程序的正常服務。因此以上配置是不適合線上使用的, 因此需要將其配置為多實例,每個實例只跑一個獨立的應用程序,那樣我們應用程序之間就不會在互相受到影響。 但是我們將面臨這樣一豎雹個問題,80埠只能被一個HTTP/1.1 Connector監聽,而三個tomcat實例則至少需要3個HTTP/1.1 Connector,這樣我們就 需要一個前端代理做分發處理,接收HTTP 80埠的請求,按域名通過每個tomcat實例的AJP/1.3 Connector傳遞請求 。而前端的代理選擇apache,基於這樣的思路,我們還可以做到tomcat的負載均衡,而且 apache會將接收的HTTP超文本傳輸報文重新封裝成二進制格式通過AJP/1.3 協議傳遞給後端的tomcat處理 ,在效率上余指帆也是有明顯的提升。
這會讓Tomcat啟動一個server實例(即一個JVM),它監聽在8005埠以接收shutdown命令。各Server的定義不能使用同一個埠,這意味著如果在同一個物理機上啟動了多個Server實例,必須配置它們使用不同的埠。這個埠的定義用於為管理員提供一個關閉此實例的便捷途徑,因此,管理員可以直接telnet至此埠使用SHUTDOWN命令關閉此實例。不過,基於安全形度的考慮,這通常不允許遠程進行。
該元素代表整個容器,是Tomcat實例的頂層元素。由org.apache.catalina.Server介面來定義。它包含一個或多個<Service>元素。並且它不能做為任何元素的子元素。
Service主要用於關聯一個引擎和與此引擎相關的連接器,每個連接器通過一個特定的埠和協議接收入站請求交將其轉發至關聯的引擎進行處理。因此,Service要包含一個引擎、一個或多個連接器。
該元素由org.apache.catalina.Service介面定義,它包含一個<Engine>元素,以及一個或多個<Connector>,這些Connector元素共享用同一個Engine元素。
Engine是Servlet處理器的一個實逗備例,即servlet引擎,默認為定義在server.xml中的Catalina。
每個Service元素只能有一個Engine元素。元素處理在同一個<Service>中所有<Connector>元素接收到的客戶請求。由org.apahce.catalina.Engine介面定義。
位於Engine容器中用於接收請求並進行相應處理的主機或虛擬主機。
它由Host介面定義。一個Engine元素可以包含多個<Host>元素。每個<Host>的元素定義了一個虛擬主機。它包含了一個或多個Web應用<Context>。
Context在某些意義上類似於apache中的路徑別名,一個Context定義用於標識tomcat實例中的一個Web應用程序。
它由Context介面定義。是使用最頻繁的元素。每個<Context>元素代表了運行在虛擬主機上的單個Web應用。一個<Host>可以包含多個<Context>元素。每個web應用有唯一的一個相對應的Context代表web應用自身。servlet容器為第一個web應用創建一個 ServletContext對象。
由Connector介面定義。<Connector>元素代表與客戶程序實際交互的組件,它負責接收客戶請求,以及向客戶返回響應結果。
進入Tomcat的請求可以根據Tomcat的工作模式分為如下兩類:
Tomcat應該考慮工作情形並為相應情形下的請求分別定義好需要的連接器才能正確接收來自於客戶端的請求。一個引擎可以有一個或多個連接器,以適應多種請求方式。
定義連接器可以使用多種屬性,有些屬性也只適用於某特定的連接器類型。一般說來,常見於server.xml中的連接器類型通常有4種:
Connector元素共用屬性:
HttpConnector元素的屬性:
AJP Connector的屬性:
即一個service配置多個埠,項目可以通過多個埠訪問。 修改tomcat-homeconf下的server.xml,在Service下配置多個<Connector>即可。
在這個應用里,可以用8080埠號訪問服務,也可以用8099埠號來訪問服務; 服務放置的路徑由host決定,上例中服務放在webapps下。
即配置多個service,每個service可以配置多個埠。修改tomcat-homeconf下的server.xml,添加多個Service即可。
注意:Service name、Engine name、appBase,埠號別忘了修改,以免重復。
以上三個service,發布的路徑不同,項目分別發布在webapps、webapps1、webapps2下,訪問不同的項目的方法:
在$CATALINA_HOME/conf/server.xml配置文件中的Connetctor節點,和連接數相關的參數配置和優化。
Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。默認值200。 可以根據機器的時期性能和內存大小調整,一般可以在400-500 。最大可以在800左右。
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。默認值10。
Tomcat初始化時創建的線程數。默認值4。
一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。默認值50。
是否反查域名,默認值為true。 為了提高處理能力,應設置為false 。
網路連接超時,默認值20000,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。 通常可設置為30000毫秒 。
保持請求數量,默認值100。
輸入流緩沖大小,默認值2048 bytes。
壓縮傳輸,取值on/off/force,默認值off。
其中和最大連接數相關的參數為maxThreads和acceptCount。 如果要加大並發連接數,應同時加大這兩個參數 。 web server允許的最大連接數還受制於操作系統的內核參數設置 ,通常Windows是2000個左右,Linux是1000個左右。
配置示例:
Tomcat默認可以使用的內存為128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件$CATALINA_HOME/bin/catalina.sh的前面,增加如下設置:
一般說來,你應該使用物理內存的 80% 作為堆大小。如果本機上有Apache伺服器,可以先折算Apache需要的內存,然後修改堆大小。 建議設置為70%;建議設置[初始化內存大小]等於[可以使用的最大內存],這樣可以減少頻繁分配堆而降低性能。
在$CATALINA_HOME/conf/web.xml中,把listings參數設置成false即可,如下:
參考
WEB請求處理四:Tomcat配置實踐
⑷ tomcat怎麼配置內存perm size
tomcat內存優化
linux修改TOMCAT_HOME/bin/catalina.sh,在前面加入
JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"
windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
最大堆內存是1024m,對於現在的硬體還是偏低,實施時,還是按照機器具體硬體配置優化。
⑸ 關於tomcat內存設置
檢查一下Catalina.bat文件,在每個「%_RUNJAVA%」後笑攔面都應該有「%CATALINA_OPTS%」
有的Catalina.bat文件在「%_RUNJAVA%」後面跟著「%JAVA_OPTS%」,
如果是這樣,你應該設置:
set JAVA_OPTS=-Xms30m -Xmx512m
或者在每個「猛豎%_RUNJAVA%」後面加上「碰知胡%CATALINA_OPTS%」
⑹ linux中tomcat能加大內存嗎
Tomcat默認可以使用的內存為128MB,在較大型的應用項目中,這點內存是不夠的,需要調大。
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下設置:
需要把這個兩個參數值調大。例如:
表示初始化內存為256MB,可以使用的最大內存為512MB。
擴展知識:
如何設置Tomcat的JVM虛擬機內存大小
可以給Java虛擬機設置使用的內存,但是如果你的選擇不對的話,虛擬機不會補償。可通過命令行的方式改變虛擬機使用內存的大小。如下表所示有兩個參數用來設置虛擬機使用內存的大小。戚指
-Xms JVM初始化堆的大小
-Xmx JVM堆的最大信絕值
這兩個值的大小一般根據需要進行設置。初始化堆的大小執行了虛擬機在啟動時向系統申請的內存的大小。一般而言,這個參數不重要。但是有的應用程序在大負載的 情況下會急劇地佔用更多的內存,此時這個參數就是顯得非常重要,滑仔姿如果虛擬機啟動時設置使用的內存比較小而在這種情況下有許多對象進行初始化,虛擬機就必須 重復地增加內存來滿足使用。由於這種原因,我們一般把-Xms和-Xmx設為一樣大,而堆的最大值受限於系統使用的物理內存。
一般使用數據量較大的應用程序會使用持久對象,內存使用有可能迅速地增長。當應用程序需要的內存超出堆的最大值時虛擬機就會提示內存溢出,並且導致應用服務崩潰。因此一般建議堆的最 大值設置為可用內存的最大值的80%。
⑺ 如何設置Tomcat的JVM虛擬機內存大小
在java web應用開發的過程中,tomcat這個伺服器是經常用到的,而它的性能情況直接影響了web應用的效率,提高tomcat的JVM的內存,能提高它的效率,下面介紹下如何設置tomcat的JVM虛擬機內存大小:
1、Tomcat作為應用伺服器,不能直接運行,需要相應的硬體和操作系統的支持,,需要java虛擬機環境。也就是說tomcat啟動的時候 ,JVM會分配一個初始內存以及最大內存給 tomcat,所以要提高tomcat的jvm內存,需要在啟動的時候,進行配置。
⑻ linux下 tomcat能用多大內存
這取決於你的物理內存大小,其實不是TOMCAT能用多大,而是JVM的一些默認參數問題,如果你不改JAVA_OPTS,那麼大約能占物理內存的1/4——1/2(但最多應該不會超過2G)。
如果你自己改了JAVA_OPTS,那就最大可以用把內存用完
⑼ 如何設置tomcat6內存大小 linux
這樣寫:
declare -x JAVA_OPTS="-Xms128m -Xmx256"
"declare -x"一定要加,不然就會報-x指令無效,還有後面的引號也要注意加上
⑽ linux下tomcat必須要指定內存大小嗎
這個並沒有硬性的指定你必須使用物理內存的2倍來作為交換分區的大小,但是一般的入門讀物裡面都喜歡把這一條列出來,這個其實是和你要載入的程序是有一定關系的,如果你的系統在滿載的時候,就會有一部分程序佔用的內存會被寫入交換分區,當這時你的系統突然down掉的話,可以保證你的swap里有足夠大的地方放下當時內存里的東西來作為後面查詢使用,大概就是這么個意思,如果你是新手設置為2倍物理內存大小的swap是無所謂的,如果你是高手那怎麼設置當然是你自己的事情了