• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            lxyfirst

            C++博客 首頁 新隨筆 聯系 聚合 管理
              33 Posts :: 3 Stories :: 27 Comments :: 0 Trackbacks
            varnish的作者Poul-Henning Kamp,是寫freebsd內核的,在寫varnish時結合了內核的一些原理和機制,摘錄了一些設計思路。
            1.現代的操作系統對于內存管理,磁盤讀寫有復雜的優化機制,以提高系統的整體性能,開發用戶空間的程序時需要關注、配合這些機制,以squid為例,內部實現了對象的緩存、淘汰策略,其實現跟操作系統類似,比如被訪問的對象會被緩存,冷對象會刷到磁盤,釋放內存,在一些情況下,這種機制可能跟操作系統沖突,從而并不能達到預期。當squid緩存的內存對象一段時間內未被訪問,并且還未被squid刷到磁盤時,操作系統可能因為內存不足將這些冷對象swap到磁盤,此時squid是不知道的,而一直認為這些冷對象還在內存中,然后squid根據淘汰策略將這些冷對象刷到磁盤時,操作系統需要先把這些冷對象從swap中重新載入內存,squid接著將這些冷對象寫入磁盤。可以看出整個過程的性能損耗。
            評注:這個例子需要一分為二的看,應用程序的內存對象被系統swap,說明系統已經內存不夠了,內存cache效率大打折扣。

            2.帶持久化的cache,需要從持久化的數據中重構cache,一般有兩種方法,一種是直接從磁盤中按需讀取,由于訪問是隨機的,而磁盤的隨機讀效率很低,這種方式訪問效率不高但是節省空間,適合低流量的小機器,大數據量的cache。另外一種方法是預先從磁盤中建立完整的索引,能夠大大提升訪問效率。
            持久化緩存和磁盤不同的是持久化緩存對可靠性要求不高,不需要嚴格的崩潰恢復,varnish使用了第二種方式,通過分層的保護提升可靠性,頂層通過A/B寫保證可靠性。底層具體數據不保證可靠性。
            http://www.varnish-cache.org/trac/wiki/ArchitectNotes
            posted on 2011-01-28 11:52 star 閱讀(490) 評論(0)  編輯 收藏 引用
            丁香色欲久久久久久综合网| 国产精品久久自在自线观看| 亚洲精品无码久久毛片| 午夜精品久久久久| 91精品国产高清久久久久久io| 久久福利片| 亚洲AV无码1区2区久久| 久久久久亚洲AV成人网| 日产精品久久久久久久| 久久亚洲中文字幕精品一区四| 婷婷久久香蕉五月综合加勒比| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲av伊人久久综合密臀性色| 久久99国产精品久久99| 亚洲日本久久久午夜精品| 久久久久AV综合网成人| 久久精品国产亚洲AV忘忧草18| 精品无码久久久久久国产| 97久久精品人妻人人搡人人玩| 欧美日韩久久中文字幕| 亚洲国产精品狼友中文久久久 | 777久久精品一区二区三区无码| 国内精品综合久久久40p| 亚洲欧美国产精品专区久久| 精品久久久久中文字| 久久精品免费大片国产大片| 久久久久四虎国产精品| 97久久国产亚洲精品超碰热| 国产精品对白刺激久久久| 无码AV波多野结衣久久| 久久久久久亚洲精品成人| 亚洲av成人无码久久精品| 久久久久久久久久久久中文字幕| 久久久久亚洲AV成人网人人网站 | 久久久久久久91精品免费观看| 香蕉99久久国产综合精品宅男自 | 精品久久久久久久国产潘金莲| 四虎影视久久久免费| 久久久噜噜噜久久中文字幕色伊伊| 欧美久久亚洲精品| 久久毛片一区二区|