node截图服务可用性报告
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
前言
服務(wù)器端截圖可以做什么?
個(gè)人觀點(diǎn):省去跟報(bào)表有關(guān)的EDM開(kāi)發(fā),直接從系統(tǒng)上截圖,然后發(fā)圖片給用戶就搞定。剩下的自己腦補(bǔ)。
既然這么好,為毛不趕緊弄。需要用到的工具坑太多,沒(méi)有嘗試,不敢拿上去用。
環(huán)境準(zhǔn)備
如果是window環(huán)境就更簡(jiǎn)單了,大家自行處理,這里不做介紹。
安裝步驟
?我知道很多人比較懶,也有很多人,這也不懂,那也不懂。所以為了不讓大家浪費(fèi)時(shí)間,給大家安裝環(huán)境步驟,由于系統(tǒng)是64位,因此下面的步驟都是按64位來(lái)。windows環(huán)境下的安裝,自己看文檔。
安裝phantomjs 2.x
安裝nodejs0.12.x
參考:http://www.laozuo.org/6421.html
安裝windows下的字體
?這個(gè)直接參考http://www.tuicool.com/articles/VfiqqiA
啟動(dòng)服務(wù)
界面介紹
?直接給圖說(shuō)明比較方便
截圖效果
由于有200kb的圖片上傳限制,大家將就下,到百度云盤上看qq官網(wǎng)截圖效果
http://pan.baidu.com/s/1qXquUkc
并發(fā)請(qǐng)求結(jié)果
ps(在另外一臺(tái)服務(wù)器上用wrk測(cè)試)
介紹下截圖服務(wù)機(jī)器的硬件配置:2核cpu,4g內(nèi)存
由于我在程序中限定了開(kāi)啟3個(gè)phantomjs,每個(gè)phantomjs最多同時(shí)做5個(gè)頁(yè)面的渲染和截圖。因此我開(kāi)啟了15個(gè)線程,保持15個(gè)鏈接同時(shí)請(qǐng)求,持續(xù)1分鐘的時(shí)間,效果如下圖:
五組測(cè)試數(shù)據(jù)統(tǒng)計(jì)
?
| 序號(hào) | 網(wǎng)址 | 持續(xù)時(shí)間(s) | 并發(fā)鏈接 | 請(qǐng)求總數(shù) | 成功 | 失敗 | 崩潰 |
| 1 | qq.com | 60 | 15 | 47 | 47 | 0 | 0 |
| 2 | qq.com | 60 | 15 | 54 | 54 | 0 | 0 |
| 3 | qq.com | 60 | 15 | 45 | 45 | 0 | 0 |
| 4 | qq.com | 60 | 15 | 57 | 57 | 0 | 0 |
| 5 | qq.com | 60 | 15 | 49 | 49 | 0 | 0 |
| 平均 | | 60 | 15 | 50.4 | 50.4 | 0 | 0 |
從中可以看出在截取qq.com的時(shí)候,大概平均每秒處理0.84個(gè)截圖請(qǐng)求。
當(dāng)然這是在有條件限制的情況下得出的數(shù)據(jù),在測(cè)試的時(shí)候,查看了下cpu的峰值,大概是60%,也就是說(shuō)這個(gè)還有提升的空間。而且我們是用qq.com做測(cè)試,如果是比較簡(jiǎn)單的頁(yè)面,速度肯定還會(huì)提升。
不信請(qǐng)看,我請(qǐng)求http://alinode.aliyun.com/blog/23這個(gè)網(wǎng)址的測(cè)試
這里數(shù)據(jù)顯示1分鐘內(nèi)總共處理了150個(gè)請(qǐng)求。平均每秒處理2.5個(gè)。
穩(wěn)定性
下圖是跑了1小時(shí)的報(bào)告,蠻看看。
在一個(gè)小時(shí)之內(nèi)連續(xù)的對(duì)qq.com首頁(yè)做截圖,總共是處理了562個(gè)請(qǐng)求,平均每秒0.16個(gè),太憂傷了。大家有沒(méi)有發(fā)現(xiàn),其實(shí)出現(xiàn)了202個(gè)讀錯(cuò)誤,562個(gè)超時(shí),平均網(wǎng)速才225.54kb,誒,這也太坑爹了。
不知道這是什么原因造成的,到底是網(wǎng)速慢了,還是qq官網(wǎng)首頁(yè)服務(wù)器做了安全策略。面對(duì)如此慘淡的數(shù)據(jù),自信心都沒(méi)了。
其實(shí)在早些時(shí)候,有嘗試跑一個(gè)晚上的并發(fā),可惜好像是因?yàn)閿嗑W(wǎng)問(wèn)題,導(dǎo)致測(cè)試沒(méi)有完成。之后有進(jìn)行了持續(xù)6個(gè)小時(shí)的并發(fā)測(cè)試,在跑到2個(gè)多小時(shí)的時(shí)候,出現(xiàn)了內(nèi)存溢出,導(dǎo)致服務(wù)中斷的情況。非常的憂傷,
我都不知道為毛內(nèi)存溢出(當(dāng)時(shí)跑去吃飯了),好歹也有3G多的內(nèi)存可以用。在啟動(dòng)服務(wù)后,我有觀測(cè),內(nèi)存從3G多,直接降到2G左右,不過(guò)一直在這個(gè)區(qū)間徘徊,不知道為毛會(huì)出現(xiàn)內(nèi)存溢出。
有兩種猜測(cè):
其實(shí)每次的并發(fā)測(cè)試都會(huì)出現(xiàn)超時(shí)的情況,這個(gè)問(wèn)題不知道是什么原因造成的。
理論上要渲染一個(gè)頁(yè)面,其實(shí)是得花不少時(shí)間的,加載頁(yè)面就大概需要2~3秒的時(shí)間,加上渲染大概至少需要5秒左右的時(shí)間,有些垃圾網(wǎng)站更長(zhǎng),然后我們還要截圖,加起來(lái),這大概得花個(gè)6~8秒的時(shí)間吧。
總結(jié)
按照目前并發(fā)測(cè)試的結(jié)果來(lái)說(shuō)是不適合用于生產(chǎn)環(huán)境的。如果要小范圍的做生產(chǎn)測(cè)試,還需要解決下面幾個(gè)問(wèn)題
后記
服務(wù)器端截圖還是挺有意思的一件事情,如果穩(wěn)定性提高了,相信可以用于很多地方。由于代碼是寫來(lái)做測(cè)試的,所以寫得挺爛的,還有很多可以改進(jìn)的地方。
如果大家覺(jué)得這個(gè)點(diǎn)子不錯(cuò),可以繼續(xù)開(kāi)發(fā)下去,請(qǐng)到github上點(diǎn)個(gè)贊,并給點(diǎn)改進(jìn)意見(jiàn)。
轉(zhuǎn)載于:https://my.oschina.net/u/137634/blog/613484
總結(jié)
以上是生活随笔為你收集整理的node截图服务可用性报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到发大财什么意思
- 下一篇: 孕妇梦到被追杀一直逃跑预示什么