로드밸런싱에 대해서...

신성공   
   조회 6217   추천 0    

선배님들 안녕하십니까?

오래만에 질문합니다.

저번에 L2장비교체와 케이블을 교환하였음에도 불구하고 병목현상이 낳아지지않아

L4 분산처리에 대해 조사해오라고하셨습니다.


L4장비는 어디 회사께 좋을까요? 검색해봐도 가격정보같은게 전혀 없네요.


로드밸런싱 구축해보신 선배님계시면 조언 부탁드립니다.


즉 제가알기론 같은 서버를 2개 이상을 놓고 접속자가 몰리면 나눠주는 역할을 한다는걸로 알고있습니다.

대부분 가격이 문의이며, 어디 회사께 좋은지 잘모르겠습니다.


셋팅 같은거 잘모르겟으면 업체 컨텍 하라고 하셨는데.. 여긴 전라도 광주라 상담받을곳이 없습니다.


긴글읽어주셔서 감사합니다.


짧은글 일수록 신중하게.
박문형 2014-04
병목현상이 생기는 L2장비와 케이블 사양 그리고 시스템 사양및 트래픽양  전체네트웍 망도 등의 자료가 필요할 것입니다.

네트웍을 잘 모르나 L4로 바꾼다고 나아질 것 같아보이지 않습니다.

L4는 최소 돈 천만원 이상입니다.
장비값과 셋팅값이 따로 존재합니다.
     
신성공 2014-04
선배님답변감사합니다. 이제 퇴근하여 답변달아요~
음 L2는 시스코 SG300-28 로 달았으며 지빅사서 광으로 나갑니다.
분산 서버가 필요한 것은 공정관리서버와 그룹웨어서버 입니다.
L4 가 해결책이 아니라면 흑흑
회원K 2014-04
웹서버가 몇대 입니까?

L4는 웹서버의 부하를 나눠주는 역활만 하는데, 웹서버는 부하 안걸립니다.
L4는 ERP 등을 쓰는 것에서는 아무런 의미가 없습니다.
L4는 웹서버의 트래픽이 400-500mbps 이상 나오거나 감당하기 힘든 숫자의 동시접속자가 있을 때 쓰는 것인데
둘 다 해당사항이 없을 것 입니다.

DB서버는 L4 안씁니다.
DB서버는 분산처리를 하거나 insert하는 Master와 Query를 하는 Slave를 나누는 형태로 부하를 나눕니다.

튜닝과 성능개선은 어디에서 부하가 걸리는지 그것을 찾는 것이 우선이고
그것은 추측이 아니라, 명확한 데이타를 가지고 해야 합니다.

지난번에 다른 분들 의견도 스위치나 케이블 문제 아니라고 했었던 것으로 기억하는데요...
     
신성공 2014-04
선배님답변감사합니다. 네 DB도 튜닝하고있는데요. 생산량이 많아지게되면 공정관리서버가 IBM M3인데요. 자꾸 데이터를 입력하거나 가져오는것이 20초이상 걸려버리네요. 노락이나 클로즈 다 해놓은상태입니다.
이병영 2014-04
과거에 작성하신 원문을 기초로 댓글과 질문을 드려봅니다.

공정관리시스템에 운용중인 DB가 어떤것인지 모르겠으나 그에 따라 DB서버를 재구성하거나 네트워크를 재구성하는 방법은 달라지게 되어 있습니다. 과거 원문을 고려해볼 때 반드시 DB서버를 로드밸런싱 해야하는 이유가 있을지 사실 의문스러운 상태인 것 같습니다.

또한 현재 파악해봐야 할 문제점은 회사에서 제기한 DB서버의 SQL 쿼리문일 것 같은데요.

다양한 시각에서 어느 한쪽은 문제가 없다는 가정으로 서버에 발생하는 병목현상과 트랜잭션이 많을 때 느려지는 이유를 파악하시려면 서버쪽에서 먼저 파악해보시는게 맞을 것 같습니다. 이것저것 고민하지 않고 L4를 도입하시는 것은 무리수가 있을 것 같네요^^;
     
신성공 2014-04
선배님답변감사합니다.  공정관리 시스템은 MSSQL입니다. L4가 답은 아니라는 답변 감사합니다.
AKs 2014-04
지금 저 DB는 L4로 분산처리할 상황이 아닙니다.

저도 과거에 작성하신 원문을 읽어봤습니다만, 네트웍 장비의 교체는 아무 의미없는 행동이라 보여집니다. 케이블을 더욱 그렇구요..

지금 가장 먼저 할 작업은
1. DB서버에 충분한 공간이 남아 있는지 확인한다.
2. DB서버의 메모리와 CPU사용률을 체크한다.
3. DB서버의 로그파일 크기를 확인한다.
4. DB서버의 필요없는 데이터를 삭제한다.(백업 후 작업 필수)
5. DB서버의 슬로우쿼리를 체크한다.
6. DB서버의 세션 open/close를 체크한다.
등등이며, DB서버의 문제라 판단합니다.
     
신성공 2014-04
선배님답변감사합니다.
1.DB서버에 충분한 공간이라면 무엇인가요? 하드디스크는 많이 남아있습니다.
2.메모리와 CPU사용률은 그리 높지 않습니다. 메모리는 16기인데 32비트 운영체제 서버 2012입니다.
3.로그파일크기는 15.6기나 됩니다.
4.필요없는 데이터를 삭제해보았습니다. 용량은 5.6기가정도이나 하루가 지나니 다시 15.6기가로 오릅니다.
5.슬로우 쿼리는 또 뭐지요?
6.오픈 클로즈 체크해보았습니다. 이상없으며 노락을 한상태입니다.
차라리 튜닝을 한 번 받아보세요. 저도 예전에 투잡으로 가끔 공장 그룹웨어 느려진다고 해서 가보면...웹메일을 POP3 에서 가져오도록 프로그램을 만들어놨는데, 프로그램에선 서버에 사본 보관하는 옵션 켜놓고, 직원들은 메일을 읽고 지우질 않아서 수 백건을 그룹웨어 시작할 때마다 읽어서(첫 포털 화면에서 최신 메일을 불러와야 하니까요) 첫 포털 페이지 뜨는데만 수 분이 소요된 적이 있었습니다. 또는 아침에 로그인을 동시에 하는데, 로그인 시도를 한 사람에 수십번씩 해서(반응이 바로 없으니 로그인 버튼을 연타) 서버가 뻗는 문제도 있었습니다. MMM 구성의 MySQL 에서 insert 가 배포되기 전에 다른 insert 가 몰려서 10초 가까히 dead lock 이 발생했는데, 이게 쌓여서 서버가 무한응답없음으로 빠지는 경우보다는 이런 경우가 더 많았습니다. 즉, 느리다는게 일반 사용자가 생각하는 지점과 전혀 다른 부분에서 발생했을 수도 있다는 것입니다. 물론 질문자의 글을 봐선 응용 프로그램과 DBMS 사이에 현재 L4 나 L7 장비가 없을 것 같고...이 경우는 아니라고 생각합니다만...

그리고...강윤호, 이진범 님 댓글에 반박을 하면...

웹서버도 사용자 요청이 많으면 L4 을 쓰며, 꼭 요청이 많지 않더라도 장애대비 목적으로 사용합니다. 상용 서비스라면 거의 필수입니다. 질문자의 전 글을 읽어보지 않아 그룹웨어인지 뭔지 잘 모르겠지만, 그룹웨어도 L4 로 클러스터링 구성하는 경우가 많습니다. 그리고 DB 역시 Master-Slave 가 아닌 Master-Master 의 경우 L4 나 Reverse proxy 등을 구성해서 접속합니다. 2CPU 에서도 쓰는 걸로 아는 Maria DB 에서 공식적으로 지원하는 Galera Cluster 도 Master-Master 방식입니다. 또한, DB 에 Sharding 기능이 없거나 이를 응용프로그램에서 구현했을 경우 Shading 처리를 위해 L4 나 reverse proxy 을 앞에 두는 경우 역시 존재합니다.
     
AKs 2014-04
오해가 있었군요...
질문하신 분의 이전글을 읽어보면 엉뚱한 곳을 계속 파고 계셔서.. 지금 상황에서는 L4를 도입하는게 우선이 아니라는 뜻인데... 저도 뒤에 읽어보니 오해하기에 딱 좋습니다. ^.^;
          
회원K 2014-04
MS-SQL 튜닝하고, 서버 정비하고, 프로그램 수정해야 되요.
그거 안하면 뭘 하든 결과는 같습니다.
공장 장비의 경우 넣어주는 트래픽양이 아주 작고 빈도도 드문드문이라서
R210-II급 서버 1대로도 부족함이 없어야 합니다.

