emu in blogjava
BlogJava
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
<
2016年2月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
公告
專心AJAX......
author:emu(黃希彤)
author:emu(黃希彤)
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(92)
給我留言
查看公開留言
查看私人留言
隨筆分類
(20)
Groovy 學(xué)習(xí)筆記(4)
(rss)
web優(yōu)化(16)
(rss)
隨筆檔案
(171)
2019年10月 (1)
2019年1月 (1)
2017年6月 (1)
2016年2月 (2)
2014年11月 (1)
2014年9月 (1)
2012年10月 (1)
2012年8月 (1)
2012年1月 (1)
2011年12月 (1)
2011年9月 (1)
2011年8月 (3)
2011年7月 (2)
2011年6月 (2)
2011年2月 (1)
2011年1月 (1)
2010年12月 (1)
2010年9月 (1)
2010年6月 (2)
2010年4月 (1)
2010年3月 (2)
2010年2月 (2)
2010年1月 (2)
2009年10月 (2)
2009年8月 (1)
2009年5月 (2)
2009年1月 (2)
2008年5月 (2)
2008年4月 (2)
2008年3月 (1)
2008年2月 (1)
2008年1月 (3)
2007年11月 (1)
2007年8月 (4)
2007年7月 (3)
2007年6月 (3)
2007年5月 (5)
2007年4月 (1)
2007年3月 (1)
2007年2月 (1)
2007年1月 (2)
2006年12月 (2)
2006年11月 (3)
2006年10月 (3)
2006年9月 (1)
2006年8月 (2)
2006年7月 (2)
2006年6月 (2)
2006年5月 (2)
2006年4月 (1)
2006年3月 (10)
2006年2月 (8)
2006年1月 (8)
2005年12月 (4)
2005年11月 (7)
2005年10月 (1)
2005年9月 (6)
2005年8月 (4)
2005年7月 (7)
2005年6月 (21)
2005年5月 (8)
文章分類
(89)
DHTML和JAVASCRIPT 技術(shù)(31)
(rss)
google編程大賽模擬題及入圍賽真題(34)
(rss)
java技術(shù)(9)
(rss)
測試技術(shù)(7)
(rss)
項(xiàng)目開發(fā)(8)
(rss)
文章檔案
(103)
2012年9月 (1)
2010年8月 (1)
2010年1月 (4)
2009年12月 (1)
2009年9月 (2)
2009年8月 (1)
2007年11月 (1)
2007年8月 (1)
2007年7月 (1)
2007年1月 (1)
2006年10月 (1)
2006年9月 (4)
2006年8月 (8)
2006年7月 (3)
2006年4月 (1)
2006年2月 (4)
2005年12月 (19)
2005年11月 (1)
2005年8月 (13)
2005年5月 (35)
相冊
screenshot
收藏夾
(46)
收藏(46)
(rss)
友情連接
skchen
twinsen
(rss)
卡昂寺
妙乘光明海
妙蓮樂地
收藏
搜索
積分與排名
積分 - 722279
排名 - 63
最新評論
1.?re: Groovy 學(xué)習(xí)筆記3 運(yùn)行效率
使用@CompileStatic,
性能會(huì)好一些
--良好市民
2.?re: 大家好像都比較少關(guān)心webcrypto,試試寫個(gè)簡單的sha1/sha256/sha384/sha512實(shí)現(xiàn)看看[未登錄]
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--emu
3.?re: 自作聰明的junit.swingui.TestRunner
我也遇到了log4j錯(cuò)誤問題,但是通過刪除其中一個(gè)jar包中加載的log4j就解決了,不過樓主分析的很好
--yqbjtu
4.?re: jq的getScript函數(shù)不支持chaset?override掉!
學(xué)習(xí)了,支持一下。
--歌詞網(wǎng)站
5.?re: emu的GBK編碼
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--dfs
6.?re: 據(jù)說能在IE6下使用的base64圖片
CAO NI MEI ,,SHEN ME J B PO WANGYIER
--SS
7.?re: IE8下對cookie的限制。[未登錄]
123
--123
8.?re: emu的簡繁互轉(zhuǎn)腳本[未登錄]
狝玙??
--豆豆
9.?re: 差點(diǎn)被燕潘考倒了
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--meteoric_cry
10.?re: 偶然發(fā)現(xiàn)7年前受到的offer。7年,一晃而過
不錯(cuò),有很好的成績。不過時(shí)間有點(diǎn)長。
--龍銘洪
11.?re: 在javascript中用command 模式實(shí)現(xiàn)undo和redo
如果有解決的辦法 請您聯(lián)系下我啊 我很急 32227304 郵箱QQ都可以 謝謝
--帝君
12.?re: 在javascript中用command 模式實(shí)現(xiàn)undo和redo
樓主我想問下啊 你這個(gè)代碼 在文本域輸入內(nèi)容的時(shí)候 如果不失去焦點(diǎn)就無法進(jìn)行撤銷啊 有沒有什么辦法解決呢
--帝君
13.?re: 下周一國際盲人節(jié),查了一下網(wǎng)上的盲文資料寫了一個(gè)把中文轉(zhuǎn)換成盲文的腳本玩玩。
不知道讀音相同的字詞,盲人是如何區(qū)分的。
--renmin
14.?re: UserData 管理器和IE一個(gè)相關(guān)的bug
鵝鵝鵝熱熱
--張一凡
15.?re: java版本的escape和unescape函數(shù) [未登錄]
這個(gè)的確可以用,太謝謝樓主了,幫了我大忙啊,謝謝
--冬日的陽光
16.?re: 差點(diǎn)被燕潘考倒了
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--emu
17.?re: IE傻呼呼的
所得稅的
--企鵝請問請問
18.?re: 分域名優(yōu)化的時(shí)候要考慮備選IP的問題
對于"因此分域名下載不能簡單的絕對化的看待,要看實(shí)際應(yīng)用場景做決定"這句,上海股票開戶網(wǎng)是絕對贊同啊呼!
--上海股票開戶
19.?re: 走向而立之年
做了3年的技術(shù),發(fā)現(xiàn)自己還是什么都不會(huì)...
快三十了,緊張。
--lizhi
20.?re: apache返回Request header field is missing ':' separator
請問一下,我沒有安裝Nod32,怎么也是出現(xiàn)這個(gè)問題。
--lizhi
閱讀排行榜
1.?定位到了IE報(bào)告“存儲(chǔ)空間不足,無法完成此操作”的原因。(18272)
2.?IE下對文件(圖片)進(jìn)行base64轉(zhuǎn)換(13391)
3.?AJAX案例研究之Gmail (13367)
4.?json的例子(10763)
5.?終于盼到了,firefox支持sessionStorage了(9184)
6.?做了兩個(gè)月ajax,總結(jié)一些小經(jīng)驗(yàn)(8706)
7.?你的編程語言可以這樣做嗎?(map/reduce的js示范,emu翻譯整理)(8670)
8.?下周一國際盲人節(jié),查了一下網(wǎng)上的盲文資料寫了一個(gè)把中文轉(zhuǎn)換成盲文的腳本玩玩。(8431)
9.?在javascript中用command模式模擬多線程(6779)
10.?Groovy 學(xué)習(xí)筆記3 運(yùn)行效率 (6220)
評論排行榜
1.?定位到了IE報(bào)告“存儲(chǔ)空間不足,無法完成此操作”的原因。(41)
2.?關(guān)于方舟子的爭論 (36)
3.?AJAX案例研究之Gmail (35)
4.?在javascript中用command模式模擬多線程(34)
5.?走向而立之年(24)
6.?json的例子(23)
7.?終于盼到了,firefox支持sessionStorage了(20)
8.?今天給兄弟部門總結(jié)的幾點(diǎn)關(guān)于ajax的建議,公開出來分享一下。(18)
9.?做了兩個(gè)月ajax,總結(jié)一些小經(jīng)驗(yàn)(18)
10.?百度就知道吹(14)
用騰訊云優(yōu)化一個(gè)公益論壇
@import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
〇、背景
幾年前由于發(fā)起尋親項(xiàng)目的關(guān)系,和B網(wǎng)站開展了合作。B網(wǎng)站是國內(nèi)最大的尋親網(wǎng)站,幾年來通過該網(wǎng)站和家人團(tuán)聚的案例已經(jīng)達(dá)到1397例。B論壇是網(wǎng)站中最活躍的板塊。當(dāng)時(shí)論壇遇到一些不穩(wěn)定的情況,因?yàn)锽論壇是用Discuz!搭建的,而Discuz!當(dāng)時(shí)剛好被騰訊收購,要獲得專業(yè)支持相對容易,我們開始把B論壇遷移到騰訊云上面,由Discuz!的志愿者協(xié)助維護(hù)直到去年底離職,把論壇的管理權(quán)限交給我。
一、論壇出問題了
我不對于php和linux都不熟,交接后看到論壇工作還算正常,也很長一段時(shí)間沒有去關(guān)注,直到前幾天,網(wǎng)站管理員突然發(fā)來了這個(gè):
這是什么鬼?臣妾不懂啊……只好硬著頭皮登上服務(wù)器去看看。
還好,大概可以猜到出什么事了:數(shù)據(jù)盤不夠用了。那應(yīng)該很好解決吧?擴(kuò)數(shù)據(jù)盤?
二、COS
用騰訊云服務(wù)器而不是自己買服務(wù)器的一個(gè)好處就是,很多資源可以按需用,按需擴(kuò),包括硬盤。不過有個(gè)限制就是,買服務(wù)器的時(shí)候系統(tǒng)盤和數(shù)據(jù)盤都必須要買“云硬盤”而不能用本地盤。買云硬盤還有個(gè)附加的好處是可以申請開通硬盤快照功能,遷移復(fù)制服務(wù)器唰唰的。
但是云硬盤的性能跟本地硬盤是有差距的,處于性能考慮,志愿者選擇了性能更好的本地硬盤,這樣就導(dǎo)致硬盤滿了以后沒有辦法擴(kuò)了。幾年來,尋親的網(wǎng)友們每天上傳大量的高清圖片線索,終于在世紀(jì)寒流這幾天把硬盤擠爆了。
不過擴(kuò)硬盤本來也不是最佳選擇,比擴(kuò)硬盤更好的選擇是:不用硬盤!
騰訊云為這種UGC文件提供的解決方案是
COS(
Cloud Object Service
)
,當(dāng)前版本是COS3.0。COS 大概的意思就是,你有一大堆文件(比如網(wǎng)站用戶上傳的照片),只知道量很大,不知道有多少,不但需要找個(gè)地方存著,還隨時(shí)有可能需要在某個(gè)網(wǎng)頁上引用它。那么平臺(tái)提供一個(gè)服務(wù)器讓你把文件放上去,并提供web訪問和API上傳和管理接口,你就不用把文件傳到自己服務(wù)器了。
個(gè)人認(rèn)為使用COS的好處是:
1 能夠提供幾乎無限量的文件存儲(chǔ)空間,按存儲(chǔ)量和訪問量收費(fèi)
2 很大的免費(fèi)額度:50G的免費(fèi)空間,每計(jì)費(fèi)周期內(nèi)10G的回源流量,每計(jì)費(fèi)周期內(nèi)100萬次的免費(fèi)訪問次數(shù)(實(shí)際上COS通常在CDN后面提供服務(wù),因此實(shí)際上每個(gè)計(jì)費(fèi)周期可以提供10G和100萬次回源服務(wù),配合恰當(dāng)?shù)腃DN緩存策略,已經(jīng)可以滿足很大的訪問量)。
因此用cos不但從此不用糾結(jié)容量爆倉的問題,也不用為沒有使用到的容量預(yù)先買單花冤枉錢,而且還不用自己的服務(wù)器的硬盤和網(wǎng)卡來扛這些流量,服務(wù)器的帶寬和硬盤I/O壓力也立刻就下來了。
COS的使用也很簡單:
1 建個(gè)倉庫(bucket),以后附件就往這個(gè)倉庫里面?zhèn)髁恕?br />
2 修改上傳附件頁面,使用騰訊云提供的API把文件上傳到COS……開玩笑了,作為懶人,當(dāng)然是提工單申請開通COS的FTP權(quán)限啦
大概兩個(gè)鐘頭后收到消息說ftp開通了。
3 用論壇創(chuàng)始人身份登錄discuz,打開遠(yuǎn)程附件
遠(yuǎn)程訪問url可以域名解析到COS源上,不過這樣附件都要走IDC流量,不但貴,也沒有實(shí)現(xiàn)靜態(tài)文件就近訪問的目標(biāo),因此實(shí)際使用的時(shí)候最好在COS服務(wù)的上面加一層CDN:
現(xiàn)在用戶新上傳的附件都自動(dòng)到cos里面了。然后我們來對付舊的附件吧。這時(shí)我們要用到回源功能了。先準(zhǔn)備好一個(gè)回源專用的域名,修改httpd.conf(apache)或者conf.d(nginx)添加一個(gè)新的server,documentroot(或者root)指向服務(wù)器上discuz的附件目錄 data/attachment 并修改域名解析,瀏覽器里面訪問一下確認(rèn)回源域名可以訪問到附件。然后修改cos的回源配置:
這樣如果有人訪問cos的時(shí)候cos上沒有相應(yīng)的文件,服務(wù)器就會(huì)到老的服務(wù)器上獲取文件并緩存下來。通過瀏覽器訪問附件確認(rèn)回源成功后,登錄數(shù)據(jù)庫
update cdb_attachments set remote = '1' 把所有的附件都更新為遠(yuǎn)程的。這樣數(shù)據(jù)就會(huì)隨著用戶的訪問慢慢遷移到cos上了,這個(gè)過程平滑無感知,不過就是不知道遷移到什么時(shí)候成功。
可是我想釋放硬盤空間出來啊怎么辦?先裝上ftp神器 lftp再說。不得不說,在linux下,lftp實(shí)在是個(gè)神器。打開lftp,open登上COS的ftp服務(wù)器,mirror -RL ..... 老附件通通遷移上COS咯。
偷懶用ftp而不是修改上傳頁面代碼的一個(gè)代價(jià)是,有的時(shí)候ftp失敗,會(huì)有一些附件仍然被扔在CVM硬盤上??梢远ㄆ?/span>
update cdb_attachments set remote = '1' 把附件都改成遠(yuǎn)程的,讓cos回源到CVM上。不過就算這樣,冷門的附件仍然可能長時(shí)間沒有辦法同步到cos上。crontab一個(gè)lftp任務(wù)定期把附件同步上COS可以解決問題。
不過如果懂一點(diǎn)點(diǎn)開發(fā)的話,寫一點(diǎn)點(diǎn)腳本用inotify自動(dòng)同步一下顯得會(huì)看起來好點(diǎn)兒:
三、
CDN優(yōu)化:動(dòng)靜分離
內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network)大概的意思就是,我大騰訊在全國成百上千個(gè)機(jī)房里面屯有無數(shù)的服務(wù)器,如果某個(gè)邊遠(yuǎn)地區(qū)的用戶要訪問你放在上海的一份數(shù)據(jù),山長水遠(yuǎn)的跑到上海機(jī)房來拉數(shù)據(jù)肯定快不了,如果我把這份數(shù)據(jù)先放在這個(gè)邊遠(yuǎn)地區(qū)里,離用戶最近的一個(gè)機(jī)房呢?那速度就不一樣了。而且這個(gè)邊遠(yuǎn)地區(qū)的機(jī)房流量還比我大上海三通機(jī)房的流量便宜了一大截。不過有個(gè)前提是服務(wù)器要提前知道用戶將要訪問的數(shù)據(jù),并提前拉取這份數(shù)據(jù)緩存在當(dāng)?shù)?,因此一般只用來服?wù)靜態(tài)的圖片、樣式表、腳本、超文本、flash這些資源。
B論壇其實(shí)去年就用上了CDN,不過用的是一個(gè)比較冷門的用法:
動(dòng)態(tài)加速
。這個(gè)用法就是說,先假設(shè)我網(wǎng)站的所有請求都是靜態(tài)的,這樣用戶所有的請求都訪問在當(dāng)?shù)氐姆?wù)器(邊緣服務(wù)器),然后邊緣服務(wù)器檢查一下這個(gè)請求的資源我有沒有緩存啊,沒有的話邊緣服務(wù)器再受累跑去你的服務(wù)器上拉這個(gè)數(shù)據(jù),把數(shù)據(jù)返回給你,并且嘗試緩存這個(gè)數(shù)據(jù)以備下次使用。然后對于不允許緩存的動(dòng)態(tài)請求,只要聲明一個(gè)策略,比如“php文件緩存時(shí)間0秒”這樣,讓邊緣服務(wù)器直接訪問源CVM服務(wù)器就好了。
這樣做的好處是配置簡單,不需要關(guān)心動(dòng)靜分離,并且不但靜態(tài)的文件都可以被邊緣服務(wù)器緩存,動(dòng)態(tài)的請求也可以獲得cdn網(wǎng)絡(luò)的傳輸加速 。壞處就是“流量double”。也就是說,你不但要給cvm購買外網(wǎng)帶寬,cvm的動(dòng)態(tài)數(shù)據(jù)送到邊緣服務(wù)器以后,你還要再購買一次從邊緣服務(wù)器到用戶那里的cdn帶寬(或者流量)。
另外一個(gè)附加的“缺點(diǎn)”是,CDN網(wǎng)絡(luò)總是盡可能快的從CVM服務(wù)器拉取全部數(shù)據(jù),再按照訪客用戶網(wǎng)絡(luò)的速度再把數(shù)據(jù)吐出去。這其實(shí)是最佳策略,因?yàn)镃VM的帶寬已經(jīng)買單了,不跑慢也是浪費(fèi),但是帶來的問題就是CVM監(jiān)控上看起來,再多的帶寬都會(huì)被跑滿,好像帶寬永遠(yuǎn)都不夠用。因此前任的管理員購買了非常多的帶寬來試圖滿足永遠(yuǎn)喂不飽的CDN網(wǎng)絡(luò),帶寬成了B論壇最沉重的成本。
(15M的帶寬,經(jīng)常性的被CDN跑滿)
貿(mào)然的減少帶寬也是不合適的,最好的做法還是做盡量徹底的動(dòng)靜分離,靜態(tài)的部分還是用cos托管源和FTP托管源來喂飽CDN網(wǎng)絡(luò),讓用戶盡可能體驗(yàn)好;動(dòng)態(tài)的部分直接訪問CVM,根據(jù)用戶日常實(shí)際產(chǎn)生的帶寬情況再加上足夠充分的冗余來采購就可以。
傳統(tǒng)的動(dòng)靜分離手段是最好的:直接修改html、css和js,通過靜態(tài)專用域名訪問靜態(tài)資源。但是這樣做需要很多的開發(fā)工作量,作為懶人,我直接用上了大殺器:rewrite!
懶得給每個(gè)域名打馬賽克了,也不是什么機(jī)密。這幾條規(guī)則是這樣:
1 對于普遍圖片超大的png圖片,自動(dòng)轉(zhuǎn)向到優(yōu)圖系統(tǒng)進(jìn)行jpg壓縮。因?yàn)楸O(jiān)控發(fā)現(xiàn)少數(shù)png圖片占了很大的流量比重。
2 對于用戶上傳到附件,自動(dòng)轉(zhuǎn)向到attachment子目錄(COS源),這樣CVM就不需要承擔(dān)附件文件的存儲(chǔ)了(零星缺失的文件cos回源啟用了回源專用的域名)
3 對于系統(tǒng)的靜態(tài)文件,自動(dòng)轉(zhuǎn)向到static子目錄(FTP源),不統(tǒng)一使用cos源的原因是,CDN回源到ftp源是免費(fèi)的,但是ftp源只有6G的存儲(chǔ)空間?;卦吹絚os空間幾乎是無限的,但是是有可能收費(fèi)的。
這樣就把CVM上出了favicon.ico之外的幾乎所有靜態(tài)文件都分離出去了。要注意的是如果盜鏈嚴(yán)重的話,原本nginx上的防盜鏈規(guī)則也要相應(yīng)的設(shè)置到cdn上去。
動(dòng)靜分離后cdn的整體命中率從瓶頸50%以下一下提升到75%以上,對于cvm的壓力大大減小了??匆幌路钟蛎拿新蕯?shù)據(jù)
在不對論壇程序做細(xì)致的優(yōu)化的情況下,只是通過策略調(diào)整達(dá)到這樣的命中率,還算比較理想了。
不過這樣做了以后,CDN的流量費(fèi)用并沒有下降啊。因?yàn)锽論壇的CDN采用了峰值帶寬計(jì)費(fèi)模式,因此觀察了一下cdn監(jiān)控的帶寬數(shù)據(jù),發(fā)現(xiàn)了一個(gè)很有意思的問題:
CDN的峰值帶寬按天波動(dòng)非常大。細(xì)看到具體的帶寬比較大的一天更明顯:
這天是央視《
感動(dòng)中國2016
》B論壇的兩個(gè)發(fā)起人入選帶來的一個(gè)訪問波峰。
像這樣的帶寬曲線模式,按照帶寬購買CDN是非常浪費(fèi)的。果斷切換到流量包計(jì)費(fèi)模式,CDN費(fèi)用從每月>¥500(每年大約¥6000~¥8000)下降到每年<6T(每年大約2000以內(nèi))
動(dòng)靜分離后CVM的實(shí)際動(dòng)態(tài)帶寬需求有多少呢?后面上了負(fù)載均衡之后沒有地方可以截屏幾臺(tái)服務(wù)器完整的帶寬總和曲線了,總體是2M帶寬平常跑不滿,但是偶發(fā)集中的訪問會(huì)超,所以兩臺(tái)CVM做負(fù)載均衡,各開了2M的帶寬,保證平常有超過一倍的帶寬冗余。
四:memcache和云數(shù)據(jù)庫
B論壇遷移到騰訊云的時(shí)候就使用了云數(shù)據(jù)庫,數(shù)據(jù)量雖然不大,但是數(shù)據(jù)庫訪問量不小,購買的是能支撐2400QPS的50G/2000MB型號(hào)。
(7天后到期,不需要續(xù)了)
但是查看了一下discuz的優(yōu)化選項(xiàng),發(fā)現(xiàn)內(nèi)存緩存優(yōu)化項(xiàng)都沒有打開。在CVM里裝上一個(gè)memcached測試了一下,數(shù)據(jù)庫請求可以有效的降低到100QPS以下。這樣高配云數(shù)據(jù)庫就太浪費(fèi)了,換個(gè)10G/360MB/120QPS的就足夠了。不過性能冗余夠不夠?discuz支持master/slave的,先提個(gè)工單申請一個(gè)免費(fèi)的slave。
配置slave后觀察了幾天,即使在峰值查詢接近700QPS的情況下數(shù)據(jù)庫也沒有出現(xiàn)訪問瓶頸,騰訊云數(shù)據(jù)庫的性能還是相當(dāng)厚道的,這個(gè)性能冗余是足夠的。
(某海量網(wǎng)站配置錯(cuò)誤導(dǎo)致出現(xiàn)大量404頁面,順帶給論壇帶來了很大壓力)
這樣數(shù)據(jù)庫費(fèi)用從
¥2240/年陡降到¥210/年了。已經(jīng)省了這么多錢,再買個(gè)C型的memcached好了,每天2元,每年大概700元。
CVM本機(jī)運(yùn)行一個(gè)memcached雖然性能不錯(cuò),但是始終要和其他本機(jī)服務(wù)競爭各種資源,而且考慮到后面要做負(fù)載均衡,也希望把登錄態(tài)(session)丟到云里面去。
(memcache很輕松的扛住了情人節(jié)的感動(dòng)中國帶來的訪問量)
修改了一下discuz的配置文件指向memcached,再修改php.ini把session也指向了memcached,這下CVM就沒有“狀態(tài)”了,可以很容易的替換,或者集成多個(gè)做負(fù)載均衡。
五:CVM和負(fù)載均衡
B論壇在騰訊云上一共兩臺(tái)CVM,對外提供服務(wù)的是一臺(tái)配置有點(diǎn)豪華的服務(wù)器:
這臺(tái)每年費(fèi)用是 ¥16450,當(dāng)然主要的錢都花在買帶寬去喂CDN了
另一臺(tái)不對外服務(wù),只是有一個(gè)大的硬盤做數(shù)據(jù)備份。
一年¥1550。
經(jīng)過上面一系列優(yōu)化以后,原本買的CVM性能就太過冗余了,文件都丟到COS上去了,大硬盤備份也沒有必要了。已經(jīng)遷移到cos的文件剔除后,整個(gè)系統(tǒng)只剩下了4G,全部回遷到系統(tǒng)盤上面,數(shù)據(jù)盤也不需要了:
因?yàn)閿?shù)據(jù)庫在云上,附件文件也在cos上,本地沒有什么動(dòng)態(tài)的數(shù)據(jù),這樣系統(tǒng)備份也簡單的多了,定期對系統(tǒng)盤做一個(gè)“系統(tǒng)鏡像”就成,除了有一個(gè)問題:做系統(tǒng)鏡像要關(guān)機(jī)。
墨菲定律告訴我們,永遠(yuǎn)要防著機(jī)器宕機(jī)!前面該清理的清理干凈了,是時(shí)候做雙機(jī)熱備了。先把備份機(jī)的論壇服務(wù)也啟動(dòng)起來,session也指向memcached,然后添加一個(gè)負(fù)載均衡:
訪問低谷的時(shí)候把主服務(wù)器關(guān)掉,做鏡像,備份機(jī)自動(dòng)扛住了全部訪問量。
有了鏡像以后換機(jī)型就方便了。新購一臺(tái)服務(wù)器
因?yàn)槌浞质褂昧嗽茢?shù)據(jù)庫、memcache、cdn、cos等paas服務(wù),又做了動(dòng)靜分離,cpu現(xiàn)在已經(jīng)清閑的很,1核的性能是足夠的。內(nèi)存使用率也很低,內(nèi)存其實(shí)1G也足夠,不過cpu不夠了還可以負(fù)載均衡,內(nèi)存不夠了就只有干瞪眼,所以多加1G冗余。
,
購買的時(shí)候就可以直接指定安裝鏡像,支付每年¥1250的費(fèi)用,10分鐘后,有了一臺(tái)全新的服務(wù)器,配置host驗(yàn)證成功,加入到負(fù)載均衡后端列表里面
把權(quán)重分幾次從原來的高配服務(wù)器分配到新服務(wù)器上,運(yùn)行指標(biāo)都還好,就是負(fù)載有點(diǎn)兒高,訪問速度可能不是最優(yōu),也許是mysql或者memcache要通過網(wǎng)絡(luò)訪問導(dǎo)致的?
反正要做雙機(jī)熱備的,再買一臺(tái)一樣的服務(wù)器,加入負(fù)載均衡后臺(tái)分?jǐn)傄话氲脑L問量,觀察了一下cpu利用率和負(fù)載都下來了,雖然偶爾有一些瞬間的毛刺,反問上已經(jīng)感覺不到差別。
這樣就有了兩臺(tái)一模一樣的服務(wù)器,平常分?jǐn)傇L問壓力,一臺(tái)宕機(jī)的時(shí)候負(fù)載均衡會(huì)自動(dòng)發(fā)現(xiàn)并把訪問全部導(dǎo)向到正常工作的服務(wù)器。未來如果有更大的訪問壓力隨時(shí)可以新購機(jī)器,安裝上鏡像后加入負(fù)載均衡后端。
正好原來購買的服務(wù)器和數(shù)據(jù)庫這陣子都要過期了,就都不用續(xù)費(fèi)了。
六、對公益捐贈(zèng)負(fù)責(zé)
看看優(yōu)化后比原來節(jié)省了多少:
CVM: 原來16450+1550=18000 , 優(yōu)化后1250*2=2500
CDN+COS:原來:
¥6000~¥8000,優(yōu)化后約 ¥2000(COS回源流量暫時(shí)還沒收費(fèi),附件遷到cos后也不足50G還不需要存儲(chǔ)費(fèi)用,不過未來有可能產(chǎn)生少量費(fèi)用。)
mysql+memcache
:原來 ¥2240,優(yōu)化后210+700=910
總體相比原來優(yōu)化大約 ¥22000 /年。
雖然騰訊云一直對于公益組織免費(fèi)扶持云資源,但是我覺得云資源和公益捐贈(zèng)善款一樣,也要用負(fù)責(zé)的態(tài)度摳門的用好,才是對支持企業(yè)負(fù)責(zé)任的態(tài)度。
最后,感謝騰訊云對公益事業(yè)的慷慨支持。打完收工。
posted on 2016-02-19 17:56
emu
閱讀(1207)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Powered by:
BlogJava
Copyright © emu
主站蜘蛛池模板:
理论亚洲区美一区二区三区
|
亚洲电影在线免费观看
|
伊人久久亚洲综合影院首页
|
99国产精品免费视频观看
|
亚洲精品偷拍视频免费观看
|
国产亚洲人成在线播放
|
国产一区二区三区在线免费
|
亚洲gay片在线gv网站
|
永久黄网站色视频免费直播
|
亚洲入口无毒网址你懂的
|
精品久久久久成人码免费动漫
|
亚洲国产精品白丝在线观看
|
18级成人毛片免费观看
|
亚洲精品福利在线观看
|
色影音免费色资源
|
亚洲成a人片在线看
|
拨牐拨牐x8免费
|
亚洲av无码一区二区三区在线播放
|
卡1卡2卡3卡4卡5免费视频
|
亚洲成a∧人片在线观看无码
|
白白国产永久免费视频
|
黄色三级三级三级免费看
|
丝袜熟女国偷自产中文字幕亚洲
|
国产在线观a免费观看
|
香蕉蕉亚亚洲aav综合
|
69视频在线观看高清免费
|
亚洲一区二区三区精品视频
|
成人毛片18岁女人毛片免费看
|
亚洲日韩精品A∨片无码加勒比
|
在线看片无码永久免费aⅴ
|
日本免费大黄在线观看
|
亚洲欧洲日本精品
|
国产免费观看视频
|
毛片免费在线观看
|
亚洲一本一道一区二区三区
|
亚洲精品国产va在线观看蜜芽
|
日本在线看片免费
|
亚洲av永久中文无码精品综合
|
久久亚洲中文字幕精品一区四
|
精品一区二区三区免费毛片爱
|
伊人久久大香线蕉亚洲五月天
|