업데이트 - 문제는 서버가 이번 주 초 은퇴 한 파일 서버에서 마운트를 가리키는했다 밝혀졌다Django 웹 앱에 대한 요청이 행하고 있습니다. 간단한 디버깅 팁?
해결; 결국 django/mod-python/etc와 관련이 없습니다. 마운트를 업데이트하면 문제가 해결됩니다. 야생 거위 추적에 대한 의견 & 도움말 및 사과에 대한
많은 감사 ... 나는
요약
I :-) 어떤 경우에 모드 - 파이썬을 업그레이드로 살펴 보겠습니다 며칠 전까지는 정상적으로 작동하는 Django webapp를 유지하고 있지만 이제 모든 웹 요청은 수개월 동안 지속됩니다. 나는 무엇이 바뀌 었는지 알지 못하기 때문에, 문제는 아마 상당히 간단 할 것이다.
웹 서버를 다시 시작하고 httpd를 다시 시작해 보았습니다. 'top'은 서버가 CPU 및 메모리에 문제가 없음을 보여줍니다.
누군가가 잘못 될 가능성이있는 다른 간단한 것들이나 다른 것들을 확인할 수 있습니까?
자세한 내용
나는 웹 서버를 만들지 않은, 그래서 불행하게도 나는 자세한 내용 완전히 확실하지 않다, 또는 경우 모든 로그 등 내가 웹 서버가 알고를 찾기 위해 Django를 사용하여 구현되었습니다. Linux 서버에서 실행됩니다. PostgreSQL 데이터베이스를 사용합니다. 정적 컨텐츠에 대한 lighttpd; 아파치가 들어오는 HTTP 요청을 처리하고 그들을 mod_python을 통해 Django로 전달한다. memcached를 사용하여 렌더링 된 페이지를 캐시합니다. 나는 리눅스 서버와 데이터베이스에 대한 완전한 접근권을 가지고 있기 때문에, 어디서든지 볼 수 있다면 무엇이든 행복하게 엿볼 수있다.
/var/log/httpd/access_log와 error_log는 새로운 요청을 할 때마다 다음과 같은 행을 표시합니다. 나는 mod_python 라인이 에러를 나타내 었는지 알지 못한다. (나는이 로그를봤을 때 아무것도 알지 못했다.)
ACCESS_LOG :
127.0.0.1 - - [13/Jan/2011:10:56:11 +0000] "GET /testruns/testrun2176/ HTTP/1.0" 301 - "http://myapp/testruns/" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729; .NET4.0E)"
의 error_log :
# python manage.py runserver 0.0.0.0:8088
Validating models...
0 errors found
Django version 1.0-final-SVN-unknown, using settings 'myapp.settings'
Development server is running at http://0.0.0.0:8088/
Quit the server with CONTROL-C.
[13/Jan/2011 14:23:31] "GET /testruns/testrun2176/ HTTP/1.1" 301 0
그런 다음 아무 일도 발생하지 않습니다 개발 서버를 실행 한
[Thu Jan 13 10:34:19 2011] [notice] mod_python: (Re)importing module 'django.core.handlers.modpython'
출력. 웹 페이지가 로딩에 걸렸습니다.
약간 더 간단한 페이지 중 하나를로드 할 수 있습니다. dev 버전을 통해 사진은로드되지 않지만 그렇지 않은 경우 괜찮습니다. 간단한 페이지입니다에서/testruns/- 어떤 이유로 나는 경우 runserver 출력에 해당 페이지가 표시되지 않는 있지만 :
# python manage.py runserver 0.0.0.0:8088
Validating models...
0 errors found
Django version 1.0-final-SVN-unknown, using settings 'myapp.settings'
Development server is running at http://0.0.0.0:8088/
Quit the server with CONTROL-C.
[13/Jan/2011 14:27:42] "GET /static/myapp.css HTTP/1.1" 404 1113
[13/Jan/2011 14:27:42] "GET /static/myapp_print.css HTTP/1.1" 404 1113
[13/Jan/2011 14:27:42] "GET /static/myapp_ticks_crosses.css HTTP/1.1" 404 1113
내가 다시 지적해야을,이 모든 작업을 잘 며칠 전이었다. 그 이후로는 아무 것도 명시 적으로 변경하지 않았습니다. 갑자기 필요한 페이지가로드되지 않는다는 사실을 발견했으며, 이유를 찾으려고합니다.
/var/log/httpd/log 파일은 특별히 흥미로운 내용을 표시하지 않는 것 같아요. 내가 무엇을 봐야하는지 잘 모르겠습니다.
우리는 다른 테스트 결과 세트에서 작동하는 두 번째 서버를 실행 중입니다. 그 위에서 개발 서버를 실행하면 301 리다이렉트 (.../testrunX/.../testrunX/broken/page1 /로 리디렉션 될 것으로 예상 됨)가 표시됩니다.
// This trace, on a different server but with a similar setup, shows that the
// 301 redirect is expected, and is not the source of the problem
[server2]# python manage.py runserver 0.0.0.0:8088
Validating models...
0 errors found
Django version 1.0-final-SVN-unknown, using settings 'myapp.settings'
Development server is running at http://0.0.0.0:8088/
Quit the server with CONTROL-C.
[13/Jan/2011 14:47:59] "GET /testruns HTTP/1.1" 301 0
[13/Jan/2011 14:47:59] "GET /testruns/ HTTP/1.1" 200 11568
[13/Jan/2011 14:47:59] "GET /static/myapp.css HTTP/1.1" 404 1131
[13/Jan/2011 14:47:59] "GET /static/myapp_print.css HTTP/1.1" 404 1131
[13/Jan/2011 14:47:59] "GET /static/star.png HTTP/1.1" 404 1131
[13/Jan/2011 14:47:59] "GET /static/myapp_ticks_crosses.css HTTP/1.1" 404 1131
[13/Jan/2011 14:47:59] "GET /static/star.png HTTP/1.1" 404 1131
[13/Jan/2011 14:48:02] "GET /static/star.png HTTP/1.1" 404 1131
[13/Jan/2011 14:48:12] "GET /testruns/testrun1879/ HTTP/1.1" 301 0
[13/Jan/2011 14:48:12] "GET /testruns/testrun1879/broken/page1/ HTTP/1.1" 200 309477
[13/Jan/2011 14:48:12] "GET /static/myapp.css HTTP/1.1" 404 1131
[13/Jan/2011 14:48:12] "GET /static/myapp_print.css HTTP/1.1" 404 1131
[13/Jan/2011 14:48:13] "GET /static/myapp_ticks_crosses.css HTTP/1.1" 404 1131
그래서 무한 루프가 있다고 생각하지 않습니다. 몇 가지 이유로 요청/데이터베이스 쿼리/다른 뭔가가 너무 오래 걸리거나 완전히 붙어 있습니다. 나쁜 서버
memcached와 정보
memcached를 꽤 비어 보인다. 그러나 그것은 아마도 웹 요청이 실패한 경우, 즉 캐시에 저장되도록 반환 된 항목이없는 경우 (캐시 만료 시간은 12 시간) 예상됩니다.
나쁜 서버 :
// Top - only using 6K memory (VIRT)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30743 nobody 15 0 6640 4972 476 S 0.0 1.9 0:00.01 memcached
// memcache-top from http://code.google.com/p/memcache-top/
// only using 0.2% available space
memcache-top v0.6 (default port: 11211, color: on, refresh: 3 seconds)
INSTANCE USAGE HIT % CONN TIME EVICT/s READ/s WRITE/s
127.0.0.1:11211 0.2% 0.0% 5 0.8ms 0.0 2 161
AVERAGE: 0.2% 0.0% 5 0.8ms 0.0 2 161
TOTAL: 111.0KB/ 64.0MB 5 0.8ms 0.0 2 161
좋은 서버 :
// Top - using ~68K memory (VIRT)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2503 nobody 15 0 67900 8256 396 S 0.0 3.2 0:01.68 memcached
// memcache-top - using 63% space
memcache-top v0.6 (default port: 11211, color: on, refresh: 3 seconds)
INSTANCE USAGE HIT % CONN TIME EVICT/s READ/s WRITE/s
127.0.0.1:11211 63.2% 0.0% 3 1.2ms 0.0 0 0
AVERAGE: 63.2% 0.0% 3 1.2ms 0.0 0 0
TOTAL: 40.5MB/ 64.0MB 3 1.2ms 0.0 0 0
301 공진은 리디렉션을 제안합니다 ... URL이 무한 루프를 일으킬 수있는 것처럼 보입니다. – crodjer
dev 서버에 이미지가 표시되지 않으면 올바르게 구성된 정적 뷰가 누락 될 수 있습니다. 그들! 문제를 설명 할 때 url 구성 및보기와 더 관련이 있습니다. –