私はPython Apple MDMサーバーを持っています。コマンドラインプロセスからNginxとuWSGIを使ってホストされるように変換しようとしています。私はルーティングのためにweb.pyを使用しています。すべてのことが円滑に実行されています。私はNginxとuWSGIの両方にとって良い基本設定と思われるものを持っていますが、今日の午前中は24時間以内に実行した後、サーバーが受信するすべてのリクエストでこのエラーが発生します。たくさんのメモリがあり、64ビット版のPythonを使っています。Nginx、uWSGI、web.pyを使ったMemoryError
EDIT1:SSLトラフィックをそのポートにルーティングするロードバランサがあるため、SSLはポート8080で話しています。
EDIT2:uWSGIのプロセス設定を3から1に変更して、それが問題かどうかを確認しました。
EDIT3:AWSの新鮮な箱です。私のサーバーとその依存関係、nginx、およびuWSGIをインストールしました。サービスとしてuWSGIを実行することに問題があり、最終的にsystemd
を実行しているpip
バージョンを取得する前に、とpip
バージョンをインストールしてアンインストールしました。それが今実行されていて、正常に停止、開始、再起動しています。
home = /path/to/app/virtualenv/
chdir = /path/to/app/
module = server:application
logto = /var/log/uwsgi/%n.log
rlogdate = [ %%a %%b %%d %%Y %%H:%%M:%%S ]
logformat = %(method) %(status) %(addr) %(uri) wid: %(wid)
log-encoder = format ${strftime:[ %%a %%b %%d %%Y %%H:%%M:%%S ]} ${msgnl}
gid = ubuntu
uid = ubuntu
vhost = false
socket = 127.0.0.1:9000
master = true
processes = 3
harakiri = 20
limit-as = 128
memory-report
no-orphans
のini
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
サイト対応
server {
listen 80;
location ^~ /static/ {
root /path/to/app/;
}
location/{
include uwsgi_params;
uwsgi_pass 127.0.0.1:9000;
}
}
server {
listen 8080;
ssl on;
ssl_certificate /path/to/app/certs/ssl.crt;
ssl_certificate_key /path/to/app/certs/ssl.key;
location ^~ /static/ {
root /path/to/app/static/;
}
location/{
include uwsgi_params;
uwsgi_pass 127.0.0.1:9000;
uwsgi_param UWSGI_CHDIR /path/to/app/;
uwsgi_param UWSGI_PYHOME /path/to/app/virtualenv/;
uwsgi_param UWSGI_SCRIPT server;
}
}
uWSGI nginx.conf
[ Tue Jun 14 2016 10:29:22 ] Traceback (most recent call last):
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 237, in process
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 565, in processor
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 77, in reload_mapping
MemoryError
[ Tue Jun 14 2016 10:29:22 ]
[ Tue Jun 14 2016 10:29:22 ] Traceback (most recent call last):
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 237, in process
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 566, in processor
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 237, in <lambda>
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 246, in process
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 477, in internalerror
MemoryError
[ Tue Jun 14 2016 10:29:22 ]
[ Tue Jun 14 2016 10:29:22 ] Traceback (most recent call last):
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 237, in process
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 581, in processor
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 237, in <lambda>
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 246, in process
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 477, in internalerror
MemoryError
[ Tue Jun 14 2016 10:29:22 ]
[ Tue Jun 14 2016 10:29:22 ] Traceback (most recent call last):
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 237, in process
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 566, in processor
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 237, in <lambda>
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 246, in process
File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 477, in internalerror
MemoryError
[ Tue Jun 14 2016 10:29:22 ]
[ Tue Jun 14 2016 10:29:22 ] Traceback (most recent call last):
[ Tue Jun 14 2016 10:29:22 ] File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 279, in wsgi
[ Tue Jun 14 2016 10:29:22 ] [ Tue Jun 14 2016 10:29:22 ] result = self.handle_with_processors()
[ Tue Jun 14 2016 10:29:22 ] File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 249, in handle_with_processors
[ Tue Jun 14 2016 10:29:22 ] [ Tue Jun 14 2016 10:29:22 ] return process(self.processors)
[ Tue Jun 14 2016 10:29:22 ] File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 246, in process
[ Tue Jun 14 2016 10:29:22 ] [ Tue Jun 14 2016 10:29:22 ] raise self.internalerror()
[ Tue Jun 14 2016 10:29:22 ] File "/path/to/app/virtualenv/local/lib/python2.7/site-packages/web/application.py", line 477, in internalerror
[ Tue Jun 14 2016 10:29:22 ] [ Tue Jun 14 2016 10:29:22 ] import debugerror
[ Tue Jun 14 2016 10:29:22 ] MemoryError[ Tue Jun 14 2016 10:29:22 ]
私は偶然システム管理者のかなり悪いケースを持っていると言われてきましたシンドローム、ので、すべてのヘルプ/アドバイスはありがたいですd。ちょうど良い測定のためにここでは、あなたのuWSGIの.iniでmax-requests
設定されていませんproc/meminfo
MemTotal: 7657772 kB
MemFree: 5971508 kB
MemAvailable: 7145084 kB
Buffers: 225528 kB
Cached: 900756 kB
SwapCached: 0 kB
Active: 1142912 kB
Inactive: 358288 kB
Active(anon): 380568 kB
Inactive(anon): 11956 kB
Active(file): 762344 kB
Inactive(file): 346332 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 48 kB
Writeback: 0 kB
AnonPages: 375008 kB
Mapped: 55840 kB
Shmem: 17616 kB
Slab: 129300 kB
SReclaimable: 106084 kB
SUnreclaim: 23216 kB
KernelStack: 3120 kB
PageTables: 6672 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3828884 kB
Committed_AS: 602572 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 143360 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 71680 kB
DirectMap2M: 7923712 kB
本当に不思議です。 64ビットOSとpython、harakiriが有効になっています。 ulimit? –
私はulimitに精通していませんが、少し読んでコマンドを実行しました。それは無制限に戻った。だから、私は利用可能なリソースや何かを制限していません。さらに関連性のある情報を少し追加した別の編集を追加する。 –
ああ、私はそれを得たと思う。 uWSGI .iniに 'max-requests'が設定されていません。したがって、あなたのPythonインタプリタは永遠に生きていて、ゴミが溜まるかもしれません。それを何かに設定してみてください。うまくいけば、漏れは止まるでしょう。 –