重壓下的Ubuntu Tweak服務端的解壓方案
Ubuntu Tweak每天20,000+的使用量每天仍在繼續(xù),給我?guī)砗艽蟮膲毫?hellip;***的壓力在于,我沒有預料到這個情況,以至于我的Linode的Server的400GB流量,這個月才過了一半,就已經(jīng)吃掉70%了!
這意味著,未來幾天我不采取什么措施的話,要么我關閉服務、要么我募集捐助……這個時候,lfeng把他的Server給了我用,我終于可以先采取比較簡易的方式讓鏡像一下media部分,暫時先把流量導出去。方法很簡單:
首先看Server端的流量消耗情況:上下圖只差了兩天…平均一天5%,也就是20G。
意識到流量將在5天后就被吃光的情況下,我是各種著急啊,幸好lfeng同學主動說要給我Server用,于是我用了Nginx的rewrite把流量導出去了,就這么一行:
rewrite ^/media/(.*)$ http://ubuntu-tweak.lfeng.me$request_uri? redirect; |
只要是訪問media目錄的,我就給他一個302重定向,到架在lfeng的那邊的media鏡像上去。
可是media的內(nèi)容是用戶上傳的,會不斷變化,怎么弄簡單的弄個同步呢。幸運的是這media還真不是變化特別頻繁,所以我用rsync搞了同步,放進cron里去跑:
- rsync -avz /path-to-source/media -e ssh user@dest.server:/path-to-dest/ubuntu-tweak/
這樣就可以用rsync通過ssh定期把這個Server的內(nèi)容同步到另一個Server上去了。
一切ready后,我在lfeng提供的Server上觀察了十分鐘,這時我開啟了nginx的access文件記錄:
可以看到,10分鐘的時間,ubuntu-tweak.com.acccess.log 就有了10,000+條記錄,也就是有了10,000個hit,平均每秒16個請求。
這樣我原始的Server暫時沒有了流量方面的壓力,我可以松一口氣了。
這個quick and dirty的減輕Server壓力的方式顯然不是長久之計,我需要對我這個基于Django(uwsgi+nginx)的WebApp做一下profile,然后好好進行優(yōu)化。
如果大家有什么好的practice,還請指教!
感謝lfeng~
下一篇我會講講比較悲劇的客戶端的優(yōu)化經(jīng)歷。