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

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

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

    posts - 56, comments - 77, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    ©Copyright 2008 Julian Simpson. All rights reserved.

    英文原文:   Scaling up

    I was an Infrastructure Specialist at ThoughtWorks.  In my role I make sure that we are building our software so it can successfully be deployed to production.  In this series of blog posts I hope to pass on my top ten tips for using CruiseControl Enterprise effectively.  I'm writing these with the developers or systems administrators in mind: the people who most often manage CruiseControl.  However, I hope that anybody who is interested in Continuous Integration will get something from these articles.

    # 6:  Scaling up

    第 一件要做的事就是確保你可以同時(shí)構(gòu)建你的多個(gè)項(xiàng)目. CruiseControl使用Java線程來管理構(gòu)建和項(xiàng)目. 每個(gè)項(xiàng)目都有自己的項(xiàng)目線程. 而至少有一個(gè)構(gòu)建線程來真正的運(yùn)行一次構(gòu)建.  實(shí)際上有一個(gè)構(gòu)建隊(duì)列, 來調(diào)度從項(xiàng)目線程到發(fā)到構(gòu)建線程的請(qǐng)求. 你要給CruiseControl足夠的構(gòu)建線程來運(yùn)行: 缺省情況下只有一個(gè)構(gòu)建線程. 它的影響就是如果你配置了 5 個(gè)項(xiàng)目, 你也只能一次構(gòu)建一個(gè). 這也可以接受, 如果你只有一臺(tái)很弱的構(gòu)建服務(wù)器, 或者項(xiàng)目之間不能和平共處.

    另一方面, 如果你有強(qiáng)大的計(jì)算能力可以使用, 你就可以從額外的構(gòu)建線程中得到提速. 正確的線程數(shù)量設(shè)置會(huì)隨著時(shí)間而變化; 不要不情愿去做性能管理來找到你的服務(wù)器的最優(yōu)的設(shè)置.

    <cruisecontrol>

     
    <system>
      
    <configuration>
          
    <threads count="2" />
      
    </configuration>
     
    </system>

     
    <!-- rest of config file suppressed -->

    </cruisecontrol>

    Jeffrey Frederick 則明智的指出設(shè)置多于項(xiàng)目個(gè)數(shù)的構(gòu)建線程數(shù)是沒有意義的.


    在 調(diào)優(yōu)你的持續(xù)集成服務(wù)時(shí), 還有大量的其它因素可以考慮: 你的版本控制系統(tǒng)的速度, 你在哪里存儲(chǔ)你的構(gòu)建產(chǎn)物, 日志, 等等. 今天我要提到的一個(gè)因素是硬盤帶寬. 編譯軟件是一個(gè)很耗硬盤的過程. 即使構(gòu)建已經(jīng)完成了編譯Java代碼和打包jar包等操作, CruiseControl還得寫日志文件. 所有這些事情很容易就會(huì)讓單個(gè)硬盤滿負(fù)荷運(yùn)轉(zhuǎn). 理想情況下你想確保你的機(jī)器能夠一次構(gòu)建多個(gè)項(xiàng)目.

    在 我很早期的一個(gè)ThoughtWorks項(xiàng)目中, 我們的團(tuán)隊(duì)運(yùn)行了兩個(gè)CruiseControl服務(wù)器, 顯然是因?yàn)樽畛醯哪莻€(gè)Solaris服務(wù)器太慢了. 對(duì)我來說這看起來不對(duì)勁. 于是我深入的看了一下. 依靠我的系統(tǒng)管理員背景, 我發(fā)現(xiàn)了某個(gè)硬盤100%的忙于運(yùn)行操作系統(tǒng), CruiseControl和構(gòu)建. 我把工作負(fù)載分布到系統(tǒng)中的四個(gè)硬盤上, 然后那臺(tái)機(jī)器就能管理多得多的項(xiàng)目了.

    在我后續(xù)的項(xiàng)目中, 這個(gè)模式不斷的重復(fù). 以我的經(jīng)驗(yàn), 沒有多少CI服務(wù)器是因?yàn)樘幚砥鬟^載而受到限制. 不幸的是, 一旦系統(tǒng)啟動(dòng)并開始運(yùn)行, 矯正磁盤問題通常會(huì)很痛苦. 在調(diào)優(yōu)和人們開始抱怨緩慢的構(gòu)建之前, 定購大量的快速的硬盤驅(qū)動(dòng)器并祝自己好運(yùn).


    實(shí) 現(xiàn)這個(gè)模式的方法是使用CruiseControl的配置文件. <log>元素用來告訴CruiseControl把日志文件寫到哪. 缺省情況下它是CruiseControl安裝目錄下的一個(gè)子目錄. 如果你修改了<log>元素的"dir"屬性, 你就能夠確保日志文件可以寫到?jīng)]有運(yùn)行CruiseControl的硬盤上. 如果你使用 Ant 來構(gòu)建你的代碼, 你可以使用配置文件中<ant>元素的 "antWorkingDir" 屬性來保證你的項(xiàng)目在另外一個(gè)硬盤上構(gòu)建.

    我 無法為此給出一個(gè)很好的例子, 每個(gè)CruiseControl的實(shí)例之間太不一樣了. Buildx是一個(gè)使多個(gè)安裝更一致的嘗試. 如果你看一下各個(gè)部分在硬盤上的布局方式, 你就會(huì)發(fā)現(xiàn)CruiseControl的安裝在/usr/share/cruisecontrol, 但是projects和logs安裝在/var/spool/cruisecontrol: 我們這么做的原因是這樣的話你就能 mount /var 目錄到另外一塊硬盤, 如果系統(tǒng)開始變得繁忙. 如果你想知道更多的話隨時(shí)告訴我.

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


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 搜日本一区二区三区免费高清视频| 中文在线日本免费永久18近| 免费亚洲视频在线观看| 中国国产高清免费av片| 亚洲日韩在线视频| 国产精品深夜福利免费观看| a毛看片免费观看视频| 亚洲图片激情小说| 亚洲人成色77777在线观看大| 久久黄色免费网站| 色偷偷亚洲男人天堂| 久久亚洲AV午夜福利精品一区| 在线免费视频一区| 黄页免费在线观看| 豆国产96在线|亚洲| 亚洲精品福利在线观看| 亚洲午夜AV无码专区在线播放| 日本免费人成在线网站| 一道本在线免费视频| 亚洲深深色噜噜狠狠网站| 亚洲精品二区国产综合野狼| 国外成人免费高清激情视频| 99ee6热久久免费精品6| 成人一级免费视频| 亚洲精品无码久久久久牙蜜区| 亚洲国产精品线在线观看| 亚洲国产精品狼友中文久久久 | 最近免费中文字幕视频高清在线看| 人妻仑乱A级毛片免费看| 日本亚洲色大成网站www久久| 亚洲AV一宅男色影视| vvvv99日韩精品亚洲| 欧美大尺寸SUV免费| 国产好大好硬好爽免费不卡 | 希望影院高清免费观看视频| 在线免费视频你懂的| 黄色a级免费网站| 亚洲精品无AMM毛片| 亚洲最大成人网色香蕉| 亚洲视频一区二区在线观看| 精品国产综合成人亚洲区|