云智慧透視寶如何問診龍珠直播高并發(fā)性能瓶頸

2015-12-04 17:00:31來源:威易網(wǎng)作者:

龍珠直播是由蘇州游視網(wǎng)絡(luò)科技有限公司打造的游戲直播平臺,于2015年2月1日正式上線,主要為游戲玩家提供網(wǎng)游視頻直播和音樂直播等服務(wù)。目前龍珠直播與韓國職業(yè)電子競技協(xié)會(KeSPA)、游戲風(fēng)云、NICETV等組織達成戰(zhàn)略合作……

客戶背景:

\

龍珠直播是由蘇州游視網(wǎng)絡(luò)科技有限公司打造的游戲直播平臺,于2015年2月1日正式上線,主要為游戲玩家提供網(wǎng)游視頻直播和音樂直播等服務(wù)。目前龍珠直播與韓國職業(yè)電子競技協(xié)會(KeSPA)、游戲風(fēng)云、NICETV等組織達成戰(zhàn)略合作,擁有《英雄聯(lián)盟》職業(yè)聯(lián)賽(LPL)、《穿越火線》電視職業(yè)聯(lián)賽(CFPL)等超過30余款游戲頂級賽事的直播權(quán)。
需求分析:

龍珠直播的現(xiàn)有業(yè)務(wù)主要依托于其網(wǎng)站平臺和視頻內(nèi)容分發(fā)平臺,其中網(wǎng)站平臺承載了在線直播的各種關(guān)鍵業(yè)務(wù)功能,每天的用戶訪問量超過1億次,夜晚高峰時段的直播觀看人數(shù)達到數(shù)百萬量級,英雄聯(lián)盟、穿越火線等熱門游戲直播間的日訪問量超過600萬次。而一些熱門賽事直播的同時觀看人數(shù)同樣高達百萬,在前不久的LOL龍珠直播狂歡夜上,龍珠直播平臺同時在線人數(shù)突破313萬。

\
龍珠Web應(yīng)用系統(tǒng)架構(gòu)圖

龍珠官網(wǎng)的應(yīng)用架構(gòu)采用典型互聯(lián)網(wǎng)應(yīng)用架構(gòu),前端使用Nginx負(fù)載均衡,應(yīng)用程序服務(wù)器為IIS,數(shù)據(jù)庫為MySQL,中間加入Redis、Mongo做的緩存服務(wù),應(yīng)用支撐的平臺包括PHP、Java和.Net,每個應(yīng)用平均日訪問量超過200萬次,最高的應(yīng)用日訪問量超過1000萬次。

如何保證龍珠直播平臺在大流量、高并發(fā)情況下持續(xù)穩(wěn)定運行,確保系統(tǒng)不會因網(wǎng)絡(luò)、主機、應(yīng)用、數(shù)據(jù)庫性能瓶頸以及代碼問題,對用戶體驗造成影響,是龍珠的IT運維部門希望通過與云智慧的合作得到解決的。

解決方案:

針對龍珠平臺的典型架構(gòu)和業(yè)務(wù)需求,云智慧提供了以透視寶為核心的一體化端到端應(yīng)用性能管理解決方案,幫助龍珠實現(xiàn)了線上生產(chǎn)環(huán)境的持續(xù)數(shù)據(jù)庫優(yōu)化、應(yīng)用錯誤分析、代碼問題發(fā)現(xiàn)、數(shù)據(jù)訪問性能監(jiān)控、主機監(jiān)控、后端服務(wù)監(jiān)控等一系列能力。

\

典型應(yīng)用

  • 數(shù)據(jù)庫性能優(yōu)化

應(yīng)用開發(fā)完成上線后,需要知道應(yīng)用的數(shù)據(jù)庫訪問效率如何(即發(fā)現(xiàn)SQL腳本的效率問題),透視寶.Net Agent 安裝后可實時抓取應(yīng)用執(zhí)行過的SQL腳本及執(zhí)行時間,并分析可能產(chǎn)生的問題和數(shù)據(jù)庫鎖的情況,這些問題在測試階段是很難完成的;

  • 應(yīng)用錯誤分析

對于線上應(yīng)用,代碼級異常往往不可避免且較難重現(xiàn),但非常重要,透視寶.Net Agent會抓取這些運行時錯誤,分析錯誤產(chǎn)生的原因并可明確的告知用戶的信息有:什么時間、哪個URL、URL的參數(shù)及詳細(xì)的錯誤信息,用戶可根據(jù)這些信息便可了解問題產(chǎn)生的真實場景和原因。

  • 代碼問題發(fā)現(xiàn)

