2011-09-06 4 views
0

내가 스크립트를 호스팅 PHP 이미지를 강화하고있어,하지만 난 문제에 직면하고 있습니다 : 클라이언트가 사용되는 대역폭의 양을 제한하는 기능을 요구 한 각 이미지에 대해, 1백메가바이트/일에 이 미리이미지 호스트 스크립트에서 이미지 대역폭 소비를 측정하려면 어떻게해야합니까?

을 포함 지금까지 PHP (nginx 사용)를 사용하지 않고 섬네일을 직접 제공했습니다. 직접적인 .jpg 대신 PHP 스크립트를 사용하여 매우 많이 캐시 된 코드 (APC의 캐시를 사용하여 사용 된 대역폭의 양을 저장하고, X-Sendfile 헤더로 이미지 제공). 매우 많은 양의 연결로 인해 서버가 막히게됩니다.

t을 질식시키지 않고 미리보기 이미지에서 사용되는 대역폭을 측정하는보다 효율적인 방법이 있습니까? 그는 CPU와 RAM? 이 문제는 보통 어떻게 해결됩니까?

감사합니다.

+0

try on serverfault.com – ajreal

답변

0

서버 액세스 로그를 구문 분석합니다. 나는 그들이 /var/log/nginx/access.log에있는 nginx를 믿는다. 액세스를 허용하기 위해 권한을 변경해야하거나 액세스가 불편할 경우 cron을 사용하여 해당 파일을 액세스 가능한 폴더에 정기적으로 복사 할 수 있습니다.

결과를 캐시하고 한 시간에 한 번만 확인하면 grep -c를 사용하여이 작업을 수행 할 수 있습니다.

난 당신이 읽혔습니다 알고있는 파일을 선택하면, 알고 싶네, 얼마나 실행하기 위해 취할 않습니다

grep -c filename.jpg /var/log/nginx.access.log 

당신은 단순히 얻을 수있는 파일 크기에 의해 그 수를 곱하면 수 해당 이미지의 대역폭

+0

문제는 서버 액세스 로그가 몇 시간 후에 수백 GB까지 증가한다는 것입니다. 실현 가능합니까? – Igor

+0

위의 정보를 추가했습니다. –

+0

실제로 콘솔을 통해 grep 명령을 보내면 무기한으로 전달됩니다. access_log 파일은 800gb – Igor

관련 문제