阿里云 Ubuntu14.04, 内存跑完了如何处理?

2017-01-17 19:21:39 +08:00
 ywt474000158
登入的时候显示"Could not load list of meta packages: [Errno 12] Cannot allocate memory"
但是使用 top 命令只有 mysqld 占用 2.5%, 完全不知道内存被谁跑完了.
使用 cat /proc/meminfo 显示如下:
MemTotal: 8176676 kB
MemFree: 123476 kB
Buffers: 308 kB
Cached: 6908 kB
SwapCached: 0 kB
Active: 7758148 kB
Inactive: 5932 kB
Active(anon): 7757392 kB
Inactive(anon): 932 kB
Active(file): 756 kB
Inactive(file): 5000 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 216 kB
Writeback: 4 kB
AnonPages: 7757144 kB

使用 free 显示:
total used free shared buffers cached
Mem: 8176676 8055952 120724 1180 1688 7824
-/+ buffers/cache: 8046440 130236
Swap: 0 0 0

缓存使用的是 redis + memcache, 请大大们指点下如何排查和清理
3465 次点击
所在节点    Linux
8 条回复
TimLang
2017-01-17 19:23:26 +08:00
swap 怎么可以不设
srx1982
2017-01-17 19:29:25 +08:00
先搞个 swap 凑合用,然后找原因,不行就重装吧。。
qzf
2017-01-17 19:45:46 +08:00
查看内存消耗最多的前 10 个进程 : ps auxw|head -1;ps auxw|sort -rn -k4|head -10
找下原因。
spice630
2017-01-17 20:34:48 +08:00
找客服呀
ywt474000158
2017-01-17 20:52:40 +08:00
感谢各位大大啦. 就服务着两百个人, 晚上直接卡的输不了命令.

没办法就重启了实例, 然后各种服务起了一遍. 被骂惨了...

再研究研究 swap 看明天能不能好一点吧.
dengshuang
2017-01-17 22:44:51 +08:00
我就是定期重启 mysql 和 httpd 就好了,具体问题我也不是很知道
TankyWoo
2017-01-17 23:07:02 +08:00
像阿里云这种磁盘需要额外买的,如果本地磁盘空间够用,直接 dd 一个文件,然后把文件做 swap 吧。不过针对你的业务(redis 等),靠 swap 会影响性能。

所以最终还是需要排查 mem 被哪些资源占用,如果有问题就解决,如果是资源不够就加资源。 htop/atop 对你来说可能简单些
scalaview
2017-01-18 10:29:01 +08:00
开虚拟内存 swap 都没有

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

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

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

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

© 2021 V2EX