放翁(文初)的一畝三分地

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

              今天,有一個(gè)使用我優(yōu)化的Memcached cache Client給我發(fā)了郵件問(wèn)到一個(gè)參數(shù)的作用,覺(jué)得還是比較重要的一個(gè)參數(shù),因此也說(shuō)一下,同時(shí)也在這里說(shuō)一下,當(dāng)前優(yōu)化過(guò)的客戶端已經(jīng)作了幾次小的升級(jí),修復(fù)了一些邊界數(shù)據(jù)的問(wèn)題,大家如果在使用的話,最好能夠升級(jí)。(http://code.google.com/p/memcache-client-forjava/

             郵件如下:

             你好:
          <socketpool name="pool0" failover="true" initConn="5" minConn="5"
            maxConn="250" maintSleep="5000" nagle="false" socketTO="3000"
            aliveCheck="true" >
            <servers>10.0.0.16:11111</servers>
            <weights>10</weights>
           </socketpool>
          能解釋下maintSleep這個(gè)意思么?我看有的資料說(shuō)吧它設(shè)置為0性能更好,能給些建議么?謝謝?。∥覀儸F(xiàn)在的PV大約每天500萬(wàn)。

           

              這個(gè)參數(shù)是對(duì)此連接池維護(hù)線程的檢查間隔時(shí)間的配置,如果配置小于等于0,則將不會(huì)有后臺(tái)線程維護(hù)此連接池,參數(shù)單位為毫秒,下面解釋一下維護(hù)連接池的含義,其實(shí)就和其他的資源池一樣,資源池的目的就是為了解決資源的申請(qǐng)和釋放的開(kāi)銷增加系統(tǒng)壓力的問(wèn)題,將資源通過(guò)池的方式回收重用,有利于系統(tǒng)性能的提高。memcached cache client 其實(shí)是通過(guò)socket來(lái)和服務(wù)端進(jìn)行通信,建立socket連接也是比較消耗時(shí)間的工作,因此配置了池的初始連接數(shù)(initConn),最小連接數(shù)(minConn),最大連接數(shù)(maxConn)。這三者關(guān)系如下圖,維護(hù)他們之間狀態(tài)轉(zhuǎn)移的就是后臺(tái)線程。

           

              后臺(tái)進(jìn)程維護(hù)資源池的作用就是將有限資源回收,例如數(shù)據(jù)庫(kù)連接,如果一臺(tái)oracle只有500個(gè)連接數(shù)可以支持,那么如果一個(gè)應(yīng)用都占用了50個(gè)閑置,那對(duì)于其他需要資源的應(yīng)用來(lái)說(shuō)無(wú)疑是一種浪費(fèi)。但如果配置了資源管理,但由于應(yīng)用屬于忙時(shí)和閑時(shí)交替比較頻繁的情況,那么如果時(shí)間配置的不是很合適,就會(huì)達(dá)不到原來(lái)資源池的作用,資源反復(fù)回收和申請(qǐng)。所以對(duì)于這個(gè)參數(shù)的配置,個(gè)人覺(jué)得一定要配,配置的值需要注意,初始化和最小的值可以是自己預(yù)估平時(shí)平均并發(fā)處理的均值,最大的連接數(shù)當(dāng)然依賴于資源的總數(shù),而維護(hù)時(shí)間間隔則最好是能夠根據(jù)閑時(shí)和忙時(shí)的情況來(lái)考慮配置,這樣既不會(huì)浪費(fèi)資源,同時(shí)也不會(huì)使資源池時(shí)效。

              順帶說(shuō)一句,如果對(duì)于數(shù)據(jù)丟失要求不是很苛刻,然后網(wǎng)絡(luò)情況也不錯(cuò)的時(shí)候,可以將aliveCheck設(shè)置為false,因?yàn)槿绻莟rue,在每一次發(fā)送任何數(shù)據(jù)操作之前都會(huì)去做心跳檢查,這個(gè)未來(lái)也會(huì)考慮去優(yōu)化。

          posted on 2008-11-21 15:28 岑文初 閱讀(1948) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 普宁市| 图木舒克市| 杂多县| 伊通| 庄浪县| 舒兰市| 杭锦后旗| 长宁区| 雅江县| 长泰县| 施秉县| 嘉善县| 江西省| 八宿县| 宜宾县| 波密县| 西丰县| 剑阁县| 德昌县| 沁源县| 台山市| 油尖旺区| 桦甸市| 镇宁| 呼图壁县| 尉犁县| 崇州市| 东兰县| 竹溪县| 正安县| 定远县| 漾濞| 井冈山市| 磐石市| 桂东县| 望江县| 怀宁县| 获嘉县| 丹凤县| 桐柏县| 临夏县|