2010-01-04 4 views
3

방문 빈도가 높은 내 웹 사이트 방문을 기록하고 싶습니다. 초당 수행 할 수있는 로그 파일 쓰기 양은 어느 정도입니까?초당 파일 쓰기

+0

Google 애널리틱스에서 제공하지 않는 추가 기능이 무엇인지 분명히 할 수 있습니까? – SqlRyan

+0

@Ilya, 어떤 서버를 사용하고 있습니까? 아파치? –

+0

오케이, 나는 내가 필요한 것을 자세히 설명하려고 노력할 것이다. 광고 네트워크가 있고 배너 쇼를 파일에 기록한 다음 5 분마다 한 번씩 mysql에 업로드하려고합니다. 배너 쇼는 초당 약 50 개의 속도를 가지고 있습니다. – Ilya

답변

4

하지 말고 대신 Google Analytics을 사용하십시오. 결국 파일을 열고, 쓰고, 닫고, 계속하는 등의 많은 문제에 봉착하게 될 것입니다. 아직 커밋되지 않은 데이터를 덮어 쓸 때 문제가 발생합니다.

개인 네트워크 내에서 (개인 네트워크 내에서) 자신의 솔루션이 필요한 경우 AWStats과 같은 옵션을 살펴볼 수 있습니다. 당신의 로그 파일.

+0

고마워,하지만 내 자신의 로깅 시스템이 필요해. – Ilya

+2

애널리틱스에서 제공하는 정보의 풍부함이 훌륭하다. –

+0

알아요,하지만 다른 기능이 필요합니다. – Ilya

4

또는 Apache 액세스 로그 파일을 분석하십시오. 예 : AWStats.

8

웹 로그 분석을 사용할 수없는 경우 웹 서버의 기존 로깅 시스템을 사용하지 않는 이유는 무엇입니까? 실제 웹 서버를 사용하고 있다면, 이미 최대 처리량을 위해 최적화 된 로깅 메커니즘으로 거의 확실합니다.

귀하의 질문에 대한 답변은 다른 모든 측면에서 불가능합니다. 가능한 쓰기 수는 하드웨어, 운영 체제 및 실행중인 다른 소프트웨어의 경합에 의해 결정됩니다.

+0

예, 서버 로그를 구문 분석합니다. – Rob

+1

나는 파싱이 어렵고 긴 과정이라고 생각한다. – Ilya

+2

@Ilya : 파일 쓰기를 최적화하려고하는 것만 큼 어렵지는 않다. Perl은 주로 로그 구문 분석과 같은 작업을 수행하기 위해 존재합니다. splunk와 같은 다른 옵션도 있습니다. 이 바퀴를 재발견하는 열매를 맺지 마십시오. –

1

하드 디스크 드라이브가 40MB/s를 기록 할 수 있고 로그 파일 줄이 약. 길이가 300 바이트라면, 공개로 유지하면 초당 140000 개의 HTTP 요청을 로그 파일에 쓸 수 있다고 가정합니다.

어쨌든, 대부분의 웹 서버는 이미 로그 파일에 기록하고 있으므로이를 수행하는 방법, 최대 한계에 도달하면 파일을 롤 포팅하는 방법 및 로그를 형식화하는 방법을 알고 있으므로 선들은 잘 알려진 패턴들에 따라

1

파일 액세스는 특히 쓰기를 수행 할 때 매우 비용이 많이 듭니다. RAM에 저장하는 것이 좋습니다 (어떤 캐시 방법이든 가장 잘 어울리는 방법 사용). 주기적으로 디스크에 결과를 기록하는 것이 좋습니다.

또한 데이터베이스를 사용할 수도 있습니다. 같은 뭔가 :

UPDATE stats SET hits = hits + 1 

는 몇 가지 솔루션, 벤치 마크 성능을 시도하고 최소한의 리소스 사용에 충분히 빠르게 작동 중 구현합니다.

+0

이 목적을 위해 관계형 데이터베이스를 사용하면 과도한 공격이 될 수 있으며 심각한 성능 저하가 발생할 수 있습니다. –

+0

내 의견을 참조하십시오, 매번 데이터베이스를 업데이트하고 싶지 않습니다. – Ilya

1

Apache를 사용하는 경우 rotatelogs 유틸리티를 표준 키트의 일부로 제공하는 것이 좋습니다.

우리는 이것을 사용하여 서버를 중지하고 시작할 필요없이 매일 서버 로그를 순환 할 수 있습니다. N.B. 새로운 "||" 로그 지시문을 선언 할 때 구문.

내가 참여한 사이트는 인터넷에서 가장 큰 사이트 중 하나입니다. 오랜 기간 동안 초당 수백만에 달하는 인기있는 방문률을 기록했습니다.

편집 : 사이트에서 표준 Apache 로깅 지시문을 사용하고 있으며 Apache 로깅 코드를 전혀 사용자 정의 할 필요가 없다는 사실을 잊어 버렸습니다.

편집 : BTW 실제로 필요한 경우가 아니라면 바이트를 기록하지 마십시오. 이로 인해 자정 경계 주변에서 여러 가지 문제가 발생합니다.

+0

어떻게 해석 할 수 있습니까? – Ilya

+0

@Ilya, 초기 시작 지점에 대한 awstats에 대한 @ EarthMind의 제안을 참조하십시오. 우리는 로그 파일에 대한 모든 종류의 분석을 머신의 전용 제품군에서 실행되는 맞춤 통계 분석기를 사용하여 매일 수행합니다. Sun5240이야. 분석기는 C 및 Perl 스크립트로 작성된 실행 파일을 혼합하여 구현됩니다. 이 분석 프로세스는 하루에 최소 10 시간이 걸립니다! –

2

파일 쓰기는 실제로 데이터를 디스크로 플러시 할 때까지 비용이 많이 들지 않습니다.일반적으로 운영 체제는 데이터를 적극적으로 캐싱하므로 fsync() 데이터를 수동으로 시도하지 않으면 매우 우수한 쓰기 성능을 얻을 수 있습니다 (물론 충돌이 발생하면 최신 로그 항목이 손실 될 수 있습니다).

또 하나의 문제는 파일 입출력이 반드시 thread-safe는 아니며 여러 스레드 또는 프로세스 (동일한 웹 응용 프로그램에 대해 이야기 할 때 발생할 수 있음)에서 동일한 파일에 쓰기가 잘못된 것입니다 결과 : 누락되거나 중복되거나 혼합 된 로그 행.

+0

오케이. 나에게 조언 해 줄 수 있니? – Ilya

+0

쓰레드 안전성은 정확히 비슷한 문제에 대해 궁금해합니다. –

0

아파치가 그렇게하도록하십시오. 백엔드에서 분석 작업을 수행하십시오.