onlyliuxin / coding2017

218 stars 643 forks source link

线上内存泄漏问题排查 #563

Open ddyblackhat opened 7 years ago

ddyblackhat commented 7 years ago

目前我们线上服务器有内存泄漏,一天1G内存吃没了, 该怎么排查和定位问题?现在临时办法就是监控内存,内存快没的时候重启机器

gqipan commented 7 years ago

刚好前几天也遇到了线上事故, 像这种问题, 如果有多台服务器,首先查看该应用的服务器的负载均衡是否持续增高。 如果是持续性增高。 查看另一台机是否正常,或者负载特别低, 如果出现负载特别低的情况,那么就该分析,为啥单击过载更高的问题了。 Nignx分流是否均衡,或者你某一台机的服务挂了。

如果不是这些原因, 就需要在内存泄露的时候,要运维帮你dump内存log, 用Eclipse MAT,分析你的泄露的是那一块代码了。 这个就比较实际了。

ddyblackhat commented 7 years ago

@MrGPanPan 谢谢,

我们7台机器都是这样的,应该是内存泄漏导致的。 2017-08-18 14:10:02 物理内存可用: 2810M 缓冲区可用: 14150M Swap分区可用: 16383M CPU已用:1.0% CPU可用:98.6%,运维写的脚本中 缓冲区中是有内存的,但是不从列表读,不知道咋回事, 我去查查 dump文件 看看怎么搞,回头再问你