上周,一家名爲天火推出瞭(le)可以在iPhone或ipad觀看Flash影片應用程序。他們的應用程序使用托管在雲轉換Flash視頻到HTML5的服務器,使他們在iOS設備(bèi)查看到Flash的不可用。
現在我們已經聽過沒有人希望自己手機上的Flash,那麽你就會明白,天火有一個(gè)緩慢的第一天之後推出。經過緩慢的第一天我的意思是他們的服務器是如此的超載的需求,他們不能提供他們足夠快。較後他們不得不從(cóng)App Store拉他們的應用程序和宣布“售罄”。
我們在這裏認爲事情在這個世界上,可以稱(chēng)之爲“問題中,“有這麽大的需求,你的服務跟不上是一定要有一個很好的問題。 天火一樣,畢(bì)竟,做過在他們的第一個周末1000000美元在App Store。
另一方面,沒有人希望自己的服務器崩潰因爲過度負荷。麻煩的是,合理規劃重負荷的東西往往是可以從(cóng)一個應用到另一個。(爲天火負荷計劃可能是非常不同的從(cóng)facebook。)不過,也有一些非常簡單(dān)的負載規劃技巧,幾乎所有的人都應該知道:
1。想想内存利用率。除非你的服務器是一個純圖靈機,它可能有一個有限的内存量。如果你超過内存限制,大多數操作系統将使用存儲(chǔ)在磁盤交換模拟更多的内存。防止你的服務器内存耗盡,傑出的,但交換存儲(chǔ)實在是太慢瞭(le)。事實上,如果你的應用程序的一個關鍵組成部分(如Apache和MySQL)來交換,那麽你幾乎注定從性能的角度來看。不要讓這樣的事情發生,設置内存限制你的服務器應用程序,所以他們不能超過一定的尺寸。爲您的服務器打高峰負荷,客戶可能仍然需要等待服務;但是,等待的時間會比如果服務器應用程序交換短得多。
2。使用緩存在有意義的地方。你可以改善你的很多服務器的性能如果你可以緩存某些事情不會改變(biàn),常。例如,如果你要渲染使用服務器端的腳本每次點(diǎn)擊您的網站的HTML一樣的塊,在某種程度上能使塊一次然後爲每一個新的靜态HTML頁面。
3。看看谷歌的mod_pagespeedApache。谷歌已經開發並(bìng)發布瞭(le)一個Apache模塊實現瞭(le)十幾個技巧和較佳實踐,提高服務器的性能,在軟件方便的一塊。不是所有的人都适合每一個用戶,所以他們也可以很容易地啓用或禁用某些部件的模塊。
4。使用内容分發(fā)網絡的靜态内容。内容分發(fā)網絡(CDN)把你的數據複制到世界各地的服務器。讓你的數據更接近你的較終用戶,使他們更快地加載您的内容。使用CDN也可以減少你的服務器的負載,因爲你不再服務很多内容自己。就在幾天前,我們工程副總裁給我一個圖表顯示我們的平台服務器負載之前和之後他們開始使用CDN。在負荷下降是如此巨大,你可以基地跳從(cóng)圖。
5測(cè)試,測(cè)試,測(cè)試。大多數時候,你無法預測(cè)你的性能瓶頸會出現。當(dāng)談到時間來找出什麽是真正放慢你的服務器,你需要測(cè)試你的應用程序通過加載下來。通常,負載測(cè)試的結果可以爲開發商–許多人花更多的時間來優化其他成分很奇怪。