시스템이야기2012. 6. 26. 19:20

전직 페이스북(facebook) 개발자 Eric Frenkiel과 Nikita Shamgunov가 만든 MemSQL.



MemSQLMemSQL


1. 특징을 간단히 살펴보자.

1) 개발자가 주장하기는  MemSQL 개발자에 따른 disk기반 DB보다 30배까지 빠르다고 한다.
   MemSQL은 초당 8만쿼리를 처리했고 MySQL은 초당 3천500쿼리를 처리해서 MySQL보다는 23배 빠르다고.

2) MemSQL은 메모리에 데이터를 유지하고 있어서 빠른 성능을 달성했다.

페이스북이 PHP코드를 C로 변환하여 성능을 향상시켰는데, 이 때 PHP -> C++로 변환한 툴이 'HipHop'이다. 이 HipHop툴처럼 MemSQL은 SQL을 C++로 변환하여
성능을 급격히 높였다. 개발자인 Frenkiel은 이렇게 말했다. "This is like HipHop for SQL"

3) MemSQL은 MySQL API와 인터페이스를 사용한다.

그래서 관리적 이슈도 없고, 어떤것도 새로 배울 것이 없다.

4) 하지만, 아직 지원 안되는게 있다. 그래도 나온지 얼마안된 DB가 위의 말대로의 성능만 내준다면, 앞으로 엄청난 물건이 될게 분명하다.

* UNSUPPORTED FEATURES


- Views
- Prepared Queries
- Stored procedures
- User Defined Functions
- Triggers
- Foreign keys
- Charsets other than utf8



5) MemSQL 투자자에 애쉬튼 커쳐(Ashton Kutcher)가 있다.

애쉬튼 커쳐는 IT에 관심이 많은 것 같다. 사진 공유 SNS인 Path(※ Path 공동창업자 중의 한명이 냅스터의 공동차업자 '숀 패닝')에도 투자를 했다. flipboard에도 투자하고.

2. 실제 사용해보기

