1

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

我运行这个命令行代码: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 这可能是吃内存的一部分吗?

当我运行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
4

1 回答 1

1

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

uWSGI 和 Nginx 非常高效。Django 并不精简,但内存使用也高度依赖于您的应用程序。如果您要加载很多模块,那将考虑您的内存使用情况。

运行free -m并不能真正告诉我们哪些进程占用的内存最多。的输出怎么样ps ax,还是看透了top

于 2013-07-14T05:07:11.583 回答