<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Tin's Blog

    You are coming a long way, baby~Thinking, feeling, memory...

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      128 隨筆 :: 0 文章 :: 221 評(píng)論 :: 0 Trackbacks

    Twitter的水平擴(kuò)展的一些關(guān)鍵點(diǎn),雖然它是個(gè)RoR應(yīng)用,但是這些建議絕對(duì)是放之四海而皆準(zhǔn)的,非常好的總結(jié)。
    因?yàn)槟瓿鮐witter曾經(jīng)遇到了性能瓶頸,而且?guī)缀跏譄o(wú)策。當(dāng)初很多人開(kāi)始懷疑Ruby的性能問(wèn)題,而后Twitter站起來(lái)了 ^__^

    有時(shí)間的朋友看看這個(gè)slide:http://www.slideshare.net/Blaine/scaling-twitter,沒(méi)有時(shí)間的看看我的摘要。

    開(kāi)發(fā):
    1、一定要測(cè)試!一定要早點(diǎn)測(cè)試!一定要早點(diǎn)測(cè)試!否則你就死定了。不要存任何僥幸心理,從項(xiàng)目的開(kāi)始就寫(xiě)好測(cè)試。
    2、對(duì)任何部分都要測(cè)試。還是測(cè)試!
    3、性能測(cè)試要交給用戶(hù)來(lái)做。那樣才有意義。所以要做好log。用好分析工具:Munin(服務(wù)器內(nèi)存占用監(jiān)控)、Nagios(服務(wù)器服務(wù)網(wǎng)絡(luò)狀態(tài)監(jiān)控)、AWStats & Google Analytics、錯(cuò)誤日志、發(fā)現(xiàn)了錯(cuò)誤馬上進(jìn)入問(wèn)題跟蹤系統(tǒng)(Trac、Jira……太多了,但是最好有一個(gè))。


    架構(gòu):
    1、使用可以分區(qū)的架構(gòu)。按照架構(gòu)上的功能清晰的分區(qū)。這意味著你可以通過(guò)替換一個(gè)實(shí)現(xiàn)來(lái)改進(jìn)性能,因?yàn)樾阅芎蛷?fù)雜度往往是不可兼得的。

    對(duì)于數(shù)據(jù)庫(kù):
    1、盡量不要分布式數(shù)據(jù)庫(kù),包括數(shù)據(jù)庫(kù)分區(qū)。最好通過(guò)提高單臺(tái)服務(wù)器的性能提升這個(gè)節(jié)點(diǎn)的性能。更重要的是查詢(xún)優(yōu)化。通過(guò)備份服務(wù)器解決單點(diǎn)故障。
    2、對(duì)where子句中的字段增加index。(這個(gè)當(dāng)然了)
    3、扁平化查詢(xún),比如一個(gè)user有很多朋友,查一個(gè)人的朋友如果通過(guò)外鍵會(huì)浪費(fèi)很多性能。可以把ids序列化為1,2,3這樣,然后用like查詢(xún)速度更快。
    4、一定要優(yōu)化你的SQL,不要寄希望于ORM給你解決(不管是DataMapper、ActiveRecord或者UnitOfWork)。

    Cache:
    1、一定要考慮Cache,最重要的是領(lǐng)域?qū)ο蟮腃ache,一定要考慮Memcache,如Memcached。
    2、應(yīng)該有90%的查詢(xún)可以Cache。
    3、但是要注意Cache實(shí)效問(wèn)題(要及時(shí)標(biāo)注實(shí)效),這個(gè)是個(gè)難點(diǎn)也是個(gè)重點(diǎn)。
    4、可以考慮用Message來(lái)標(biāo)記實(shí)效(這樣可以保證異步,無(wú)阻塞的按照順序的讓數(shù)據(jù)失效),據(jù)稱(chēng)也不是很難。

    Messaging:
    1、混合應(yīng)用。不用去看Java的OpenFire了,即使它很好,完全可以考慮erlang的ejabberd了,俄羅斯的產(chǎn)物。
    2、排隊(duì)問(wèn)題有很多解決方案:ActiveMQ、RabbitMQ、MySQL + Lightweight Locking、Drb(for ruby)

    posted on 2007-10-16 08:42 Tin 閱讀(3190) 評(píng)論(3)  編輯  收藏 所屬分類(lèi): 擴(kuò)展與調(diào)優(yōu)RoR

    評(píng)論

    # re: Twitter的性能調(diào)優(yōu)的關(guān)鍵點(diǎn) 2007-10-16 09:10 太陽(yáng)里的雪
    他們用的是ROR,然道還自己寫(xiě)SQL,不用ActiveRecord?  回復(fù)  更多評(píng)論
      

    # re: Twitter的性能調(diào)優(yōu)的關(guān)鍵點(diǎn) 2007-10-16 13:06 Tin
    用RoR也要進(jìn)行優(yōu)化呀。ActiveRecord也可以自己優(yōu)化SQL的。  回復(fù)  更多評(píng)論
      

    # re: Twitter的性能調(diào)優(yōu)的關(guān)鍵點(diǎn) 2007-12-21 09:33 bizairshop
    一定要早點(diǎn)測(cè)試沒(méi)錯(cuò) !
    http://www.bizairshop.com  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 黄+色+性+人免费| 好吊色永久免费视频大全| 日韩不卡免费视频| 久久综合亚洲色一区二区三区| 无码av免费一区二区三区试看| 亚洲免费在线视频| 美女内射毛片在线看免费人动物| 久久久久亚洲AV无码观看| 91精品国产免费| 亚洲久悠悠色悠在线播放| 精品免费久久久久久成人影院| 国产成人综合久久精品亚洲| 又粗又大又猛又爽免费视频| 一级做a毛片免费视频| 亚洲va无码专区国产乱码| 99久久免费看国产精品| 中文字幕 亚洲 有码 在线| 免费黄色毛片视频| 一个人晚上在线观看的免费视频| 国产亚洲精AA在线观看SEE| 最近新韩国日本免费观看| 亚洲人成网站看在线播放| 国产成人在线观看免费网站| 一个人晚上在线观看的免费视频| 亚洲国产高清视频| 18禁成年无码免费网站无遮挡| 高潮内射免费看片| 亚洲一区二区三区日本久久九| 女人18一级毛片免费观看| 福利免费在线观看| 亚洲国产精品张柏芝在线观看| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 亚洲人成77777在线播放网站不卡| 四虎国产精品免费视| 嫩草影院在线播放www免费观看| 亚洲最大成人网色香蕉| 中文字幕精品无码亚洲字| 国产高清免费视频| 永久免费无码网站在线观看个| 亚洲欧洲视频在线观看| 亚洲区小说区图片区|