成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Go代替Ruby,將服務(wù)器數(shù)量從30降到2

開(kāi)發(fā) 項(xiàng)目管理
將服務(wù)器數(shù)量縮減到之前的十五分之一,并且降低了服務(wù)器CPU的使用率,Iron.io成功的做到了。Iron.io在遭遇了Ruby的限制后,大刀闊斧般的使用Go語(yǔ)言重寫(xiě)其名下服務(wù)IronWorker。

將服務(wù)器數(shù)量縮減到之前的十五分之一,并且降低了服務(wù)器CPU的使用率,Iron.io成功的做到了。Iron.io在遭遇了Ruby的限制后,大刀闊斧般的使用Go語(yǔ)言重寫(xiě)其名下服務(wù)IronWorker。

[[66756]]

使用另一種語(yǔ)言去重寫(xiě)一個(gè)服務(wù),聽(tīng)起來(lái)是不是很折騰?然而云服務(wù)供應(yīng)商Iron.io就這么做了,并成功的將服務(wù)器從30臺(tái)降至了2臺(tái)。Iron.io在其官方博客上公布了整個(gè)事件的始末,下面來(lái)了解一下:

Iron.io與IronWorker

Iron.io起初為幫助其它公司建立應(yīng)用程序的咨詢公司,現(xiàn)為云服務(wù)供應(yīng)商。Iron.io開(kāi)發(fā)IronWorker的理由同樣很老套:

之前說(shuō)過(guò)Iron.io曾是家咨詢公司,而在IronWorker開(kāi)發(fā)的那段時(shí)間,AWS和Ruby on Rails是兩個(gè)非常火的領(lǐng)域。而Iron.io有幾個(gè)客戶建立的硬件設(shè)施會(huì)不斷的(7X24小時(shí))給其發(fā)送數(shù)據(jù),為了收集和處理這些數(shù) 據(jù),Inro.io建立了他們自己的內(nèi)部服務(wù)“worker as a service”。至于發(fā)行的原因就很老套了,在自己使用的同時(shí),忽然覺(jué)得其它機(jī)構(gòu)可能也會(huì)有類似的需求(很類似“書(shū)販子”Amazon?),于是就誕生 了發(fā)行版IronWorker。

理所當(dāng)然, IronWorker首發(fā)版使用的是Ruby和基于Rails的API。起先, IronWorker表現(xiàn)的很不錯(cuò),花很少的精力和時(shí)間就可以支撐相當(dāng)重的負(fù)載。然而很快 IronWorker就受到了Rails的限制:

又是RoR惹的禍

為了保持服務(wù)的流暢,Iron.io一直將其服務(wù)器CPU使用率保持在50-60%;CPU使用率一旦超過(guò)這個(gè)范圍,就會(huì)增加服務(wù)器數(shù)量。當(dāng)然如果不介意一直增加服務(wù)數(shù)量,這也是可行的,然而很快他們就介意了!

當(dāng)某個(gè)“巨大”請(qǐng)求連接到它們的服務(wù)器,很可能就會(huì)產(chǎn)生一個(gè)多米效應(yīng)導(dǎo)致整個(gè)服務(wù)器集群的崩潰

一旦某些線程占用高于50%以上,Rails服務(wù)器CPU使用率將隨之飆升到100%,而這個(gè)服務(wù)器將變的異常緩慢。負(fù)載均衡器則會(huì)認(rèn)為這個(gè)服務(wù)器 發(fā)生故障,將其從服務(wù)器集群中移除;但是被移除服務(wù)器上的作業(yè)將會(huì)被分配到剩余的服務(wù)器上,于是問(wèn)題就發(fā)生了——導(dǎo)致整個(gè)事件發(fā)生的線程并未被移除或得到 處理。就這樣惡性循環(huán)產(chǎn)生,集群中的服務(wù)器被一臺(tái)又一臺(tái)的移除,直至整個(gè)系統(tǒng)崩潰。

***避免這個(gè)問(wèn)題產(chǎn)生的方法就是增加足夠的計(jì)算能力,這就意味著巨額成本的產(chǎn)生。基于多年的優(yōu)秀(使用更少資源承擔(dān)更多負(fù)載)開(kāi)發(fā)經(jīng)驗(yàn),Iron.io決定重寫(xiě)API,做掉罪魁禍?zhǔn)椎腞ails,這樣首先他們面臨的就是究竟該使用什么編程語(yǔ)言。

