VPS 内存吃紧了怎么办?

2014-03-31 19:44:29 +08:00
 yakiang
VPS现在有 2G 内存 + 2G swap,但一周时间就全部吃完了。
日均PV也就200左右,后端用的 Nginx + uWsgi(2 processes) + Flask,数据库使用 sqlite + redis。
http://bcs.duapp.com/wxtuku/IoR7Avawb2.png
一开始我以为 linux 有比较 smart 的内存管理就一直没管它,直到 ssh 都进不去了……
首页还是可以访问,但对一些需要访问数据库的 POST 请求就无法正常response了。
所以我想请教各位面对内存越来越少的情况都是怎么处理的?没有经验求轻喷
5645 次点击
所在节点    Python
19 条回复
timothyye
2014-03-31 19:46:13 +08:00
这个pv应该不至于内存不够用
misaka
2014-03-31 19:52:07 +08:00
redis 占了多少啊?
a591826944
2014-03-31 19:56:15 +08:00
512M 阿里云路过。。。不敢装 memcache 不敢装 redis 你就是装太多了
yakiang
2014-03-31 20:12:19 +08:00
@misaka 之前耗光时直接重启了没看redis占了多少。这是重启后按top的结果,不知道那么多个python在做什么
http://bcs.duapp.com/wxtuku/jwqpiZ23WR.png
@a591826944 我以为2g内存加swap应该可以应付redis……
kevinv
2014-03-31 20:14:53 +08:00
kill掉系统没有必要的服务,查看内存占用比较大的程序。日pv200内存还不够用,真是奇了怪了。
misaka
2014-03-31 20:24:40 +08:00
@yakiang 嗯,截图我看了。。。所以说。。。redis 到底占了多少啊?
misaka
2014-03-31 20:28:39 +08:00
你用 htop ,进去以后按 F6 在左侧选择 MEM%,然后回车,再截个图看看?
yakiang
2014-03-31 20:31:09 +08:00
@misaka 这是top下按占用内存大小排序的结果,所以重启后的redis根本没在里面。。。
如果硬要看得话,用ps aux 看到的是这样的
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
redis 787 0.0 0.0 36912 1888 ? Ssl 18:38 0:05 /usr/bin/redis-server

@kevinv 貌似确实后台有很多看不懂在做什么的进程。。。
yakiang
2014-03-31 20:34:10 +08:00
@misaka 我擦,根据htop知道那么多python是什么了,他们都指向之前安装失败的YouCompleteMe的几个文件,我先把插件卸了再重启试试
octopus_new
2014-03-31 21:06:09 +08:00
没三天运行一次:
#sync
#echo 1 > /proc/sys/vm/drop_cache
手动释放cache, 看看有什么变化:)
octopus_new
2014-03-31 21:07:20 +08:00
更正一下 echo 1 > /proc/sys/vm/drop_caches
少了个s
yakiang
2014-04-01 01:25:22 +08:00
@octopus_new 是的,之前有试过这么做,会把 buffers/cache 里的内存释放出来好像。但好像也只是减缓内存被占满的速度而已 :(
VYSE
2014-04-01 02:03:33 +08:00
@yakiang 这个时间top没啥特别的,python也都是共享页只占一点内存。得监控内存上去时候是怎么个情况。
raptor
2014-04-01 09:46:50 +08:00
200PV…我都是用128M内存的VPS跑的…
lang1pal
2014-04-01 10:20:40 +08:00
@octopus_new 我觉得这样没用的吧,因为这样释放的是空闲内存,而这里是占用的swap明显是内存不够了
cevincheung
2014-04-01 13:41:57 +08:00
关机
lm902
2014-04-02 00:24:43 +08:00
升级内存
kaneg
2014-04-02 00:52:17 +08:00
200PV用2G内存,太奢侈了吧,几乎可以肯定是程序有bug
lightening
2014-04-02 01:05:27 +08:00
我觉得看你描述好像是运行很久后占内存越来越大啊,肯定有什么地方内存泄漏了吧。
老进程没杀掉,redis 只储存不 expire 之类的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/106682

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX