就在前幾天公司旗下一網(wǎng)站(由于這是公司的商業(yè)內(nèi)容我就不說(shuō)是那個(gè)網(wǎng)站了)以下簡(jiǎn)稱A站,這A站在年后流量猛增從一天的七八十萬(wàn)猛跑到了好幾百萬(wàn)的IP,一天下來(lái)接近一千萬(wàn)的PV讓整個(gè)服務(wù)器在高壓下超負(fù)荷的工作著,時(shí)不時(shí)的服務(wù)就出現(xiàn)宕機(jī)。
最首先反映出情況的是數(shù)據(jù)統(tǒng)計(jì),一天下來(lái)一個(gè)數(shù)據(jù)也沒(méi)有統(tǒng)計(jì)上,原來(lái)是MySQL停止工作了。
本文就圍繞這個(gè)問(wèn)題來(lái)講講我們公司幾個(gè)技術(shù)人員的解決方案。
1. MySQL服務(wù)器集群
由于是小公司在資金和成本上都有所限制,而且在技術(shù)上也沒(méi)有幾個(gè)技術(shù)員接觸過(guò),所以這個(gè)方法自然就讓大伙否決了。
這里說(shuō)說(shuō)我個(gè)人的理解!做集群不但添加資費(fèi)的開(kāi)銷(xiāo),而且在技術(shù)上也有很大的挑戰(zhàn),對(duì)于我們公司目前的情況是不大現(xiàn)實(shí)的。集群無(wú)非就是把一臺(tái)服務(wù)器的壓力轉(zhuǎn)接到兩臺(tái)或是多臺(tái)服務(wù)器上,我是這么理解的,也許我理解有誤,還請(qǐng)大家指教。
2. 分而治之
這個(gè)方法和集群差不多,不過(guò)是把統(tǒng)計(jì)的代碼放在不同的服務(wù)器上跑,由于公司有不少配置低的服務(wù)器跑幾萬(wàn)到幾十萬(wàn)IP還是沒(méi)有問(wèn)題的,我們可以把幾百萬(wàn)流量分成十來(lái)個(gè)幾十萬(wàn)的量分而統(tǒng)計(jì)。
優(yōu)點(diǎn):充分的利用了現(xiàn)在的資源,解決了目前的問(wèn)題。
缺點(diǎn):這樣的方法不是長(zhǎng)久之計(jì),遲早還是會(huì)出問(wèn)題的。而且在統(tǒng)計(jì)數(shù)據(jù)的時(shí)候比較麻煩。
3. 統(tǒng)計(jì)代碼的修改
由于之前采用的是在插入數(shù)據(jù)之前加以判斷,這個(gè)IP是否存在,來(lái)路等的處理,無(wú)形中增加了服務(wù)器的壓力,所以大伙把統(tǒng)計(jì)代碼改成來(lái)一個(gè)就插入數(shù)據(jù)庫(kù),不管三七二十一等以后在處理。
這個(gè)方法基本上把當(dāng)天的數(shù)據(jù)保留下來(lái)了,可是在處理的時(shí)候由于數(shù)據(jù)量的龐大,來(lái)來(lái)回回還是把服務(wù)器跑死了,而且在插入的時(shí)候由于當(dāng)時(shí)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的時(shí)候留有的索引,也大大的消耗了不少的服務(wù)器資源。
那么把索引去掉到最后處理的時(shí)候又是老慢的,得不償失。
4. 統(tǒng)計(jì)方式的修改
最后這一個(gè)方法,效果非常的明顯。那是什么方法呢!
這里就主要介紹這個(gè)方法:
A、 保留原用的數(shù)據(jù)結(jié)構(gòu)不變,并把所有的數(shù)據(jù)按一定的結(jié)構(gòu)存入文件
結(jié)構(gòu):可以是xml,json,也可以是你自己想的任何有規(guī)律的數(shù)據(jù)排放。
例如:
1 221.2.70.52,http://www.baidu.com,windowxprn
2 221.2.70.52,http://www.baidu.com,windowxprn
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com