應(yīng)用上線后可能會存在代碼執(zhí)行效率問題,這些問題如果不通過代碼檢查往往很被發(fā)現(xiàn),透視寶.Net Agent支持基于黑白名單配置的代碼調(diào)用堆棧數(shù)據(jù)抓取,在代碼棧里,可以明確的看到每個方法的執(zhí)行時間、調(diào)用次數(shù)、調(diào)用了哪些資源或API等,并明確的標(biāo)記出存在問題的代碼位置,幫助用戶優(yōu)化代碼,解決代碼執(zhí)行問題。

  • 數(shù)據(jù)訪問性能監(jiān)控

在龍珠的應(yīng)用架構(gòu)中,基于NoSQL的數(shù)據(jù)操作場景大量存在,例如:Redis、Mongo,.Net Agent會從代碼級別統(tǒng)計應(yīng)用對這些緩存服務(wù)的訪問情況,例如:應(yīng)用對Redis的請求量是多大、命中率是多少、Value的大小是多少及合理性分析等,這些數(shù)據(jù)對客戶優(yōu)化應(yīng)用性能非常有價值;

  • 主機監(jiān)控

監(jiān)控龍珠部署在騰訊云的主機狀態(tài),實時關(guān)注各項性能指標(biāo):CPU、內(nèi)存、進程、磁盤、網(wǎng)卡信息及TCP等;

  • 后端服務(wù)監(jiān)控

監(jiān)控MySQL、Nginx、Redis等后端服務(wù)的運行狀態(tài),例如:MySQL吞吐率、Redis命中率等;

方案價值:

隨著透視寶應(yīng)用性能管理解決方案在龍珠平臺的全面部署,龍珠的運維團隊通過透視寶能夠:

  • 實時發(fā)現(xiàn)性能瓶頸,并且能夠記錄瓶頸產(chǎn)生的全部過程;
  • 及時發(fā)現(xiàn)用戶的應(yīng)用表現(xiàn)情況,記錄用戶應(yīng)用過程中事務(wù)的現(xiàn)狀。例如:哪些事務(wù)響應(yīng)時間比較慢、響應(yīng)比較慢的事務(wù)和哪些事務(wù)有關(guān)聯(lián)。
  • 真正實現(xiàn)端到端一體化的監(jiān)控,從客戶端、瀏覽器、CODE端、數(shù)據(jù)庫端、服務(wù)器端,端與端之間實現(xiàn)關(guān)聯(lián)。

客戶證言:

龍珠直播運維總監(jiān)對透視寶的評價是:透視寶具備快速發(fā)現(xiàn)和定位問題的能力,為龍珠直播向用戶提供高質(zhì)量的持續(xù)服務(wù)提供了保障。

【附】龍珠案例應(yīng)用實例:

(一)、發(fā)現(xiàn)性能瓶頸,確保應(yīng)用順利上線;

龍珠直播內(nèi)容搜索API應(yīng)用上線后,服務(wù)器持續(xù)報警,負(fù)載較高,但開發(fā)人員一直無法定位問題,對線上產(chǎn)品的持續(xù)服務(wù)能力產(chǎn)生較大影響。

在安裝透視寶后,立即發(fā)現(xiàn)如下幾個問題:

(1)、慢SQL:通過抓取到的SQL語句發(fā)現(xiàn),應(yīng)用中存在很多執(zhí)行效率較差的腳本,有的腳本執(zhí)行時間甚至達到1秒以上;

(2)、代碼問題:通過應(yīng)用代碼棧發(fā)現(xiàn),同一條SQL在一次請求里被連續(xù)調(diào)用4次,這種代碼失誤,對于高并發(fā)的應(yīng)用影響較大;

(3)、Redis訪問優(yōu)化:通過分析請求列表及數(shù)據(jù)發(fā)現(xiàn),一些本應(yīng)該到Redis的請求直接打到了數(shù)據(jù)庫上,如果訪問量足夠,會直接導(dǎo)致數(shù)據(jù)庫宕掉;

(二)、監(jiān)控應(yīng)用訪問異常,優(yōu)化應(yīng)用訪問體驗

在應(yīng)用監(jiān)控過程中,有的應(yīng)用會存在大量的404錯誤(這些錯誤會被Agent抓取并保存),這些的應(yīng)用404錯誤地址的格式表現(xiàn)為http://********/undefine,這種地址的產(chǎn)生的原因是:JS在獲取頁面對象并進行Ajax請求時獲取頁面對象錯誤,從而導(dǎo)致地址錯誤,需要優(yōu)化前腳本,提升用戶訪問體驗;

(三)、數(shù)據(jù)庫性能優(yōu)化

透視寶提供數(shù)據(jù)庫整體性能優(yōu)化與分析功能,快速定位慢SQL,提升應(yīng)用訪問數(shù)據(jù)庫的性能。

\

(四)請求性能優(yōu)化

透視寶提供請求整體性能優(yōu)化與分析功能,快速定位慢請求,提升應(yīng)用的性能。

\

關(guān)鍵詞:云智慧透視寶