답답하면 답답한 사람이 프로그램 배워서 수정해야 하는데
돈으로 가능한, 쉬운 답을 찾으려니 그런 것 입니다.

원래 개발자는 아니지만, 답답해서 간섭하다가 보니 DBA 수준이 됬어요^^

서버가 1대 같은데, L4라니... 갑자기 멘붕이 왔어요.
               
역시 제가 어설프게 댓글을 다는게 아니었습니다. 이전 글이라도 읽어보고 올 걸 그랬어요. 서버가 1대인데 L4 라니요...그게 사실이라면...저 역시 멘붕입니다. 저격댓글이 아닌데 본의아니게 저격댓글이 됐네요.
                    
회원K 2014-04
아닙니다^^
질문이 차포와 전후의 인과를 다 떼어버려서 누구나 다 오해할 상황이어요.

공정장비는 1초 단위로 signal을 보내는 경우도 드물고 가끔 text로 몇글자 보냅니다.
그것을 DB에 넣는데, delay가 생긴다면 케이블이 아닌 프로그램을 봐야하는 상황인데
L2 스위치 교체했고 (요즘은 꽃개나 CISCO나 성능이 그게 그것 입니다...)
케이블도 최신거로 갈이를 했고 (공장에서 서버실까지 거리가 얼마인데요...)
스위치의 문제로 한번 더 인식해서 이번에는 L4를 한다고 하니...

공정 모니터링 서버의 경우 L4로 2중화 해야 하는 것은 맞습니다.
서버를 점검한다고 공장을 세우거나 할 수 없기 때문에
AA를 이용해서 이중화를 해야 하는데...
그런 상황까지 가려면 갈 길이 아주 많이 먼 신입 입니다^^
MS-SQL 서버의 이중화. 공부할 것이 아주 많죠.

이중화를 안하면 무슨 일이 생기는지, 삼성카드가 보여주고 있습니다.
이번에 R620을 추가로 구매한 이유가 R620 2대로 AA Cluster를 만들기 위해서이고
미크로틱의 L4 load balancing과 reverse proxy를 그래서 공부하고 있고,
이중화 안된 회사 서버도 어제 1시간 정도 서비스를 멈춰서 (DB서버장애) 고생했습니다.

나중에 궁금한 것은 많이 물어보겠습니다.
어디 의뢰해서 배우고 싶어도 배울 곳이 없더라구요.
     
신성공 2014-04
선배님답변감사합니다. 서버는 공정관리 서버이며 L4나 L7? 도없습니다.
정말 L4에대해서 잘아시는것같습니다. 무슨말인지 하나도 모르겠습니다. 흑흑
눈빛마음 2014-04
김종화님이 레전드 이신거 같은데요? ㅎ
일단 L4 에 관련된 부분 및 L2 와 네트워크 케이블 등의 고민을 해보신 것으로 보아
컨설팅 또는 근처에 관련된 업체의 컨텍 포인트가 필요하실 것 같아 자세한 내용은 쪽지로 보내드렸습니다.
     
신성공 2014-04
선배님답변감사합니다.  예 쪽지 잘받았습니다.
회원K 2014-04
해당 장비는 공장의 데이터를 관리하는 서버이기에 부하가 안걸린다고 한 것이고
MS-SQL을 운용하는 서버입니다.
이 질문은 과거글에서 쭉~ 이어지는 질문의 연장이고,
과거 비슷한 류의 개발 경험으로 봐서...
문제는 서버 튜닝과 프로그램, DB튜닝인데 스위치교체, 케이블교체 등등을 하고 있구요.
그거 해봐야 사실 아무런 영향 없거든요.

웹서버의 경우에도 트래픽이나 세션이 늘어난다면 L4 써야 하고 지금 쓰고 있습니다.
적정한 댓수의 서버를 유지하는 이유도 말씀하신 것처럼 장애발생시 쉽게 빼고 넣고 하기 위해서구요.
장애가 생기면 해당 장비를 L4 pool에서 빼고, 복구후에 다시 넣어줍니다.
1대만 웹서버를 돌리면, 장애시 대처할 방법이 전혀 없습니다^^
     
신성공 2014-04
선배님답변감사합니다.  선배님 공정관리서버 맞구요. 그룹웨어 서버 맞구요.
2개의 서버가 문제가 발생됩니다. 방화벽사용량을 측정하면 1.9k 나오며. 조회수를 조사한결과 하루에 860만건의 데이터가 들어오고 빠져 나갑니다.
          
