Python 在vps服务器上优化Django应用程序
关于如何优化vps内存使用,有什么好的教程或方法吗?我的内存正在耗尽。我在digitalocean 512mb vps ram上托管了Django+Uwsgi+Nginx,并使用MySQL作为数据库。我有两个网站,其中一个只是托管,没有活动正在进行,而第二个,活动正在进行,但不多。它就像一个房地产网站 我运行这个命令行代码: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
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
。对于系统的约束,您很可能过度指定了这两种约束。