記錄一次砸獎活動部署大脉,對tomcat、nginx的優(yōu)化

最近部署了一個房地產(chǎn)的活動推廣水孩,通過砸金蛋的方式派發(fā)獎品吸引用戶去售樓部看房镰矿。考慮到負載均衡俘种,使用了 nginx + tomcat + mysql 的分離部署方式秤标,阿里云的內(nèi)網(wǎng)流量是免費的绝淡,所以按量付費的情況會比較劃算。下面記錄對nginx苍姜、tomcat的配置優(yōu)化牢酵。

tomcat:

tomcat默認采用Bio的模式,雖然自帶有Nio衙猪,但是性能提升不明顯馍乙,使用apr庫性能提升更大,所以我們將:1 下載tomcat屈嗤,2 安裝apr庫潘拨,3 安裝tomcat-native (利用 APR 來提升Tomcat性能的本地API)1. 下載tomcat:我比較喜歡把應用放在/opt 目錄下 進入 opt 目錄吊输,下載tomcat8(tomcat官網(wǎng)有下載地址):

cd /opt

mkdir install

cd /opt/install

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.tar.gz

cd /opt

tar zxvf /opt/install/apache-tomcat-8.0.39.tar.gz

# 創(chuàng)建一個install目錄饶号,用來放安裝過程中的一些文件,看個人喜好季蚂。

2. 安裝apr庫:http://apr.apache.org/download.cgi這里去下載茫船,會有三個包需要安裝:

APR主庫:

cd /opt/install

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.gz

tar zxvf apr-1.5.2.tar.gz

cd apr-1.5.2

./configure --prefix=/usr/local/apr

make

sudo make install

# 工具類都裝到 /usr/local 符合傳統(tǒng),我會把常用的放到 /opt 下扭屁,看個人習慣吧

APR iconv:

cd /opt/install

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.1.tar.gz

tar zxvf apr-iconv-1.2.1.tar.gz

cd apr-iconv-1.2.1

./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr

make

sudo make install

APR-util:

cd /opt/install

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.gz

tar zxvf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4

./configure --with-apr=/usr/local/apr

make

sudo make install

# 我都是把下載到包和安裝過程中編譯到東西統(tǒng)一放到了 /opt/install 目錄算谈,看個人喜好。

安裝好了后料滥,在系統(tǒng)變量中添加然眼,然后 source /etc/profile 使變量生效:

vim /etc/profile

末尾添加:export LD_LIBRARY_PATH=/usr/local/apr/lib

source /etc/profile

3. 安裝Tomcat Native 來調(diào)用apr庫,提升tomcat性能葵腹,需要使用 openssl 1.0.2 以上版本(通過命令 openssl version 查看版本來決定是否安裝openssl:

openssl:https://www.openssl.org/source/

cd /opt/install

wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz

tar zxvf openssl-1.1.0c.tar.gz

cd openssl-1.1.0c

./config --prefix=/usr/local/openssl -fPIC

make

sudo make install

mv /usr/bin/openssl ~

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

openssl version

# -fPIC 參數(shù)請自行百度高每, install 后是為了更新軟鏈

Tomcat Native:http://tomcat.apache.org/download-native.cgi

cd /opt/install

wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz

tar zxvf tomcat-native-1.2.10-src.tar.gz

cd tomcat-native-1.2.10-src/native

./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl

make

sudo make install

tomcat 所依賴的庫安裝完畢,現(xiàn)在設置tomcat的配置文件:


protocol="org.apache.coyote.http11.Http11AprProtocol"

connectionTimeout="20000"

redirectPort="8443"

maxThreads="500"

minSpareThreads="20"

acceptCount="300"

disableUploadTimeout="true"

enableLookups="false"

URIEncoding="UTF-8" />

unpackWARs="true" autoDeploy="true">

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t "%r" %s %b" />

tomcat 的配置文件就是這樣践宴,可以查詢每項的意義自己調(diào)整鲸匿。tomcat最主要的優(yōu)化在于JVM 的設置,這篇文章Linux中JDK安裝:通過命令行安裝和手動安裝手動安裝的方式阻肩,環(huán)境變量中的 JAVA_OPTS 進行設置带欢,本次優(yōu)化后的環(huán)境變量:(記得 source /etc/profile 使其生效)

export JAVA_HOME=/usr/local/java/jdk1.8.0_112

export JAVA_OPTS="-server -Xms1024m -Xmx3072m"

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export CATALINA_HOME=/opt/tomcat

export LD_LIBRARY_PATH=/usr/local/apr/lib

nginx:

nginx需要安裝最新的穩(wěn)定版,安裝請參考之前的文章烤惊,因為我們tomcat會采用 Bio乔煞、Nio、Apr柒室,所以需要升級openssl到更新版本瘤缩,記得先裝新版本的openssl(參考上面tomcat部分),在安裝依賴庫的時候 注意不要再安裝 openssl 了伦泥!之前的這篇文章Ubuntu 中源碼安裝Nginx剥啤,好了 nginx 也裝好了锦溪,其調(diào)優(yōu)的配置文件:

worker_processes 2;# 系統(tǒng)有幾個核心就設置為多少

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

tcp_nopush on;

keepalive_timeout 65;

gzip on;

gzip_vary on;

gzip_proxied any;

gzip_min_length 10240;

upstream servers {

server 127.0.0.1:8080 fail_timeout=0;

}

server {

listen 80;

server_name xxxxxx.com;

location ~ .*\.(gif|jpg|jpeg|png|ico|swf)$ {

root /opt/webapps/zjd/asset/static;

expires 30d;

}

location / {

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_redirect off;

proxy_connect_timeout 240;

proxy_send_timeout 240;

proxy_read_timeout 240;

proxy_pass http://servers;

}

error_page 400 500 /opt/tomcat/webapps/zjd/asset/views/error.html;

}

}

