ajax時代的效能焦慮

2021-06-15 22:18:46 字數 1133 閱讀 3240

mickaël rémond 在今年早些時候寫了一篇

web 2.0: shifting from 「get fast」 to 「get massive」 。對於 ajax 時代的開發者來說,這是一篇很值得閱讀的文章。

最近,我們的產品採用完全的 ajax 風格進行了重寫(**就不說了,不是重點,而且也避免做廣告的嫌疑),也完成開發上了線。結合我們這一段時間的實際運營資料,印證一下上文之中的觀點。

這個產品是用 .net 開發的。上線以前的第一版,是標準的 web 1.0 。每個功能都在單獨的頁面中完成—— one page one click。這個產品的基本日 pv 在 100w 左右。改版之前,機房的網路頻寬是 10m ,基本夠用,通常會保持在 8m 左右的流量。從 web server 的負載來看,基本保持在 10% 以內的 cpu 佔用率。後端 db server 的壓力也很小。通常是在 5% 左右。

使用 ajax 的技術之後,整個「使用者管理區」完全採用 ajax 的方式在頁內實現,大量的分頁處理也改用 ajax 來實現,從使用者體驗上說,很多功能都有了「應用程式」的感覺。改版之後的系統經過幾個星期的調整,已經漸漸趨於穩定。在使用者數量和瀏覽人數沒有發生重大變化的前提下,網路頻寬公升級到了 40m ,基本夠用,通常在 30m 上下維持。一台 web server 勉強能夠負荷。後端 db server 仍是一台,但壓力劇增。暴公升到了 50% 並長期維持在這個水平。

刨除新應用和新功能帶來的影響,可以發現,在採用 ajax 技術之後,大致增加了 4 倍左右的網路頻寬需求。對 web 伺服器的壓力增加了大致 8 倍(同乙個功能在 ajax 下可能意味著更多的 http request),純粹因 ajax 增加的 db 壓力增加了可能有 10 倍左右(排除新功能帶來的影響,主要的壓力來自於 ajax 介面對資料的飢渴和更高的實時性要求)。

隨後的業務合作,增加了使用者流量,現在我們的架構已經調整為: 2 臺 web 負載均衡,並採用 cdn 方式快取,以進一步降低對於 web 的壓力。網路頻寬調整到了 50m,長期保持在 40m 以上的流量。後端 db server 長期處於 60% 以上的負載。

隨著更多業務合作的開展,對效能的焦慮,越來越大。而更具實時性的業務發展規劃和趨勢,使得這種壓力正在加速增長。考慮採用多核乃至更加具有實時性的技術實現。已經是開發隊伍正在考慮的問題。對於 erlang 的前期研究已經在進行中。

在知識分享的時代,你焦慮個毛啊

不管你們有沒有這種情況,會不會焦慮,反正作為我個人來講,我看到很多東西如果不會的話,我會不自覺的陷入焦慮,那該如何改變這種狀態呢?有乙個方法非常有效,那就是 解決不了問題,就解決掉提出問題的那個人?所以,解決不了焦慮,就解決掉讓你焦慮的方式。什麼意思?不要雜七雜八的亂看。怎麼說呢?隨著知識分享熱潮的...

效能優化 ajax快取

在現代web應用程式中,前端 充斥著大量的ajax請求,如果對於ajax請求可以使用瀏覽器快取,那麼可以顯著地減少網路請求,提高程式響應速度。1.ajax request 使用jquery框架可以很方便的進行ajax請求,示例 如下 1 ajax 7 非常簡單,注意其中的第4行 cache true...

焦慮的生活

上班 現在是早上8點28分,正常來說,很多人都在上班的路上,而我7點多就到了。因為不想擠地鐵,我每天都調了6點鐘的鬧鐘,6點半就開始出發,在路上一定會花費差不多2個小時。晚上常常有很多任務作要帶回家做,導致家庭 身體無法兼顧到。現在精力很差,上班坐一會就會覺得很累,很想睡覺。工作 現在 體制改革 作...