<rt id="tf2wb"><bdo id="tf2wb"><kbd id="tf2wb"></kbd></bdo></rt>
    1. <button id="tf2wb"><thead id="tf2wb"></thead></button>

      <rp id="tf2wb"><bdo id="tf2wb"></bdo></rp>
      <delect id="tf2wb"><td id="tf2wb"></td></delect>
      <rt id="tf2wb"></rt>
      <rt id="tf2wb"><bdo id="tf2wb"></bdo></rt>
    2. 企業(yè)與個(gè)人網(wǎng)絡(luò )營(yíng)銷(xiāo)一站式服務(wù)商
      網(wǎng)站建設 / SEO優(yōu)化排名 / 小程序開(kāi)發(fā) / OA
      0731-88571521
      136-3748-2004
      服務(wù)器管理:服務(wù)器死機的常見(jiàn)六種原因
      信息來(lái)源:長(cháng)沙個(gè)人做網(wǎng)站   發(fā)布時(shí)間:2010-9-6   瀏覽:
      如果沒(méi)有任何經(jīng)驗,學(xué)習如何擴展一個(gè)網(wǎng)站是相當困難的。假設現在你有很多像highscalability.com那樣網(wǎng)站,你需要一些好的解決方案來(lái)擴展它們,但是世上沒(méi)有“萬(wàn)能藥”,沒(méi)有哪個(gè)解決方案可以適應所有網(wǎng)站的需要。你不得不自己動(dòng)手,通過(guò)不斷地思考來(lái)找到一個(gè)能滿(mǎn)足你的需求的解決方案。我也是這樣做的。

      幾年以前,我的老板來(lái)找我,然后對我說(shuō):“我們有一個(gè)新項目想交給你來(lái)做。主要是一個(gè)網(wǎng)站的重構,在一個(gè)月內,這個(gè)站點(diǎn)已經(jīng)擁有100萬(wàn)個(gè)用戶(hù)了。你必須重新構建這個(gè)網(wǎng)站,來(lái)確保我們可以應對將來(lái)逐漸增加的用戶(hù)數量!蔽乙呀(jīng)是一個(gè)有經(jīng)驗的程序員了,但是在這些方面并不擅長(cháng),所以我不得不開(kāi)始學(xué)習如何擴展一個(gè)網(wǎng)站——整個(gè)過(guò)程歷盡了艱難困苦。(相關(guān)文章推薦:重構:“為什么”和“怎么做”)

      這個(gè)網(wǎng)站的后臺軟件是一個(gè)PHP內容管理系統,基于Smarty和MySQL。第一個(gè)任務(wù)是找到一個(gè)合適的托管公司,這個(gè)公司需要具有豐富的經(jīng)驗,可以為我們管理服務(wù)器。經(jīng)過(guò)一番調查研究,我們找到了一家這樣的公司,然后告訴他們我們的需求,他們給我們推薦的配置如下:

      負載均衡器 (+Fallback) 
      2個(gè)Web服務(wù)器 
      MySQL服務(wù)器(+Fallback) 
      開(kāi)發(fā)機器 
      他們說(shuō),這就是我們需要的所有東西了——對此,我們深信不疑。我們最后得到的配置是:

      負載均衡器 (單核, 1GB 內存, Pound) 
      2個(gè)Web服務(wù)器 (雙核, 4GB 內存, Apache) 
      MySQL服務(wù)器 (四核, 8GB 內存) 
      開(kāi)發(fā)機器 (單核, 1GB 內存) 
      這個(gè)配置十分的基礎,并沒(méi)有做進(jìn)一步優(yōu)化。為了同步文件(PHP和媒體文件),他們建立了一個(gè)active-active DRBD。最后,重構開(kāi)始了——當然,我們很興奮。一大早,我們把域名切換到了新的IP上,運行我們的監控腳本,然后盯著(zhù)屏幕看。我們馬上在這些機器上看到了流量,一切似乎都工作的很好。頁(yè)面載入的很快,MySQL負擔了大量的查詢(xún)任務(wù),我們所有人都很高興。

      然后,突然我們的電話(huà)開(kāi)始響個(gè)不停:“我們不能訪(fǎng)問(wèn)你們的網(wǎng)站了,這是怎么回事?”我們看了一下我們的監控軟件,事實(shí)的確如此——服務(wù)器都被frozen了,站點(diǎn)處于離線(xiàn)狀態(tài)!當然,我們做的第一件事情是打電話(huà)給我們的托管服務(wù)提供商:“我們的所有服務(wù)器都死機了。這是怎么回事?”他們答應檢查一下機器,一會(huì )再打過(guò)來(lái)。這個(gè)電話(huà)來(lái)了:“你的系統根本就無(wú)法插手。你做了什么?它完全被搞砸了!彼麄兺V沽素撦d均衡器,然后讓我觀(guān)察一下其中一個(gè)Web服務(wù)器?吹侥莻(gè)index.php文件,我大吃一驚。它包含一些奇怪的C代碼片段,錯誤消息和一些看起來(lái)像日志文件的東西。經(jīng)過(guò)進(jìn)一步的調查,我們發(fā)現是DRBD引發(fā)了這次事故。

      "殺死"你的服務(wù)器的方法之一

      把Smarty compile和模板緩存放到一個(gè)高負載的active-active DRBD集群上,那么你的服務(wù)器將會(huì )掛掉!當我們的托管服務(wù)提供商修復了Web服務(wù)器的時(shí)候,為了在這些服務(wù)器的本地文件系統上存儲Smarty緩存文件,我重寫(xiě)了部分CMS代碼。我們再次上線(xiàn)了!

      現在是午后。這個(gè)網(wǎng)站通常在下午的晚些時(shí)候到傍晚達到峰值。晚上,幾乎沒(méi)有什么流量。我們一直盯著(zhù)監控軟件,我們所有人都緊張得不得了。這個(gè)網(wǎng)站可以被載入,但是后來(lái),系統負載越高,響應就越慢。我增加了Smarty模板緩存的生存期,希望這能產(chǎn)生效果——但是很可惜,這并沒(méi)有產(chǎn)生效果!不久,服務(wù)器開(kāi)始給出超時(shí)提示,空白頁(yè)面和錯誤信息。有兩臺機器不能處理負載。

      我們的客戶(hù)這個(gè)時(shí)候有一點(diǎn)緊張,但是他說(shuō):OK,重構通常會(huì )引發(fā)一些問(wèn)題的。只要你能很快地修復它,那就沒(méi)事了!

      我們需要一個(gè)計劃來(lái)減少負載,然后,我們和我們的托管服務(wù)提供商討論了這個(gè)問(wèn)題。他們的一個(gè)系統管理員提出了一個(gè)好主意:“伙計,你的服務(wù)器現在運行在一個(gè)非常常見(jiàn)的Apache+mod_php架構上。把你的Web服務(wù)器換成Lighttpd怎么樣?它是一個(gè)相當小項目,但是維基百科都在使用它!蔽覀兺饬。(相關(guān)文章推薦:更好的選擇 細數Apache服務(wù)器的四個(gè)替代者)

      "殺死"你的服務(wù)器的方法之二

      把一個(gè)開(kāi)箱即用的Web服務(wù)器架設在你的機器上,并且一點(diǎn)也沒(méi)有對它進(jìn)行優(yōu)化,那么你的服務(wù)器將會(huì )掛掉!那個(gè)管理員盡了他的最大努力,盡快地重新配置了所有的Web服務(wù)器。他拋棄了Apache,然后切換到Lighttpd+FastCGI+Xcache上來(lái)。后來(lái),當我們重新上線(xiàn)的時(shí)候,我們幾乎沒(méi)有再感受到壓力。這次,這些服務(wù)器會(huì )維持多長(cháng)時(shí)間呢?

      這些服務(wù)器運行的出奇地好。負載比以前低很多,平均響應時(shí)間也不錯。我們徹底放心了,然后我們都回家睡覺(jué)了。天已經(jīng)很晚了,我們認為沒(méi)有其他的事情需要我們做了。第二天,網(wǎng)站運行的相當好,但是在高峰時(shí)段,它一直接近于崩潰的邊緣。我們發(fā)現MySQL是瓶頸,我們再次打電話(huà)給我們的托管服務(wù)提供商。他們建議在每個(gè)Web服務(wù)器上用MySQL從服務(wù)器進(jìn)行MySQL的主-從同步。

      "殺死"你的服務(wù)器的方法之三

      再強大的數據庫服務(wù)器也有它的極限,當你到達它的極限的時(shí)候,你的服務(wù)器將會(huì )掛掉!在這種情況下,某些時(shí)候你的數據庫會(huì )變得十分緩慢,以至于隊列中大量的網(wǎng)絡(luò )連接會(huì )再次“殺死”我們的Web服務(wù)器。不幸的是這個(gè)問(wèn)題很難修復。內容管理系統在這方面十分的簡(jiǎn)單,它本身并不支持單獨地讀取和寫(xiě)入SQL查詢(xún)。重寫(xiě)這一切花了很長(cháng)時(shí)間,但是相對于每分鐘都遭遇到掛起休眠來(lái)說(shuō),是相當值得的。

      MySQL同步真的成功了,網(wǎng)站最終穩定了!在接下來(lái)的幾周,幾個(gè)月里,網(wǎng)站取得了成功,用戶(hù)的數量開(kāi)始不斷地增加。流量再次超過(guò)我們的資源限制,這只是時(shí)間的問(wèn)題。

      "殺死"你的服務(wù)器的方法之四

      不提前作規劃,你的服務(wù)器可能會(huì )掛掉!

      幸運的是,我們一直在思考,并且一直在做規劃。我們優(yōu)化了代碼,減少了每個(gè)頁(yè)面載入的時(shí)候需要的SQL查詢(xún)的數量,我們意外地發(fā)現了MemCached這個(gè)好東東。首先,我們在一些核心功能上添加了對MemCached的支持,在一些重量級(運行緩慢)的功能上我們也添加了對MemCached的支持。當我們把這些變更部署以后,我們簡(jiǎn)直不能相信這個(gè)結果——這感覺(jué)有點(diǎn)像發(fā)現了“圣杯”。我們每秒查詢(xún)的數量至少降低了50%。我們決定更多地使用MemCached,而不是購買(mǎi)另外一個(gè)Web服務(wù)器。

      "殺死"你的服務(wù)器的方法之五

      忘記做緩存,你會(huì )浪費很多錢(qián),而且,你的服務(wù)器還會(huì )掛掉!事實(shí)證明,MemCached幫助我們減少了70%-80%的MySQL服務(wù)器上負載,同時(shí),在Web服務(wù)器上,也產(chǎn)生了巨大的性能提升。頁(yè)面載入的相當快。

      最終,我們的配置看起來(lái)似乎是完美的。即使在高峰時(shí)段,我們也無(wú)須再擔心崩潰或頁(yè)面響應緩慢了。我們搞定它了嗎?不!一臺藍色的Web服務(wù)器開(kāi)始有一點(diǎn)響應緩慢了。然后出現了一些錯誤消息,空白頁(yè)面等等。這個(gè)系統負載能力很不錯,在大多數情況下服務(wù)器也都在工作,但是只是在“大多數情況下”而已。

      "殺死"你的服務(wù)器的方法之六

      把成百上千個(gè)小文件放在一個(gè)文件夾里,當索引節點(diǎn)耗盡的時(shí)候,你的服務(wù)器將會(huì )掛掉!

      是的,你沒(méi)有看錯。我們過(guò)去只是關(guān)注MySQL,PHP和Web服務(wù)器本身,并沒(méi)有太關(guān)注文件系統。Smarty緩存文件存儲在本地文件系統里——所有的緩存文件都存儲在同一個(gè)目錄下。解決方案是把Smarty放在一個(gè)專(zhuān)用的ReiserFS分區里。另外,我們還打開(kāi)了Smarty的“use_subdirs”選項。

      在過(guò)去的幾年里,我們一直在優(yōu)化頁(yè)面。我們把Smarty緩存放到了memcached中。為了更快速地處理靜態(tài)文件,我們安裝了Varnish來(lái)減少I(mǎi)/O負載。我們還切換到了Nginx(Lighttpd會(huì )隨機的產(chǎn)生error 500的消息),安裝了更多的內存,購買(mǎi)了更好的硬件,更多的硬件......這個(gè)列表永遠不會(huì )結束。

      總結

      擴展一個(gè)網(wǎng)站是一個(gè)永遠不會(huì )結束的過(guò)程。當你解決了一個(gè)瓶頸以后,很可能馬上會(huì )遇到下一個(gè)瓶頸。永遠都不要這樣想:“就是這樣,我們大功告成了”然后就靠邊站了。這會(huì )“殺死”你的服務(wù)器,甚至是你的業(yè)務(wù)。規劃和學(xué)習是一個(gè)持續的過(guò)程。如果你因為缺乏經(jīng)驗或資源而不能自己完成這個(gè)工作,那么可以找一個(gè)有能力勝任這個(gè)工作,而且很可靠的合作伙伴,和它一起來(lái)做這個(gè)工作。永遠都不要停止和你的團隊和合作伙伴溝通當前遇到的一些問(wèn)題和即將會(huì )遇到的一些問(wèn)題。思考在前才能爭取主動(dòng)。



      上一條: 什么是反向鏈接?做網(wǎng)站 增加反向鏈接需要注意什么?
      下一條: 域名解析時(shí)修改DNS與修改A記錄的區別
      案例鑒賞
      多年的網(wǎng)站建設經(jīng)驗,斌網(wǎng)網(wǎng)絡(luò )不斷提升技術(shù)設計服務(wù)水平,迎合搜索引擎優(yōu)化規則
      法律法規
      多年的網(wǎng)站建設經(jīng)驗,網(wǎng)至普不斷提升技術(shù)設計服務(wù)水平,迎合搜索引擎優(yōu)化規則
      長(cháng)沙私人做網(wǎng)站    長(cháng)沙做網(wǎng)站    深圳網(wǎng)站建設    株洲做網(wǎng)站    東莞做網(wǎng)站    南京防腐木    湖南大拇指養豬設備    株洲做網(wǎng)站    
      版權所有 © 長(cháng)沙市天心區斌網(wǎng)網(wǎng)絡(luò )技術(shù)服務(wù)部    湘公網(wǎng)安備 43010302000270號  統一社會(huì )信用代碼:92430103MA4LAMB24R  網(wǎng)站ICP備案號:湘ICP備13006070號-2  
      国产精品久久久久精品|久久网国产精品色婷婷免费|国产另类小说 视频 中文字幕|亚洲欧洲日产国码在线|2020最新国产在线不卡A|无码人妻少妇久久中文字幕蜜|99国产一区二区精品久久

          <rt id="tf2wb"><bdo id="tf2wb"><kbd id="tf2wb"></kbd></bdo></rt>
        1. <button id="tf2wb"><thead id="tf2wb"></thead></button>

          <rp id="tf2wb"><bdo id="tf2wb"></bdo></rp>
          <delect id="tf2wb"><td id="tf2wb"></td></delect>
          <rt id="tf2wb"></rt>
          <rt id="tf2wb"><bdo id="tf2wb"></bdo></rt>