Python 在vps服务器上优化Django应用程序

Python 在vps服务器上优化Django应用程序,python,mysql,django,nginx,vps,Python,Mysql,Django,Nginx,Vps,关于如何优化vps内存使用,有什么好的教程或方法吗?我的内存正在耗尽。我在digitalocean 512mb vps ram上托管了Django+Uwsgi+Nginx,并使用MySQL作为数据库。我有两个网站,其中一个只是托管,没有活动正在进行,而第二个,活动正在进行,但不多。它就像一个房地产网站 我运行这个命令行代码:free-m,它输出: total used free shared buffers cached Mem: 491 406

关于如何优化vps内存使用,有什么好的教程或方法吗?我的内存正在耗尽。我在digitalocean 512mb vps ram上托管了Django+Uwsgi+Nginx,并使用MySQL作为数据库。我有两个网站,其中一个只是托管,没有活动正在进行,而第二个,活动正在进行,但不多。它就像一个房地产网站

我运行这个命令行代码:
free-m
,它输出:

total               used free shared buffers cached
Mem: 491            406  85    0      17     108
buffers/cache:      280 210
Swap:                0   0     0
另一件事是,对于这两个站点,uswgi正在监听不同的端口:127.0.0.1:8888和127.0.0.1:8889这可能是影响ram的部分原因吗

当我运行
top
时,它会显示以下内容:

Tasks:  70 total,   1 running,  69 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    503520k total,   410436k used,    93084k free,    18920k buffers
Swap:        0k total,        0k used,        0k free,   111772k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
6381 meey    20   0 17320 1188  900 R  0.3  0.2   0:00.09 top
1 root      20   0 24336 2132 1256 S  0.0  0.4   0:00.70 init
2 root      20   0     0    0    0 S  0.0  0.0   0:00.08 kthreadd
3 root      20   0     0    0    0 S  0.0  0.0   0:00.42 ksoftirqd/0
5 root      20   0     0    0    0 S  0.0  0.0   0:00.12 kworker/u:0
6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
7 root      RT   0     0    0    0 S  0.0  0.0   0:05.04 watchdog/0
8 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 cpuset
9 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 khelper
10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kdevtmpfs
11 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 netns
12 root      20   0     0    0    0 S  0.0  0.0   0:02.12 sync_supers
13 root      20   0     0    0    0 S  0.0  0.0   0:00.05 bdi-default
14 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kintegrityd
15 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kblockd
16 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 ata_sff
17 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khubd
更多:

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
790 root      20   0  333m 129m 3992 S  0.0 26.3   2:52.59 uwsgi-core
635 mysql     20   0  870m  51m 4124 S  0.0 10.4   1:43.62 mysqld
649 www-data  20   0 63520 2436  920 S  0.0  0.5   0:30.02 nginx
779 root      20   0  124m  14m 3176 S  0.0  3.0   0:24.84 uwsgi-core
780 root      20   0  124m  14m 3176 S  0.0  3.0   0:24.30 uwsgi-core
647 www-data  20   0 63520 2592  944 S  0.0  0.5   0:21.78 nginx
648 www-data  20   0 63520 2436  920 S  0.0  0.5   0:21.72 nginx
646 www-data  20   0 63520 2568  916 S  0.0  0.5   0:20.87 nginx
602 root      20   0 84160 2148 1520 S  0.3  0.4   0:19.70 uwsgi
600 root      20   0 84160 2140 1520 S  0.0  0.4   0:19.09 uwsgi
606 root      20   0 84116  820  192 S  0.0  0.2   0:12.08 uwsgi
603 root      20   0 84116  820  196 S  0.0  0.2   0:11.99 uwsgi
7 root      RT   0     0    0    0 S  0.0  0.0   0:05.05 watchdog/0
789 root      20   0  221m  29m 3956 S  0.0  6.1   0:03.58 uwsgi-core
12 root      20   0     0    0    0 S  0.0  0.0   0:02.12 sync_supers
402 syslog    20   0  243m 1224  904 S  0.0  0.2   0:01.90 rsyslogd
624 root      20   0 19112 1000  768 S  0.0  0.2   0:00.93 cron

吞噬你记忆的是MySQL。在运行数据库服务器时,您只能执行这么多的性能管理。它们被设计成为了性能而消耗内存

uWSGI和Nginx非常高效。Django并不精干,但内存使用也高度依赖于你的应用程序。如果您正在加载大量模块,这将说明您的内存使用情况


运行
free-m
并不能真正告诉我们哪些进程占用的内存最多。如何输出
ps ax
,或者查看
top

消耗内存的是MySQL。在运行数据库服务器时,您只能执行这么多的性能管理。它们被设计成为了性能而消耗内存

uWSGI和Nginx非常高效。Django并不精干,但内存使用也高度依赖于你的应用程序。如果您正在加载大量模块,这将说明您的内存使用情况


运行
free-m
并不能真正告诉我们哪些进程占用的内存最多。关于
ps ax
的输出,或者查看
top

我已经添加了上面的顶部输出,请检查它。我已经添加了上面的顶部输出,请检查它。如果你想得到一个好的答案,你需要共享你的uwsgi配置和你的
my.cnf
。很可能您对系统的约束条件都做了过多的指定。如果您想得到一个好的答案,您需要共享您的uwsgi配置和您的
my.cnf
。对于系统的约束,您很可能过度指定了这两种约束。