項目打包上傳就開始運行了,兩核4G內(nèi)存府怯,完全無壓力刻诊,內(nèi)存最高才到 37%,cpu 就沒上過15%牺丙。则涯。。剛開始就這么大人同時砸(因為開始時間是定好了的冲簿,所以一開始的壓力最大)后臺數(shù)據(jù):

代碼上的反思:

改動很小的(基本上不改變)要使用緩存粟判,開發(fā)時就要想到這點,架構上就引入緩存峦剔,或者部署上線前要對這塊進行優(yōu)化档礁,重復讀取是不可取的。

單一職責吝沫,本次上線后分析日志呻澜,發(fā)現(xiàn)有一個請求速度很慢,跟蹤發(fā)現(xiàn)調(diào)用了后臺管理員才會使用的復雜sql惨险,而這是因為service層把該方法封裝得太大羹幸,名字取得范圍就很大,導致在用戶端竟然調(diào)用了它(全部代碼是我寫的情況下都發(fā)生這種情況...團隊開發(fā)的情況就可想而知)辫愉。

個人博客上代碼布局更合理栅受,地址:http://jovi.me/archives/1710-12211.html

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市恭朗,隨后出現(xiàn)的幾起案子屏镊,更是在濱河造成了極大的恐慌,老刑警劉巖冀墨,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闸衫,死亡現(xiàn)場離奇詭異,居然都是意外死亡诽嘉,警方通過查閱死者的電腦和手機蔚出,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虫腋,“玉大人骄酗,你說我怎么就攤上這事≡眉剑” “怎么了趋翻?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盒蟆。 經(jīng)常有香客問我踏烙,道長师骗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任讨惩,我火速辦了婚禮辟癌,結果婚禮上,老公的妹妹穿的比我還像新娘荐捻。我一直安慰自己黍少,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布处面。 她就那樣靜靜地躺著厂置,像睡著了一般。 火紅的嫁衣襯著肌膚如雪魂角。 梳的紋絲不亂的頭發(fā)上昵济,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音或颊,去河邊找鬼砸紊。 笑死传于,一個胖子當著我的面吹牛囱挑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沼溜,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼平挑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了系草?” 一聲冷哼從身側響起通熄,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎找都,沒想到半個月后唇辨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡能耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年赏枚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晓猛。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡饿幅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出戒职,到底是詐尸還是另有隱情栗恩,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布洪燥,位于F島的核電站磕秤,受9級特大地震影響乳乌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜市咆,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一钦扭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧床绪,春花似錦客情、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痹雅,卻和暖如春仰担,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绩社。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工摔蓝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愉耙。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓贮尉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親朴沿。 傳聞我的和親對象是個殘疾皇子猜谚,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容