#서버를 디자인하다 1편steemCreated with Sketch.

in #kr7 years ago (edited)

안녕하세요!
장르를 넘나드는 칼럼을 작성하다보니 저도 컨셉 하나를 딱 잡아야 할 것 같아서 저는 개발관련 분야로 가보려고 합니다.

특히, 개발자들은 개발에만 전념하기때문에 개발 외적의 인프라를 잘 모르는 경우가 많습니다.

저는 개발에 관련된 부분 외에도 개발자가 신경써서 개발해야 할 부분까지 혹은 아키텍쳐까지 넘나드는 칼럼을 작성해보도록 하겠습니다.

일단, 제가 만든 플랫폼을 토대로 기술적인 부분을 큰 그림으로 설명을 해보자 합니다.


가장 먼저 제가 운영중인 서버를 소개합니다.


총 2개의 서버가 있습니다.
클라우드 서버를 활용하고 있으며 개당 월마다 적지않는 비용을 지불하고 있습니다.
물론 서버비용은 서비스를 통해 충당하고 있죠^^

가장 먼저 데이터서버입니다.
데이터서버는 DB서버에 들어갈 모든 데이터처리를 합니다.
그렇기때문에 하는 일이 많고 규모가 적은 서비스를 운용함에도 종합적으로 보면 하루 1천만건 이상의 데이터를 수집하고 가공하는 역할을 합니다.
아키텍쳐를 보시면 어떤 역할을 하고 있는지 아실 수 있을겁니다.


두번째로 DB서버입니다.
웹서버는 데이터서버와 사이좋게 하나씩 나누어가졌습니다.
DB가 먹는 부하가 적지 않으므로 DB에 몰빵했습니다.
이렇게 저는 DB 메인서버와 데이터서버를 분리하여 사용합니다.
DB 클러스터링도 고민해봤지만 분산하는것보다 확실히 하는일을 나누는게 낫다고 판단했습니다.


nmon을 통해 리소스 사용률을 보실 수 있습니다.

DB서버는 죽지않고 정말 제대로 돌아갑니다.

아주 디자인이 잘 되었다고 생각합니다.


데이터서버는 최근 사용자도 많아지고 데이터를 처리하는 기능이 많아지면서 쓰레드를 정말 많이 사용합니다.
기존에 증권쪽만 해도 증권데이터와 뉴스데이터만 처리하는데 사용되는 쓰레드도 많은데 가상화폐 실시간데이터를 모두 쓰레드로 처리하려고 하니 컨텍스트스위칭 빈도가 높아질 수 밖에 없었습니다.


이런경우를 설명하자면요 CPU Core는 사용률이 적은데 짧은 작업을 하는  job들이 많아서 CPU를 제대로 못쓰고 있는 경우입니다.
저는 패턴을 바꿔야 했습니다.
그래서 이러한 해결책을 만들었습니다.


앞으로 새로운 관점에서의 DEV 칼럼들을 작성해보겠습니다.

감사합니다.

Sort:  

유익한 포스트 좋은글 잘 보고갑니다.

감사합니다^^

프로그래밍 쪽으로 취업을 준비하고 있어서
재미있게 읽었습니다. 서버의 경우 비용과 관련된 부분이라 효율적인 설계가 중요할 것 같습니다.

업보트 꾹 누르고 팔로우하고 가겠습니다 시원한 밤 되세요.

사실 한끝차이입니다. 2코어 4GB메모리 서버만으로도 엄청나게 좋은 서비스를 할 수 있습니다. 개발자 또한 인프라를 알아야 많은 비용을 줄일 수 있습니다. 많은것을 배울 수 있는 좋은 회사로 취직하시길 기원합니다ㅎㅎ

서버구성이나 디비 구조 모두 궁금하네요. 아키도 제것과 얼마나 다른지도요 ㅎㅎ 앞으로 연재도 계속 기대됩니다. 어랏 팔로가 안되어있었군요 팔로하구 갑니당.

감사합니다ㅎㅎ 점점 큰 틀에서 디테일하게 내려가볼까 합니다ㅎㅎ

저랑 관심사가 비슷한게 많으시네요^^
팔로우하고 갑니다^^

맞팔합니다^^ 이곳에서 관심사가 비슷한 분들을 많이 만나는 듯 합니다ㅎㅎ

Congratulations @facemaker77! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You published 4 posts in one day

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 67435.35
ETH 3528.53
USDT 1.00
SBD 2.68