Go的脫穎而出

[[66757]] 

首先他們考慮的就是回到Java的性能優(yōu)勢(shì)上來(lái),然而經(jīng)過(guò)多年使用Ruby的簡(jiǎn)潔、明了及有趣,Java因?yàn)榫幋a效率上的劣勢(shì)被拋棄。接著是又考慮 了一些比Ruby具備更高性能的腳本語(yǔ)言,比如:Python、JavaScript/Node;Java的派生物,比如:Scala和Clojure; 還有一些其它語(yǔ)言,比如:Erlang、Go等。而在一些原型和性能測(cè)試后,最終他們選擇了Go。

而在當(dāng)時(shí)的那個(gè)環(huán)境下選用Go伴隨著很大的風(fēng)險(xiǎn),因?yàn)椋寒?dāng)時(shí)Go還沒(méi)有很大的社區(qū),也沒(méi)有許多開(kāi)源項(xiàng)目,同樣也沒(méi)有許多成功的用例。使用Go有太多不可預(yù)測(cè)性存在,比如招聘優(yōu)秀的工程師;不過(guò)這些大部分都沒(méi)有發(fā)生。

Go版本使用情況

Go版本推出后,Iron.io的服務(wù)器數(shù)量直接從30臺(tái)減到了2臺(tái),附加的兩臺(tái)實(shí)現(xiàn)冗余服務(wù)器更是從未用到。CPU的使用率不到5%,而初始化過(guò)程中對(duì)比Rubby使用接近50M的內(nèi)存,Go版本只是用了不到幾百K。

英文原文: How We Went from 30 Servers to 2: Go (編譯/仲浩)

原文鏈接:http://www.oschina.net/news/38585/how-we-went-from-30-servers-to-2-go

責(zé)任編輯:張偉 來(lái)源: oschina
相關(guān)推薦

2013-03-15 10:54:39

服務(wù)器RubyRails

2013-03-26 10:10:38

服務(wù)器RubyGo

2022-02-11 12:02:11

芯片AMD

2024-06-20 12:55:23

2009-09-17 18:05:51

Nis服務(wù)器

2009-11-26 17:12:53

寬帶路由器代理服務(wù)器

2009-05-19 13:14:17

虛擬服務(wù)器 服務(wù)器 I

2017-12-18 11:11:04

2013-04-08 15:52:06

Go語(yǔ)言

2010-07-07 09:50:52

Windows Ser

2017-09-13 14:46:42

服務(wù)器Go函數(shù)

2011-08-09 14:27:16

WindowsServ服務(wù)器ADDS

2009-09-17 18:06:44

Nis服務(wù)器

2018-12-11 10:43:09

Go語(yǔ)言 HTTP服務(wù)器

2019-01-02 09:10:56

2014-09-26 09:23:08

FacebookInstagramAWS

2015-03-10 14:34:36

SoftLayer

2021-06-17 08:22:23

服務(wù)器Go Redis

2017-03-02 11:58:31

NodeJS服務(wù)器

2010-10-28 11:48:38

ORACLE數(shù)據(jù)導(dǎo)入
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲欧美日韩精品久久亚洲区 | 精品网 | 国产日韩中文字幕 | 免费网站国产 | 日韩一区二区三区视频 | 黄色大片在线视频 | 最新毛片网站 | 国产精品 亚洲一区 | 日本欧美大片 | 国产三级网站 | 久久国产三级 | 亚洲国产黄色av | 亚洲狠狠| 中文字幕一区二区三区精彩视频 | 日韩伦理一区二区 | 欧洲一区视频 | 精品国产99 | 日本激情视频中文字幕 | 999热在线视频 | 亚洲va欧美va天堂v国产综合 | 国产二区在线播放 | 免费看一区二区三区 | 成人超碰 | 国产视频久久 | 精品成人一区二区 | 欧美操操操 | 最新国产精品 | 一区二区三区四区在线视频 | 日韩精品一区二区三区四区 | 精品美女视频在线观看免费软件 | 黄视频网站在线 | 日韩中文在线 | 久热m3u8| 欧美成人hd | 久久久久久久国产精品视频 | www.毛片| 国产成人综合一区二区三区 | 91亚洲免费 | 日韩一级免费电影 | 亚洲美女视频 | 欧美中文字幕一区二区三区亚洲 |