java 监听端口_java游戏服务器检查报告(经验分享)

java在centos系统运行,经过大量用户使用后,我们使用那些监听手段来判断服务器是否达到我们理想要求呢,判断服务器使用可以继续使用呢?

33028faf13e0e97b0bc9bac3f45a6db0.png

我们以进程PID9496(监听端口:9624)为对象说明,启动时间为2019年4月2日,至今天,已经运行了半个月以上了。

首先使用top命令,监控该进程运行环境情况,查看整个系统空闲内存和cup,查看该进程本身内存和cup使用情况。

启动初期表现:

83421557588b6162c55c7d98375adb7b.png

运行1周表现:

347945bfa83814215bcef7fb95969f2d.png

半月表现:

d3a5f4f29ef4ab8afc7138c31ab0af23.png

通过这三张图表现,内容和cup都控制的非常好,没有出现内存堆积情况(有人说java不能考虑内存泄漏的问题,因为有自己垃圾回收机制,只能说明他对java不够了解)。如果发现内存持续递增,就需要通过jmap来分析(以前文章《上线项目:java服务器内存爆满导致宕机-实操方法》,过了这里就不说了)。

除了监控进程本身运行情况,还要查看tcp连接情况。

命令:netstat -tn |grep 9624 (依照实际端口为列)

b1d20e1b6349eac9b140650075b24d5d.png

分析这些连接是真正用户还是用户已经断开了,但是服务器却没有回收的,如果发现大量残存tcp连接,说明了服务器代码中,没有关闭socket连接,处理这个bug就好看编程人员的经验和功底了(希望大家遇到了都可以很好处理)。

命令:netstat -an | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'

c25d6da5baf7db98ba22f9a9672e5a19.png

使用这个命令查看所有的网络连接情况,特别注意两个close_wait和time_wait的数据,如果是过高,请参照我以前文章 《centos7.4内核调优,tcp单服务器万级并发》 内核调优。

最后感谢各位的阅读。

c63a15280407828b077f741931ff95b0.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值