cherrypy로 메모리 문제를 감지하려고 잠시 동안 노력했습니다. 함수에 대한 모든 웹 호출은 다음 명령을 실행할 때 메모리를 사용합니다.cherrypy/apache 서버가 함수 호출이 끝난 후 메모리를 해제하지 않습니다.
ps -u djotjog -o pid,rss,command | awk '{print $0}{sum+=$2} END {print "Total", sum/1024, "MB"}'
은 영구적으로 남아있는 것처럼 보입니다. 나가기 전에 함수의 모든 객체를 'del'하려고했습니다. 효과가 없습니다. 많은 데이터를 저장하는 클래스 인스턴스가 문제가 될지 궁금합니다. 나는 아직도 내가 웹 호출을 실행할 때마다 사용 3백50메가바이트를 참조 결국
class Data:
pass
ref_data = Data()
... do stuff... make a stories_dict ...
ref_data.stories = stories_dict #dictionary 'id':'story' pairs
del stories_dict
, 그것은이 500MB에 도달하면, 다른 cherrypy 예를 생성하는 것 : 나는 같은 것을 사용! LATER
PID RSS COMMAND
10492 960 ps -u globamh1 -o pid,rss,command
10493 784 awk {print $0}{sum+=$2} END {print "Total", sum/1024, "MB"}
29833 1708 -bash
Total 3.37109 MB
... 나중에 여전히
PID RSS COMMAND
12811 1164 /bin/sh cherryd.fcgi
12817 293788 /home4/globamh1/python-2.7.2/bin/python2.7 /home4/globamh1/.local/bin/cherryd -P modules -c cherryd.conf -f -i app
13195 984 ps -u globamh1 -o pid,rss,command
13196 16 awk {print $0}{sum+=$2} END {print "Total", sum/1024, "MB"}
29833 1708 -bash
Total 308 MB
... 그래서
PID RSS COMMAND
4053 5216 /home/globamh1/python-2.7.2/bin/python /home/globamh1/python- 2.7.2/ngo_prompter_2.py
4091 988 ps -u globamh1 -o pid,rss,command
4092 784 awk {print $0}{sum+=$2} END {print "Total", sum/1024, "MB"}
12817 1111616 /home4/globamh1/python-2.7.2/bin/python2.7 /home4/globamh1/.local/bin/cherryd -P modules -c cherryd.conf -f -i app
29833 1716 -bash
32413 1168 /bin/sh cherryd.fcgi
32414 576792 /home4/globamh1/python-2.7.2/bin/python2.7 /home4/globamh1/.local/bin/cherryd -P modules -c cherryd.conf -f -i app
Total 1658.48 MB
일부 특정 질문에이 위로 감싸는 :
- 얼마나 빨리해야 파이썬의 가비지 수집기가 작동합니까?
- cherrypy 또는 apache가 데이터를 영구 보존하기 위해 이상한 일을합니까?
- 메모리가 너무 많은 경우 cherrypy가 여러 요청에 응답하도록 어떻게 신뢰할 수 있습니까? 이미 일부 요청을 무시하는 것으로 나타났습니다.
- 이것은 서버 구성에 문제가 있습니까?
동일한 문제입니까? Memory not released by python cherrypy application on linux
그렇다면 공유 솔루션 사이트를 어떻게 구성해야합니까?
서버 bash 명령 줄에서 - python [filename] .py를 실행할 때 아무 것도 지속되지 않습니다 ... ref_data를 삭제하면 영구 메모리 사용에 아무런 영향을 미치지 않습니다. –
나는 메모리 문제를 mysqldb와 관련이있는 것으로 축소했다. 여기에 좀 더 간결한 설명을 게시했다. http://stackoverflow.com/questions/13612050/mysqldb-usage-in-cherrpy-app-leads-to-massive- 영구 메모리 사용 - 서버 –
영구 데이터 사용 소스를 라우팅 할 수 있도록 프로그램 종료시 메모리에있는 모든 데이터 개체 목록과 크기를 체계적으로 볼 수 있습니까? cherrypy가 메모리에 남아 있기 때문에 뭔가가 메모리에 남아 있습니다. –