회원K 2014-04
1.9k는 no traffic으로 분류하는 수준이라서 케이블이나 스위치와 전혀 무관합니다.
하루 860만건이 들어오면, DB문제입니다.
회선이나 스위치 문제 아닙니다.

860만건이 매일 들어오는데,
그것을 가져다가 쓰는 경우에 엄청난 select 부하가 걸릴겁니다.

요즘 말하는 Big Data에 해당하는 것인데,
5일치 데이터만 거의 5천만건이라 이것이 쌓이게 되면 어지간한 DB 서버는 감당을 못합니다.
데이터를 수집하는 서버와 그것을 가져다가 가공하는 서버를 분리해야 하고,
memcache나 redis 등의 메모리 db들도 적절하게 써야 합니다.

매일 860만건이면, 튜닝으로도 감당하기 어려운 그런 수준 입니다.
악땅 2014-04
A-S 가 아닌 A-A 로 가야한다면 웹서버도 DB도 FW도 L4를 사용합니다.
실제로 현장에선 많이들 쓰고 있구요...
본문내용을 봐서는 위에 많은분들의 말씀처럼... 튜닝이나 컨설팅을 먼저 받으셔야할듯 합니다.
장비 떄려박아봤자 기초가 좋지 않으면 효과 못봅니다...
     
신성공 2014-04
선배님답변감사합니다. 아무래도 제가 사수에게 DB쿼리튜닝 회사를 컨텍하는것이 맞을게 같다고 건의해보겠습니다. 정말 감사합니다.
레오나르도 2014-04
답변을보니
1.DB서버에 충분한 공간이라면 무엇인가요? 하드디스크는 많이 남아있습니다. =문제없음
2.메모리와 CPU사용률은 그리 높지 않습니다. 메모리는 16기인데 32비트 운영체제 서버 2012입니다.
문제없음  디스크io에 대한 사항이 없음.

3.로그파일크기는 15.6기나 됩니다.
=여기서부터 의문이 생김니다.
4.필요없는 데이터를 삭제해보았습니다. 용량은 5.6기가정도이나 하루가 지나니 다시 15.6기가로 오릅니다.
=데이타가 10기가가 하루에 불어나면 로그화일도 거의 같이 불어나죠..더 큰 수로..
 데이타를 삭제하는것보다 로그파일을 하루에 한번식 축소쿼리 혹은 풀백업을 받으시면 mssql은 로그파일을 줄여줍니다..

문제를 진단해 보면 단기간에 많은 oltp데이타가 들어오고 있고 분명히 FA프로그램 구조상 CS로 구조로 되있을겁니다. 중간에 미들웨어가 없으므로 디비에 입력쿼리 때려넣고 있고 메모리에 데이타 올리고 하드디스크를 잡아 먹으면서 로그파일 생성하면서 입력대기 하고 잇어서 느린거죠...
방법은 위에서 제시한대로 디비구조를 개선하고 프로그램도 개선해야 하는데
개발업체는 이거 개선할만한 능력도 없다는데 한표 던짐니다..

메모리 증설하고 메모리디스크로 증설하는데 한표 던집니다..=>물론 단기간 효과만 볼뿐이지만요..

mssql 튜닝은 http://sqlroad.com 에 가보세요..
     
신성공 2014-04
선배님 답변감사합니다. 선배님 말씀대로 개발업체가 망해서 없어진상태라네요. 흑흑 사이트 조언 감사합니다. 제가 열심히 공부해서 DBA가 되보도록 하겠습니다. 정말 고맙습니다.


QnA
제목Page 3213/5730
2015-12   1791837   백메가
2014-05   5266916   정은준1
2015-09   3825   겨울나무
2009-04   6196   x105
2017-10   5650   시도니
2009-04   5039   잔디
2012-07   9230   정은준1
2016-09   4404   배병렬
2017-10   4504   Win31
2014-05   6693   황진우
2020-03   4813   그린
2024-11   960   우주소년
2009-05   6325   이정찬
2012-07   9722   병맛폰
2014-05   7572   파리대왕
2012-07   12320   병맛폰
2016-10   3804   자연인
2016-10   5404   겨울나무
2009-06   6647   박철
2015-10   3564   Noman
2017-11   5718   NiteFlite9
2019-02   6321   꿀땡이