2011-01-18 2 views

답변

1

이 질문에 대한 답변은 실제로 사용하고있는 데이터베이스의 종류와 웹 서버 디스크 및 데이터베이스가 실제 배포 환경에 얼마나 많은지에 따라 달라집니다.

  • 인상 채우기가 끝날 때마다 파일에 로그 항목을 추가하면 매우 빠릅니다. 이 파일을 매일 새로운 파일로 옮겨서 그것을 처리하기 위해 백엔드 시스템에 보내면 디스크 충돌이 발생하지 않는 한 엔트리를 잃지 않을 것입니다.
  • 테이블 엔트리가있는 일반 mysql 데이터베이스 데이터에 대한 쿼리를 수행 할 때 동일한 테이블을 사용하지 않으려면이 작업에 과도한 부담이 될 수 있습니다. 아마 잘 확장 될 수도 있지만 많은 트래픽이있을 경우 많은 항목을 여기에 넣을 수 있습니다.
  • 이 좋은 경기를 할 수 있으며, 이것은 아마도 트위터처럼 확장에 확장 할에 대한되는 NoSQL 데이터베이스를 사용 - 대부분의 사이트가 트위터를 싫어하는 비록 귀하의 요구 :
대한 아마 잔인한 있도록

일반 웹 사이트를 사용하는 경우 첫 번째 방법은 간단하기 때문에 빠져 나갈 수 있습니다. 그렇지 않은 경우에는 많은 시간을 소비하지 않았습니다.

+0

시간당 10 백만 개 이상의 항목을 타겟팅하고 있습니다. 로그에 대해 생각 중이거나 MongoDB를 사용하고 있습니다. 하지만 mongoDB를 사용하면 HTTP 요청을 MongoDB에 저장하기 위해 스크립트 (예 : PHP)를 실행해야합니까? 또는 (어떻게 든) 웹 서버가 DB에 직접 로그를 작성하도록 구성 할 수 있습니까? – murvinlai

+0

나는 그런 종류의 볼륨으로 일한 적이 없지만이 작업을 위해 mongodb를 사용해보아야합니다. 나는 이것이 이런 종류의 부하를 제공 할 수있는 유일한 컴퓨터가 아니라고 생각합니다. 하나의 컴퓨터는 약 2800 개의 요청을 초당 처리해야하며 가능하다고 생각합니다. 10 대의 전면 컴퓨터로이 작업을 수행 할 수 있다고 가정하면 초당 280 회의 요청이 처리됩니다. 그렇다하더라도 분산 된 mongo db 설정으로 갈 것입니다. 실제로 성능 테스트를 작성하여 확장 성을 확인해야합니다. – Knubo

+0

귀하의 조언에 감사드립니다. :) EC2를 사용하려고하는데 Nodejs를 사용하여 간단한 웹 요청을 받고 MongoDB에 로그인 할 수 있습니다. :) 비록 그것이 작동하는지 확실하지 않습니다. :) – murvinlai

0

나에게 합리적인 소리. 로그가있는 간단한 방법은 예를 들어 grep을 사용하여 로그에서 정확한 호출을 찾아서 계산하십시오.

Knubo가 말했듯이, 이미 처리 된 항목을 압축하면 10M +/시간과 같이 꽤 많은 로그 파일을 볼 수 있습니다. 일일 처리 수행 어제에서

  1. 새로운 로그 파일을 시작 (로그 회전)
  2. 카운트 올바른 엔트리가 로그 파일
  3. 아카이브 처리 로그 파일 (GZIP, bzip2에, 7zip과 등등)
관련 문제