環境:阿里云服務器 Ubuntu 14.04 硬盤20G 內存1G
該服務器之前死部署官網的服務器,因其他原因 需要在tomcat服務中部署兩個項目
當部署好項目以后,發現新增的項目運行起來特別慢,top了一下 發現cpu在沒有訪問的時候占用率高達80%,應該是tomcat分配的內存有問題
果斷 登錄后臺修改tomcat內存分配腳本
vim /usr/share/tomcat7/bin/catalina.sh
100行左右是否有java_OPTS變量,沒有的話添加如下:
JAVA_OPTS="-server -d64 -Djava.awt.headless=true -Xms512m -Xmx512m -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M"
詳情:
-server 一定要作為第一個參數,啟用JDK的server版本,在多個CPU時性能佳-Xms java Heap初始大小。 默認是物理內存的1/64。-Xmx java heap最大值。建議均設為物理內存的80%。不可超過物理內存。-Xmn java heap最小值,一般設置為Xmx的3、4分之一。-XX:PermSize 設定內存的永久保存區初始大小,缺省值為64M。-XX:MaxPermSize 設定內存的永久保存區最大大小,缺省值為64M。-XX:SurvivorRatio=2 生還者池的大小,默認是2。如果垃圾回收變成了瓶頸,您可以嘗試定制生成池設置-XX:NewSize 新生成的池的初始大小。 缺省值為2M。-XX:MaxNewSize 新生成的池的最大大小。 缺省值為32M。+XX:AggressiveHeap 讓jvm忽略Xmx參數,瘋狂地吃完一個G物理內存,再吃盡一個G的swap。-Xss 每個線程的Stack大小-verbose:gc 現實垃圾收集信息-Xloggc:gc.log 指定垃圾收集日志文件-XX:+UseParNewGC 縮短minor收集的時間-XX:+UseConcMarkSweepGC 縮短major收集的時間-XX:userParNewGC 可用來設置并行收集(多CPU)-XX:ParallelGCThreads 可用來增加并行度(多CPU)-XX:UseParallelGC 設置后可以使用并行清除收集器(多CPU)
重啟tomcat服務 再次訪問 速度變快了,CPU占用率下降為不到1%
新聞熱點
疑難解答