我試着用一個非常小的django應用程序,主要用於無靜態數據庫操作的html +靜態內容。該應用程序在nginx和uwsgi上。我也安裝了postgres,但對於這個問題,我沒有做任何數據庫操作。uWSGI不釋放內存
我發現內存沒有被uwsgi進程釋放。在這張來自newrelic的圖表中,您會發現uwsgi進程佔用的內存在〜100MB時仍然停滯不前,儘管在停滯期間網站/應用程序絕對沒有任何活動。
此外僅供參考:app/uwsgi進程開始時只消耗56MB。當我使用ab(apache基準測試)進行測試時,我達到了這個〜100MB,並且在-n 1000 -c 10或其附近進行了測試。
的Nginx的conf
server
{
listen 80;
server_name <ip_address>;
root /var/www/mywebsite.com/;
access_log /var/www/logs/nginx_access.log;
error_log /var/www/logs/nginx_error.log;
charset utf-8;
default_type application/octet-stream;
tcp_nodelay off;
gzip on;
location /static/
{
alias /var/www/mywebsite.com/static/;
expires 30d;
access_log off;
}
location/
{
include uwsgi_params;
uwsgi_pass unix:/var/www/mywebsite.com/django.sock;
}
}
app_uwsgi.ini
[uwsgi]
plugins = python
; define variables to use in this script
project = myapp
base_dir = /var/www/mywebsite.com
app=reloc
uid = www-data
gid = www-data
; process name for easy identification in top
procname = %(project)
no-orphans = true
vacuum = true
master = true
harakiri = 30
processes = 2
processes = 2
pythonpath = %(base_dir)/
pythonpath = %(base_dir)/src
pythonpath = %(base_dir)/src/%(project)
logto = /var/www/logs/uwsgi.log
chdir = %(base_dir)/src/%(project)
module = reloc.wsgi:application
socket = /var/www/mywebsite.com/django.sock
chmod-socket = 666
chown-socket = www-data
更新1:因此,看起來,它不是uwsgi,但保留一定的速度更快的數據結構蟒蛇過程處理。