大神们帮忙看看Java通信机运行所耗内存,提提优化建议!!谢谢了!

发布于 2021-11-18 16:24:29 字数 2055 浏览 734 评论 27

    程序为高清卡口摄像机车牌识别服务,为Server端。

    目前有将近80台高清卡口摄像机通过3G路由器连接本服务。

    每张图片大概3,4百KB,每天接收图片数据量大概十几个GB。

    还需要做计算空车位的处理,还有每分钟一次的心跳检测。

    通过JNA调用DLL监听数据接收,上次重启服务时间10月30日。

    以下为当前11月14日14点38分(非早晚高峰期)占用CPU和内存使用情况

    大神们,帮我看看这些情况怎么样,给我提提优化的建议。

    系统是 windows server 2008

    数据库为 sql server 2005

    连接池为 proxool

    我感觉占用内存有点高,而且是每日递增,线程数也有点多。


permGen

eden space

survivor space

perm gen


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(27

背叛残局 2021-11-23 19:17:58

原来是这个原因啊,我说怎么虚拟机只能识别4G呢。。。

瑾兮 2021-11-23 19:17:58

回复
系统64的 JDK 32的

够钟 2021-11-23 19:17:58

32 还是64系统啊 还有jdk 32位还是 64位的额

嘦怹 2021-11-23 19:17:58

p
roxool 不是最渣的连接池么?

如此安好 2021-11-23 19:17:58

回复
太不好意思,我有点事处理

终陌 2021-11-23 19:17:58

回复
又贴了三张图!

最偏执的依靠 2021-11-23 19:17:58

回复
好,刚到公司,稍等!

屌丝范 2021-11-23 19:17:58

回复
tenured gen 的图哈

心舞飞扬 2021-11-23 19:17:58

额。。。本来用的是DBCP,后来在本地可以,到服务器上获取不到数据源,就换了。。。。

归途 2021-11-23 19:17:58

首先permgen 设置大了  128m就行 ,然后 基本 老年代 是没有东西的 占用小而且 full gc基本没发生看图觉得 , 所以 可以调下 老年代跟 新生代比率 ,让新生代 大点,这样minor gc就少了, 再看新生代 基本 都是 满了触发的 minor gc, 加大点 新生代 内存 可以 减少 minor gc次数,而且 大部分 全是临时对象, minor gc一下就没了, 基本没有 存活到 老年代的

上面 是我 看到图 想说的 , 新生代 老年代 比率还是 不调好 默认 1:2,可以试试1:1的其实,然后32位 jdk,可以识别3g多,堆感觉2g就好,然后多核的话新生代用个并行收集器 pernew gc

-Xms2048m -Xmx2048m -XX:PermSize=128M -XX:+UseParNewGC 

设置更大新生代比率 下面就是

-XX:NewRatio=1

这些调优 可以减少 gc时间,最大限度利用硬件资源吧,其他感觉没啥作用了

伪装你 2021-11-23 19:17:58

回复
现在 jvm多久 minor gc一次啊,有没有卡顿现象,能 在发个 截图不

岁月打碎记忆 2021-11-23 19:17:58

我得好好学学你说的这些。。。

平定天下 2021-11-23 19:17:57

回复
tenured gen 的图哈 ,明天 给回复把, 我今天 好好仔细看下的哈 好不,不用等我了就= =

白龙吟 2021-11-23 19:17:57

|等吃完饭再搞吧!辛苦了!

睫毛上残留的泪 2021-11-23 19:17:56

GC参数用的是什么? 要不把JVM的参数贴出来大家一起看下?

空城仅有旧梦在 2021-11-23 19:17:56

回复
PermSize=512M设大了 ,发个 jconsole 新生代 老年代图吧 看看 minor gc 跟 full gc 时间 真心 可以优化的啊 亲

最偏执的依靠 2021-11-23 19:17:56

我的年轻态是这样设置的。 java -Xms1024m -Xmx1024m -XX:PermSize=512M -cp ..... 16GB的内存我不明白为什么只能设置这些,设置大了程序就会报错。

小情绪 2021-11-23 19:17:56

jconsole里面有  新生代 老年代 的图,我看到你堆内存每次回收后都很小,也就是说 老年代可能使用很少 大部分都是 一次mini gc 就全回收了  你那样参数 还能优化的 ,发个 新生代 老年代图吧   我再看遍书 等我下好吧

酷到爆炸 2021-11-23 19:17:52

图片是直接从DLL中拿到字节数组然后存入本地硬盘,我确实不太会表达,就是感觉内存占用的太高,设置的年轻态都用光了估计程序就挂掉了,还有用360清理内存后程序也会挂掉,报致命错误。

酷到爆炸 2021-11-23 19:17:02

回复
360优化不要用,他会关掉服务的

情栀口红 2021-11-23 19:16:12

描述的程序不清楚,相帮也没法帮啊,图片分析用的java吗?nio 还是啥?还是java从dll里面拿到结果,不跟图片打交道?

简单气质女生网名 2021-11-23 16:55:41

有好心大神来看看吗?

冷清清 2021-11-23 16:28:36

回复
我理解错了 = =| 不要给我了 浪费你时间了 是我理解错了 permgen 我以为 permgen是老年代的

兮颜 2021-11-23 16:17:34

不好意思哈

酷到爆炸 2021-11-23 15:42:46

回复
已经修改帖子了。。。手动执行GC回收没反应。。

眼眸里的那抹悲凉 2021-11-23 15:30:12

回复
不再的,我没怎么用过,没有的,只有堆的

冬天旳寂寞 2021-11-21 22:06:07

回复
嗯嗯,谢谢,学习了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文