Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Google을 지탱하는 기술2

1,493 views

Published on

chapter 2 구글의 공룡화

Published in: Technology, Health & Medicine

Google을 지탱하는 기술2

  1. 1. 1. 구글의 대규모화 2. 분산처리System - System 확장 - 세계화 - 하나로 합체 - 다수의 서버 - 이것만큼은 - 인덱스 분할 - 자원은 알뜰하게 - 인덱스 분산 - 새로운 검색절차 - Search Engine Upgrade
  2. 2. System 확장 1. Scale – up 보다 뛰어난 하드웨어 도입 장점 – 시스템 단순 Software 변경불필요 단점 – 가격비쌈 2. Scale – out 하드웨어의 수 늘림 장점 – 필요에 따라 장비 증가가능 비용억제 단점 – Software 개발 잘못된 설계는 성능개선X
  3. 3. 하나로 합체 Rack – 2~4개의 CPU 2~4GB Memory 2~4개의 HDD 장비들은 1Gbps LAN으로 연결 Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack의 집합 Data Center – 다수의 Rack이 모여있는것. 같은 Rack이 복수의 Cluster로 사용가능
  4. 4. 하나로 합체 Rack – 2~4개의 CPU 2~4GB Memory 2~4개의 HDD 장비들은 1Gbps LAN으로 연결 Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack의 집합 Data Center – 다수의 Rack이 모여있는것. 같은 Rack이 복수의 Cluster로 사용가능
  5. 5. 하나로 합체 Rack – 2~4개의 CPU 2~4GB Memory 2~4개의 HDD 장비들은 1Gbps LAN으로 연결 Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack의 집합 Data Center – 다수의 Rack이 모여있는것. 같은 Rack이 복수의 Cluster로 사용가능
  6. 6. 이것만큼은!! Hardware의 고장 전원이 갑자기 끊김 • 장애를 미리 상정하고 대비 ⇒ 재시동한다. ⇒ 재시동 않는다. • HDD의 일부에 접근 할 수 없다. • HDD가 완전히 멈춘다. • Network에 잠시/계속 연결되지 않는다. Software로라도 문제해결 해줘야 함
  7. 7. 이것만큼은!! 고난도 분산처리 확장성 – 장비의 수를 늘린 만큼 성능이 모든 장비의 상태파악 (Scalability) 향상되는 성질 ⇒ 작업 분산시킴 병목현상 – System의 어딘가에서 성능향상을 저해하는 요인이 나타는 현상 [대규모 분산시스템구축] 확장할 수 있는 구조설계 ⇒ 병목현상 나타나지 않게
  8. 8. 자원은 알뜰하게 GFS에 의해 연결된 machine의 집합들 GFS Cluster Data Center의 각 machine을 network로 연결 (Google File System) ⇒ 일관되게 Data read/write 하는 기술 OS의 task관리를 복수의 machine으로 분산시킴 Work Queue 각 machine의 부하 감시 Cluster ⇒ 여유 있는 곳에서 Task 실행
  9. 9. 자원은 알뜰하게 Work CPU Queue CPU GFS HDD HDD
  10. 10. Search Engine Upgrade 확장한다 Search Server의 DocIndex 대규모화 Lexicon Server늘림 Search ⇒ User의 검색요청 분산 Engine But Index에서 병목현상 (wordID에 따른 분산때문) Barrels 대량의 검색결과 Barrels 병목현상 ⇒ 순위선정어려움 Barrels
  11. 11. Search Engine Upgrade 확장한다 병목현상? Back-end의 대규모화 crawler Repository Crawler 성능↑ crawler ⇒ Repository저장되는 양↑ crawler 구조해석 ⇒ 병목현상 병목현상? Webpage 수↑ 단어처리 ⇒ URLserver에서 병목현상 URL server
  12. 12. Search Engine Upgrade Index의 대규모화 Index를 분할하자 ⇒ 일정한 크기로 유지 ⇒ 성능악화 되지 않는다 대규모 Index 만들자 ⇒ 매번 분할하기 번거로움 ⇒ 범용 인덱스 시스템 구축
  13. 13. 세계화 세계 각지의 Data Center 가장 가까운 곳으로 연결 ⇒ 부하분산의 첫걸음
  14. 14. 다수의 서버 Search Cluster GWS LB (Google Web Server) 각 검색요청을 한 곳에 모음 LB (Load Balancer) GWS GWS GWS 여유 있는 GWS에 일 맡김 Index Server Web page 목록 전달 Index Document Document Server Server Server Web page 요약정보
  15. 15. Index 분할 검색을 모든 Index로 분산 ⇒ Index당 web page 수 상한 ⇒ 일정시간 내 검색 마침 Shard docID#1 wordID#1 Position#1 Size#1 Etc.#1 Index의 크기도 작아짐 wordID#2 Position#3 Size#3 Etc.#2 wordID#4 Position#4 Size#2 Etc.#4 docID#2 wordID#1 Position#2 Size#1 Etc.#1 wordID#3 Position#1 Size#2 Etc.#3
  16. 16. Index 분산 GWS Shard = 파편 작은 cluster로 구성 LB LB shard shard Index Index Index Index LB가 부하를 균등하게 분산 Index Index Index Index LB shard 확장 가능한 구조 Index Index Index Index
  17. 17. 새로운 검색 절차 Spelling check ① User검색요청 Index Server의 모든 shard 광고서버 GWS cluster에 검색요구 각shard는 검색과 랭킹처리 ① ② GWS는 반환된 것 중 상위만 채택 Document Server에 docId Index Document 로 정보요구 Server Server GWS는 결과를 html page shard shard 만들어 출력 shard shard shard shard
  18. 18. 구글의 기본사상 Software로 신뢰성 높임 Hardware가 고장나도 system전체의 동작 유지 Hardware 늘려 부하를 분산 분할/분산 system으로 병목현상 방지 비용대비 고성능 hardware 선택
  19. 19. Thanks for your attention

×