服務器端截圖能夠作什麼? html
我的觀點:省去跟報表有關的EDM開發,直接從系統上截圖,而後發圖片給用戶就搞定。剩下的本身腦補。 node
既然這麼好,爲毛不趕忙弄。須要用到的工具坑太多,沒有嘗試,不敢拿上去用。 linux
若是是window環境就更簡單了,你們自行處理,這裏不作介紹。 git
我知道不少人比較懶,也有不少人,這也不懂,那也不懂。因此爲了避免讓你們浪費時間,給你們安裝環境步驟,因爲系統是64位,所以下面的步驟都是按64位來。windows環境下的安裝,本身看文檔。 github
參考:http://www.laozuo.org/6421.html web
這個直接參考http://www.tuicool.com/articles/VfiqqiA npm
直接給圖說明比較方便 windows
因爲有200kb的圖片上傳限制,你們將就下,到百度雲盤上看qq官網截圖效果 centos
http://pan.baidu.com/s/1qXquUkc 瀏覽器
ps(在另一臺服務器上用wrk測試)
介紹下截圖服務機器的硬件配置:2核cpu,4g內存
因爲我在程序中限定了開啓3個phantomjs,每一個phantomjs最多同時作5個頁面的渲染和截圖。所以我開啓了15個線程,保持15個連接同時請求,持續1分鐘的時間,效果以下圖:
序號 | 網址 | 持續時間(s) | 併發連接 | 請求總數 | 成功 | 失敗 | 崩潰 |
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的時候,大概平均每秒處理0.84個截圖請求。
固然這是在有條件限制的狀況下得出的數據,在測試的時候,查看了下cpu的峯值,大概是60%,也就是說這個還有提高的空間。並且咱們是用qq.com作測試,若是是比較簡單的頁面,速度確定還會提高。
不信請看,我請求http://alinode.aliyun.com/blog/23這個網址的測試
這裏數據顯示1分鐘內總共處理了150個請求。平均每秒處理2.5個。
下圖是跑了1小時的報告,蠻看看。
在一個小時以內連續的對qq.com首頁作截圖,總共是處理了562個請求,平均每秒0.16個,太憂傷了。你們有沒有發現,其實出現了202個讀錯誤,562個超時,平均網速才225.54kb,誒,這也太坑爹了。
不知道這是什麼緣由形成的,究竟是網速慢了,仍是qq官網首頁服務器作了安全策略。面對如此慘淡的數據,自信心都沒了。
其實在早些時候,有嘗試跑一個晚上的併發,惋惜好像是由於斷網問題,致使測試沒有完成。以後有進行了持續6個小時的併發測試,在跑到2個多小時的時候,出現了內存溢出,致使服務中斷的狀況。很是的憂傷,
我都不知道爲毛內存溢出(當時跑去吃飯了),好歹也有3G多的內存能夠用。在啓動服務後,我有觀測,內存從3G多,直接降到2G左右,不過一直在這個區間徘徊,不知道爲毛會出現內存溢出。
有兩種猜想:
其實每次的併發測試都會出現超時的狀況,這個問題不知道是什麼緣由形成的。
理論上要渲染一個頁面,實際上是得花很多時間的,加載頁面就大概須要2~3秒的時間,加上渲染大概至少須要5秒左右的時間,有些垃圾網站更長,而後咱們還要截圖,加起來,這大概得花個6~8秒的時間吧。
按照目前併發測試的結果來講是不適合用於生產環境的。若是要小範圍的作生產測試,還須要解決下面幾個問題
服務器端截圖仍是挺有意思的一件事情,若是穩定性提升了,相信能夠用於不少地方。因爲代碼是寫來作測試的,因此寫得挺爛的,還有不少能夠改進的地方。
若是你們以爲這個點子不錯,能夠繼續開發下去,請到github上點個贊,並給點改進意見。