C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

건의사항
[343] Re:C++Builder QnA 검색기 개발
박지훈.임프 [cbuilder] 5564 읽음    2003-10-15 10:10
그 범인(?)이 임문환님이셨군요.. ^^

지난 주말에 검색 기능 복구를 위해서 서버에서 몇가지 작업중이었는데 자꾸 프로세스가 100%까지 올라가서리,
로그를 뒤져봤었지요. 누군가 게시판을 열심히 긁어가고 있더군요. 게시판을 긁어가는 것 자체는 아무 상관
없습니다만 너무 맹렬하게(?) 서버가 쉴 틈도 없이 긁어가는 바람에 서버가 나죽어~~ 그러구 있더군요.

작업을 할 수가 없어서 어쩔 수 없이 웹 서버에서 해당 IP를 블로킹 시켰습니다.
포럼을 이용하는 분이 틀림없는데 계속 IP를 막아놓을 수가 없어서, 몇분쯤 있다가 다시 해당 IP를 열었습니다만
2~3분이 지나지 않아서 다시 맹렬하게 요청을 하시더라구요. 그래서 다시 IP를 막았는데.. 그 다음에 다른
일 때문에 까먹어버렸네요.

혹 다른 분도 게시판을 긁어가려고 생각하실 분이 있을 지 몰라서 부탁 한 말씀.
게시판을 긁어가는 것은 좋습니다만, 서버가 쉴 틈은 주셔야 다른 사용자들이 포럼을 이용하는 데 장애가
없습니다. 적어도 게시물 하나를 읽은 후 다음 게시물을 요청하기 전에 1초 정도의 시간은 여유를 주셔야
서버가 그럭저럭 돌아갈 수 있답니다.

임문환님의 경우에는 하나의 게시물을 요청해놓고 다 받기도 전에 다음 게시물을 요청하도록 하셨던 거 같습니다.
로그를 보면 1초에 두개씩의 요청을 하고 있는데, 포럼 서버의 허접한 사양 때문에 다른 사용자가 없더라도
성능상 1초당 하나 이상의 요청은 처리하지 못합니다. 따라서 요청당 1초씩의 여유 시간을 추가하면, 게시물당
2초씩의 시간을 할당해주셔야 서버가 그럭저럭 돌아갈 수 있다는 말이지요.

물론 게시물 하나를 받는 데에 1초가 걸린다고 볼 때 여유시간을 1초씩 넣으면 원하는 만큼의 게시물을 긁는
시간이 두배 정도로 늘어나게 되겠지요. 하지만 다른 사용자들도 불편하지 않도록 해야 하지 않겠습니까. ^^
긁어가는 프로그램을 만드실 정도의 실력이시면 새벽 시간에 특정 시간을 정해 프로그램이 돌아가도록 예약
기능을 추가하시는 것도 어렵지는 않을테니까요.

요약하면,
1. 게시물을 긁어가는 것은 금지하지 않습니다.
2. 새벽 시간이나 주말 등 사용자가 적은 시간을 이용해주세요.
3. 쉴 새 없이 연속으로 게시물을 요청하는 것은 자제해주세요.
4. 최소한 하나의 요청마다 요청부터 수신까지의 소요 시간에다 1초 이상의 여유 시간은 넣어주세요.


이제 본론으로 돌아가서...

수야님이 다른 운영진분들의 의견을 물었는데, 뭐 그렇게 무거운 사안도 아니고, 그냥 올리셔도 상관없습니다.
다만 저번에 올리신 분처럼, 본의 아니게 프로그램을 사용하는 분이 스스로 계속 긁어가서 서버가 과부하로
헉헉대게 만들지만 않으시면 됩니다.
제 생각에는, 완성된 배포 프로그램에는 긁는 기능은 제외시켜서 프로그램 사용자들이 스스로 긁지 못하게
막고, 임문환님이 정기적으로(일주일이나 한달 간격으로) 긁으셔서 자료실 등에 올리시는 것도 좋은 방법일
듯 합니다.

그리고 마지막으로, 검색기능은... 월요일 아침까지는 완성하겠다고 했었는데요, 오늘 중으로 올라갑니다. (윽!)
절대로 임문환님 뒤통수때리려고 한 것은 아닌데... 지금 마지막 테스트 몇가지를 하고 있습니다.
이전의 검색방식과 똑같은 단순 쿼리 방식인데, 서버 부하를 줄이려고 몇가지 잔머리를 굴렸기 때문에 테스트가
좀 필요하게 되었습니다. 잔머리 아이디어는 곧잘 황당한 부작용을 낳는 경우가 많아서...

그럼...


임문환.실업자 님이 쓰신 글 :
: 안녕하세요?
:
: C++Builder QnA 검색기를 개발했는데 여기에 올려도 될지 궁금합니다.
:
: 운영방식: 서버에서 다운받은 자료를 로컬 디비에 저장해두고 로컬에서만 조회
: DB: MySQL
: 다운받은 자료: 26471번 이전 것들.
: 다운받는 자료를 분석한 후 디비에 저장하고 다시 덤프하여(mysqldump) 압축한 파일의 크기는 8MB 정도.
: 검색프로그램은 웹브라우저를 사용하지 않으나 형태는 유사.
: 검색프로그램의 크기는 압축한 결과 400KB 정도.
:
: 이 사이트에서 검색기능에 대해 말이 많고 불편해하는 점을 해결해볼 요량으로 검색기를 개발하는 과정에서 무리하나마 많은 자료를 다운받게 되었습니다.
: (많은) 자료를 다운받은 것이 문제가 된다면 폐기하도록 하겠습니다.
:
: 안녕히 계십시오.
임문환.실업자 [origin]   2003-10-15 10:54 X
서버를 고생시켜 다른 이의 이용에 지장을 끼친점 죄송합니다.
오늘 검색 기능이 부활한다니 참 다행입니다.
이미 만든 프로그램인 만큼 C++Builder의  Resources 란에 올려보도록 하겠습니다.

+ -

관련 글 리스트
342 C++Builder QnA 검색기 개발 임문환.실업자 24712 2003/10/15
343     Re:C++Builder QnA 검색기 개발 박지훈.임프 5564 2003/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.