MemSQL 사이트( http://memsql.com/ )에서 메일주소 입력하고 다운로드 받으면 된다.

- 64비트만 지원
- RHEL(또는 CentOS)의 경우 6.0 이상

바이너리 받아서 압축만 풀면 끝. 그리고, MySQL client 로 접속하니 정말 잘 되더라.


# ./memsqld -u root --port 3307 & <-- MemSQL 데몬 실행
#
# mysql -u root -h 127.0.0.1 -P 3307 --prompt="memsql> "
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 250
Server version: 5.5.8 MemSQL source distribution



쿼리를 실행하면 아래처럼 쿼리를 C++로 컴파일하게 된다. 그래서 초기 쿼리는 실행시간이 좀 걸리고, 그 이후는 MySQL보다 나은 성능을 보인다.
아래 'miliseconds'숫자는 생각보다 높긴한데, 실제 운영하는 DB서버라면 훨씬 낮은 수치를 보일 것이다.
맛보기 테스트를 하려고 듀얼코어, 4G 서버에서 설치한 것이다.


1688649195 2012-06-26 16:22:23 INFO: Query test.'select count(*) from test2' compiled in 669 miliseconds
2140046715 2012-06-26 16:29:55 INFO: Query test.'INSERT INTO test2(name, date) values (?, now())' compiled in 1369 miliseconds
3317465154 2012-06-26 16:49:32 INFO: Query test.'select name from test2 where id = @' compiled in 714 miliseconds
9867440156 2012-06-26 18:38:42 INFO: Query test.'update test2 set name = ^ where id = @' compiled in 1390 miliseconds


3. 성능은?

- php 5.3에서 microtime으로 시간 체크. 각 쿼리별로 5만회 실행한 시간 체크. 테스트는 3회씩.
- insert : INSERT INTO test2(name, date) VALUES ('aaaaa', now())
- select : SELECT name FROM test2 WHERE id = $i
- update : UPDATE test2 SET name = 'bbbbb' WHERE id = $i

테스트 환경은?

- 설정 튜닝이 제대로 되지 않은 상태에서 테스트가 이뤄졌고,
- MemSQL의 권장 메모리인 8G보다 적은 4G에서 테스트를 했다.
- 서비스에 투입할 수도 없는 상황이고,
- 서비스 환경에 근접하게 테스트 요청을 할 수도 없으므로

아래 수치는 성능이 MySQL보다 낫긴 낫구나라는 정도로만 이해해야 한다. 절대적인 것으로 봐서는 안된다. 정말 참고만.
수치상으로는 1.5~2배정도. 아래 수치 단위는 초.
서비스에서는 쿼리도 복잡하고, 다양한 쿼리가 한꺼번에 이뤄지므로 오히려 테스트 결과보다 성능이 더 나을 수 있을 것 같다.


1. INSERT

MemSQL 2.715 2.371 2.491
MySQL  4.004 3.974 3.982

2. SELECT

MemSQL 2.484 2.772 2.741
MySQL  4.271 4.296 4.088

3. UPDATE

MemSQL 2.380 2.527 2.177
MySQL  4.283 3.975 3.968


* 참고글 :
  Ex-Facebookers launch MemSQL to make your database fly (2012.6.18)

Posted by 좋은진호
IT이야기2012. 3. 14. 08:30
Akamai(아카마이)의 서버는 현재 105,000대의 서버로 운영중이라고 한다. 78개국의 ISP와 1900여개의 망에서 서비스 중이다. (Data Center Knowledge의 'Akamai Now Running 105,000 Servers' )

Akamia의 NOC(Network Operating Center)

[ Akamia의 NOC(Network Operating Center) (출처 : Pingdom ]

Akamai도 2~3년 사이(2009년에 48,000대)에 2배 이상 증가했다. 저쪽 동네는 쓴다하면 10만대 이상, 좀 덜 써도 몇만대하는 곳은 여러 군데인 것 같다. Akamai 외의 서버 대수는 Data Center Knowledge에서 꾸준히 업데이트를 하고 있다. (멋져~~) ( 'Who Has the Most Web Servers?' )

  • Akamai Technologies: 105,000대 (company, 2012.3월)
  • OVH: 100,000대 (company, 2011.7월)
  • SoftLayer: 100,000대 (company, 2011.12월)
  • Rackspace: 79,005대. 클라우드 서비스로 급증 (company, 2011.12.30)
  • Intel: 75,000대 (company, 2011.8월)
  • 1&1 Internet: 70,000대 이상 (company, 2010.2월)
  • Facebook: 60,000대 (추정치, 2009.10월)
  • LeaseWeb: 36,000대 (company, 2011.2월)
  • Intergenia: (PlusServer/Server4You), 30,000대 (company, 2011년)
  • SBC Communications: 29,193대 (Netcraft)
  • Verizon: 25,788대 (Netcraft)
  • Time Warner Cable: 24,817대 (Netcraft)
  • HostEurope: 24,000대 (Company)
  • AT&T: 20,268대 (Netcraft)

구글은 공식적인 서버대수를 발표하지 않기 때문에 몇대인지는 명확하지는 않지만, 2011년에 대략 90만대로 추정된다.

NHN은 2013년 상반기 오픈을 목표로 춘천 데이터센터를 짓고 있다. 1만5천평 규모에 1500억원을 투자한다.
서버는 구글이나 페이스북처러 조립서버로 구성한다는 얘기가 들린다. 그리고 서버는 PSU을 없애고 AC전원이 아닌 DC전원을 공급받을 것이라고 한다. AC전>원이라면 AC -> DC로 전환할 때 전력 손실이 발생한다. 그런데 DC전원을 공급받으므로 전력 손실이 줄어들어 효율이 높아질 것이다.

NHN 도시첨단산업단지 조감도. 춘천 데이터센터

[ NHN 도시첨단산업단지 조감도. 도로 아래쪽이 데이터센터로 추정 ]


현재의 네이버 서버와 춘천 데이터센터가 오픈할 시점의 서버는 몇대일지 궁금해진다.


* 관련글
2011/04/20 - Facebook의 데이터센터와 서버
2010/06/30 - 페이스북(Facebook)의 서버 대수는 6만대 이상?
2009/06/01 - 해외 주요 업체의 서버 대수는?
2009/04/10 - 구글, 구글 서버와 데이터센터 발표자료를 풀 동영상으로 공개

Posted by 좋은진호
IT이야기2011. 4. 20. 21:02
오리건주 프린빌(Prineville, Oregon)에는 약 30만 square feet크기(9만5천평)의 페이스북(Facebook) 데이터센터가 있다. 현재 절반인 15만 square feet가 운영중이며, 올 하반기에 나머지 절반이 완성될 것이다. 이 데이터센터와 페이스북 서버가 4월초에 Open Compute Project( http://opencompute.org/ )를 통해 공개가 되었다.

[ 페이스북 데이터센터 내부. 출처 : Open Compute Project ]


[ 페이스북 서버 샤시. 출처 : Open Compute Project ]


[ 페이스북 서버 조립. 출처 : Open Compute Project의 동영상 중에서 ]


페이스북 서버에 간략하게 요약하면.
  • 1U보다 더 큰 1.5U 크기의 서버. 그래서 보다 큰 방열판과 팬을 사용하여 온도 효율성이 높아졌다.
  • 샤시는 심플하다. 페이스북은 '무허영심(vanity free)'이라고 표현했다. 멋진 말이다. 군살을 쏙 뺀 반드시 필요한것만 들어있는 구조다.
  • AMD보드 : AMD 옵테론 6100시리즈, 24 DIMM 메모리 슬롯
  • 인텔 보드 : 인텔 제온 5500 또는 5600, 18 DIMM 메모리 슬롯
  • 자체 제작한 서버는 구매한 서버보다 38%정도 높은 효율. 24% 저렴
  • 파워서플라이 : 94.5%의 고효율. 2009년 당시 구글서버가 85~90%였다.
  • 전원은 2개가 연결되는데, 하나는 277V AC 주전원(일반적인 208V보다 높은 것은 효율을 위해). 다른 하나는 48V DC 백업전원(48V DC는 캐비넷형태의 UPS에 연결됨). 구글서버는 12V DC전원만 사용한다.
페이스북 데이터센터와 서버에 대해서는 4월 초에 나온 글이 인터넷에 많을 것이니, 추가된 내용들만 적어보겠다.


1. 페이스북 데이터센터의 태양광 시설

페이스북은 이 데이터센터에 태양광발전시설을 구축하여 100KW의 전기를 생산한다. 1년을 기준으로 204,000KWh의 전기를 생산할 것으로 기대하고 있다. 1년 20만KWh라면, 하루 5.6시간을 생산했을 때를 가정한 것 같다.
365일 X 5.6h X 100KW = 약 20만KWh

태양광발전으로 생산되는 에너지는 전체 에너지 사용량에 비하면 비중이 상당히 낮다. 그린피스에서도 에너지 사용면에서 좋지 않은 데이터센터로 지적했다.

[ 페이스북 데이터센터의 태양광 발전시설. 출처 : Swinny.net (URL은 아래 '사진' 출처에) ]


하지만 데이터센터의 에너지 효율은 상당히 높다. 데이터센터의 에너지효율은 PUE수치로 나타내는데, 이 수치가 1에 가까울수록 높은 효율을 나타낸다. 구글은 2009년에 평균 PUE가 1.22라는 놀라운 수치를 보였으며, 구글의 데이터센터 중에는 1.1x인 곳도 있다. PUE가 1.2만 되어도 예술의 경지에 이르렀다고 하는데, 페이스북의 새 데이터센터는 놀랍게도 PUE가 1.07이다. 즉, 거의 전력 손실없이 운영되고 있다는 뜻이다.

 
2. 데이터센터 추가 동영상과 사진

금요일에 저널리스트와 프린빌(Prineville) 지역 공무원을 대상으로 페이스북 데이터센터 투어가 있었나보다. Data Center Knowledge의 'Video: Inside Facebook’s Server Room' (2011.4.18) 글에 약 8분짜리 데이터센터 투어 동영상을 볼 수 있다.

[ 페이스북 데이터센터와 Jay Park. 출처 : 위 Data Center Knowledge 동영상 캡쳐 ]

[ 서버 전원부. 하나는 277V AC전원. 하나는 48V DC전원. 출처 : 위 Data Center Knowledge 동영상 캡쳐 ]

[ 페이스북 서버랙. 출처 : 위 Data Center Knowledge 동영상 캡쳐 ]


투어를 시켜준 사람이 'Director of Datacenter Engineering'(데이터센터 엔지니어링 부서 이사 정도?) 'Jay Park'이란 분이다. 전기분야 엔지니어이신데, 미국 교포일까? 이름도 그렇기도 하고, 동영상이나 사진을 보면 우리 나라 사람 같아 보인다.

Rackspace에서 근무하시는 분이 데이터센터를 방문하여 올린 사진도 있다
* Photo tour of Facebook’s new datacenter (Scobleizer 블로그, 2011.4.16)

[ 페이스북 데이터센터 로비의 모니터화면. 출처 : 위 Scobleizer 블로그 ]


로비 모니터에 데이터센터 상태를 모니터링할 수 있는 화면이 있다고 한다. 내부 온도는 18~27도(화씨 66~82도), 습도는 24~41% 정도다. 습도는 적정수준인데, 온도는 높은 구역도 있다. 외부 공기를 끌어다가 냉각을 해서 조금 높은 것일 수도 있겠다. 그리고, 오른쪽 상단에 표시된 현재 PUE는 1.08(?)으로 환상적이다. ^^

페이스북의 다른 데이터센터 사진을 보고 싶다면 타임지(TIME)에서 공개한 사진이 있다. 타임지는 2010년 올해의 인물로 페이스북의 '마크 주커버그(Mark Zuckerberg)'를 선정(2010년 12월중순)했다. 그래서, 타임지는 페이스북의 또다른 데이터센터인 캘리포니아주 산타클라라(Santa Clara, California)의 데이터센터 사진을 일부 제공했었다.
* A Glimpse Inside a Facebook Server Farm - Photo Essays (TIME, 9장의 사진)



* 데이터센터 관련글

- 2009/10/07 - [IT이야기] MS의 시카고 데이터센터 사진 공개
- 2009/04/03 - [IT이야기] 구글 데이터 센터 내부 공개, 그 안을 들여다보자
- 2009/04/10 - [IT이야기] 구글, 구글 서버와 데이터센터 발표자료를 풀 동영상으로 공개
- 구글 데이터센터의 놀라운 전력 효율 (2009.10.27, 커피닉스)
- 애플 신규 데이터센터 (2009.7.16, 커피닉스)
- 애플 신규 데이터센터 (2009.8.14, 커피닉스)
- 터키 이스탄불의 Vodafone 데이터센터, 폭우로 물에 잠겨 (2009.9.16, 커피닉스)

* 서버대수 관련글

- 2010/06/30 - [IT이야기] 페이스북(Facebook)의 서버 대수는 6만대 이상? (서버대수와 데이터센터)
- 2009/06/01 - [IT이야기] 해외 주요 업체의 서버 대수는?
- Facebook 사용자 4억명 돌파, 그리고 서버수 (2010.2.12, 커피닉스)

* 사진

- Solar-powered Facebook Data Center (2011.4.16, 페이스북 태양광 발전시설)
- Inside Facebook’s Not-So-Secret New Data Center (2011.4.7, 페이스북 데이터센터 사진 9장)

Posted by 좋은진호
IT이야기2010. 6. 30. 23:25
Datacenter Knowledge의 Rich Miller 글 'Facebook Server Count: 60,000 or More'에서 Facebook의 서버 대수는 6만대 이상일 것으로 추측하고 있다.

지난주에 있었던 Velocity 2010 컨퍼런스에서 Facebook의 'Tom Cook'의 프리젠테이션 자료를 토대로 서버 대수를 추측했다. 프리젠테이션에 포함된 차트에는 년도는 있지만, 서버 대수에 대한 수치는 없다. 그러나 이 차트의 성장 곡선의 비율로 대수를 할 수 있다.
facebook server footprint

[ Facebook 서버 증가 차트 ]


2009년 11월 Facebook의 CTO인 Jeff Rothschild(제프 로스차일드)은 서버가 3만대 이상이라고 밝혔다. 차트에서 2009년 후반에 있는 평평한 지점이 대략 이 3만대 이상이 되는 지점일 것이다. 그러면 차트 맨 오른쪽 2010년 초에는 그 때의 두배 정도 되므로, 서버 대수는 6만대 이상으로 추측이 가능하다. Facebook의 이용규모에 비해서는 서버 대수가 생각보다는 적다는 느낌이다. Memcached, HipHop(PHP를 C++로 변환하여 성능 개선), Varnish(분산 및 캐싱 웹서버), Cassandra(NoSQL) 등의 효율적인 운영 덕분일까?

[ 현재 운영중인 Facebook의 Data Center 내부 ]


[ 현재 운영중인 Facebook의 Data Center 내부 (랙에 장착된 서버 뒷면. 케이블링이 깔끔하다.) ]


[ 현재 운영중인 Facebook의 Data Center 내부 ]

※ 위 이미지 출처 : Datacenter Knowledge 블로그 등

Facebook유저는 작년 1월에 1억 5천명이었는데, 올해 2월에는 2배가 넘는 4억명으로 급성장했다. 이렇게 급성장하는 서비스를 대비하여 Facebook은 Facebook 최초의 자체 데이터 센터를 Prineville에 건설중이다. 규모는 147,000 Square Foot(SF, 약 13,600여 제곱미터). FIFA의 국제규격 축구장 넓이가 7140제곱미터 이니깐, 축구장 2배 정도의 규모라고 보면 된다. 건설 사진은 Facebook에 공개되어 있다.

Facebook의 Prineville Data Center

[ Facebook의 Prineville Data Center 조감도 ]

※ 이미지 출처 : Facebook 공식 블로그 'Breaking Ground on Our First Custom Data Center'


소셜미디어의 성장이 놀랍다.
그런데, 트위터는 몇 대일까?


* 서버대수 관련글

- Facebook 사용자 4억명 돌파, 그리고 서버수 (2010.2.12)
- 2009/06/01 - [IT이야기] 해외 주요 업체의 서버 대수는?

* 데이터센터 관련글

- 2011/04/20 - [IT이야기] Facebook의 데이터센터와 서버
- 2009/10/07 - [IT이야기] MS의 시카고 데이터센터 사진 공개
- 2009/04/03 - [IT이야기] 구글 데이터 센터 내부 공개, 그 안을 들여다보자
- 2009/04/10 - [IT이야기] 구글, 구글 서버와 데이터센터 발표자료를 풀 동영상으로 공개
- 구글 데이터센터의 놀라운 전력 효율 (2009.10.27)
- 애플 신규 데이터센터 (2009.7.16)
- 애플 신규 데이터센터 (2009.8.14)
- 터키 이스탄불의 Vodafone 데이터센터, 폭우로 물에 잠겨 (2009.9.16)

Posted by 좋은진호