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

使用Go代替Ruby,將服務器數量從30降到2

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

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

[[66756]]

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

Iron.io與IronWorker

Iron.io起初為幫助其它公司建立應用程序的咨詢公司,現為云服務供應商。Iron.io開發IronWorker的理由同樣很老套:

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

理所當然, IronWorker首發版使用的是Ruby和基于Rails的API。起先, IronWorker表現的很不錯,花很少的精力和時間就可以支撐相當重的負載。然而很快 IronWorker就受到了Rails的限制:

又是RoR惹的禍

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

當某個“巨大”請求連接到它們的服務器,很可能就會產生一個多米效應導致整個服務器集群的崩潰

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

***避免這個問題產生的方法就是增加足夠的計算能力,這就意味著巨額成本的產生。基于多年的優秀(使用更少資源承擔更多負載)開發經驗,Iron.io決定重寫API,做掉罪魁禍首的Rails,這樣首先他們面臨的就是究竟該使用什么編程語言。

Go的脫穎而出

[[66757]] 

首先他們考慮的就是回到Java的性能優勢上來,然而經過多年使用Ruby的簡潔、明了及有趣,Java因為編碼效率上的劣勢被拋棄。接著是又考慮 了一些比Ruby具備更高性能的腳本語言,比如:Python、JavaScript/Node;Java的派生物,比如:Scala和Clojure; 還有一些其它語言,比如:Erlang、Go等。而在一些原型和性能測試后,最終他們選擇了Go。

而在當時的那個環境下選用Go伴隨著很大的風險,因為:當時Go還沒有很大的社區,也沒有許多開源項目,同樣也沒有許多成功的用例。使用Go有太多不可預測性存在,比如招聘優秀的工程師;不過這些大部分都沒有發生。

Go版本使用情況

Go版本推出后,Iron.io的服務器數量直接從30臺減到了2臺,附加的兩臺實現冗余服務器更是從未用到。CPU的使用率不到5%,而初始化過程中對比Rubby使用接近50M的內存,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

責任編輯:張偉 來源: oschina
相關推薦

2013-03-15 10:54:39

服務器RubyRails

2013-03-26 10:10:38

服務器RubyGo

2022-02-11 12:02:11

芯片AMD

2024-06-20 12:55:23

2009-11-26 17:12:53

寬帶路由器代理服務器

2009-09-17 18:05:51

Nis服務器

2009-05-19 13:14:17

虛擬服務器 服務器 I

2013-04-08 15:52:06

Go語言

2017-12-18 11:11:04

2010-07-07 09:50:52

Windows Ser

2017-09-13 14:46:42

服務器Go函數

2011-08-09 14:27:16

WindowsServ服務器ADDS

2009-09-17 18:06:44

Nis服務器

2019-01-02 09:10:56

2021-06-17 08:22:23

服務器Go Redis

2010-10-28 11:48:38

ORACLE數據導入

2018-12-11 10:43:09

Go語言 HTTP服務器

2019-03-20 09:00:00

MySQL數據庫轉移數據庫

2014-09-26 09:23:08

FacebookInstagramAWS

2015-03-10 14:34:36

SoftLayer
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美a v在线 | 免费电影av | 97超级碰碰 | 久久精品中文 | 久久av一区 | 国产一级片网站 | 中文字幕一区二区三区四区五区 | 国产在线观看一区二区 | 精品视频在线免费观看 | 国产一区二区在线视频 | 狠狠干天天干 | 久久午夜视频 | 精品国产91乱码一区二区三区 | 欧美福利久久 | 日韩高清国产一区在线 | 成人午夜在线观看 | 福利av在线 | 久久一区二区三区四区 | 麻豆久久久久久久久久 | 黄色一级大片在线免费看产 | 亚洲高清三级 | 欧美一区二区三区大片 | 香蕉大人久久国产成人av | 精品视频一二区 | 成人免费一区二区三区视频网站 | 欧美一区二 | 久久精品—区二区三区 | 91在线精品一区二区 | 国产91久久久久蜜臀青青天草二 | 日韩中文字幕在线视频 | 亚洲一区视频在线 | 97久久精品午夜一区二区 | 福利片一区二区 | 91久色 | 人成久久 | 中文字幕av在线 | 欧美中文字幕一区二区 | 久久久久久久久久久久91 | 久久午夜精品福利一区二区 | 狠狠的日 | 亚洲激情综合网 |