1. 程式人生 > >記一次服務器Tomcat優化經歷

記一次服務器Tomcat優化經歷

type tomcat優化 ext stream jpg 試用 ros index ctp

博主原創,轉載請註明。

公司需要一臺測試服務器來做測試用,所以花了幾天時間把服務全部部署好,在部署好war包之後,發現Tomcat訪問超級慢。

1、進入Tomcat的bin目錄下,運行

./catalina.sh run命令,在前臺打印運行信息,首先看其有沒有報錯。好,沒有報錯,進行下一步。

看打印信息輸出的快慢,如果卡在某一句上,那麽證明你的配置是有問題的。

如何解決?

1)修改你的jdk目錄下/jre/lib/security目錄下的java.security這個文件,將securerandom.source=file:/dev/random改成securerandom.source=file:/dev/./urandom,這是Java官方給的解決方案,修改隨機數。

2)修改Tomcat目錄下conf目錄下server.xml文件配置:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="40000"
redirectPort="8443" URIEncoding="UTF-8"
acceptCount="4000" maxThreads="5000"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
disableUploadTimeout="true" debug="0"
maxHttpHeaderSize="8192" useBodyEncodingForURI="true" minProcessors="100" maxProcessors="5000"
minSpareThreads="1000" maxSpareThreads="4000" enableLookups="false"/>

2、top查看線程,看看java有沒有特別高的占用,有的話,用jstack pid追蹤查看是哪的語句造成的。

3、設置JVM運行大小,在Tomcat目錄bin目錄下vim catalina.sh

在# OS specific support. $var _must_ be set to either true or false.這一行下加入:

JAVA_OPTS="-server -Xms1024m -Xmx6144m -Xss1024K -XX:NewRatio=4 -XX:SurvivorRatio=4"來設置JVM運行內存。

4、nginx+Tomcat做動靜分離設置,加快網頁載入速度,我的nginx配置如下:

負載均衡配置:

upstream gw {
server localhost:8080;
}

在http模塊裏加入:

proxy_cache_key ‘$host:$server_port$request_uri‘;
proxy_temp_file_write_size 64k;
proxy_temp_path /dev/shm/cache/proxy_temp_path;
proxy_cache_path /dev/shm/cache/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=5d max_size=1g;
proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;

server配置:

server {
listen 80;
server_name localhost 192.168.1.111:8080;
access_log /data/wwwlogs/access_nginx.log combined;
location ~ ^/crossdomain.xml {
root /usr/local/crossdomain;
}
location ~ .*\.(js|css|ico|png|jpg|eot|svg|ttf|woff) {
proxy_cache cache_one;
proxy_cache_valid 200 304 302 5d;
proxy_cache_valid any 5d;
proxy_cache_key ‘$host:$server_port$request_uri‘;
add_header X-Cache ‘$upstream_cache_status from $host‘;
root /usr/local/tomcat/gw/webapps/gw/WEB-INF ;
expires 10d;
}
location ~ .*$ {
#index index;
proxy_pass http://gw;
}
}

5、運行./catalina.sh run命令,同時在網頁打開你要打開的網頁,查看輸出,可以看到網頁調用數據庫等信息,看是否要優化數據庫。

經過優化,測試服務器載入網頁速度快了最少5秒以上。

記一次服務器Tomcat優化經歷