Erlang内存占用排查流程

使用Erlang搭建游戏服务器时,运维往往会吐槽cpu占用过高、带宽太大或者内存消耗太快,本文总结一下排查内存占用过高的主要思路和流程。

1. 检查进程数

	erlang:system_info(process_count).

看是否有大量的异常进程在耗内存,之前写过一篇博文(点我查看文章)记录过一个类似的问题:项目因为错误使用了三方数据库连接池,连接进程异常重启,产生了大量的数据库连接耗尽mysql连接池。

进程数量过大的话,就要找出没有被链接或者被监控的“孤儿进程”:

	[P || P<-processes(),
    	[{_,Ls},{_,Ms}] <- [process_info(P,[links,monitors])],
    	[]==Ls,[]==Ms].

或通过

	supervisor:count_children/1

查看sup下进程数量和状态。

2.查看节点内存分配情况

	erlang:memory().

输出(单位是byte):

[{
   total,361896384},
 {
   processes,135616968},
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值