gpt4 book ai didi

java - 会影响 Java 内存使用的 Linux 配置?

转载 作者:太空狗 更新时间:2023-10-29 11:20:32 25 4
gpt4 key购买 nike


背景:

我有一组 java 后台工作人员,作为我的 web 应用程序的一部分启动。我在 Ubuntu 10.10 上进行本地开发并部署到 Ubuntu 10.04LTS 服务器(媒体神殿 (ve) 实例)。

它们都运行相同的 JVM:Sun JVM 1.6.0_22-b04。作为初始化脚本的一部分,每个 worker 都以显式 XmxXmsXX:MaxPermGen 设置启动。

然而不知何故,所有 10 个工作人员在本地使用了 250MB,而在服务器上他们使用了超过 2.7GB。

我不知道如何开始追踪它。我认为 Ubuntu(以及内核)版本可能会有所不同,但我尝试了一个旧的 10.04 VM,它的行为符合预期。

我注意到机器似乎从来没有将内存用于缓冲区或缓存(根据 htop),这似乎有点奇怪,但对于服务器来说也许是正常的?


(编辑)一些信息:

(server)
root@devel:/app/axir/target# uname -a
Linux devel 2.6.18-028stab069.5 #1 SMP Tue May 18 17:26:16 MSD 2010 x86_64 GNU/Linux

(local)
wiktor@beastie:~$ uname -a
Linux beastie 2.6.35-25-generic #44-Ubuntu SMP Fri Jan 21 17:40:44 UTC 2011 x86_64 GNU/Linux

(编辑)比较 PS 输出:(ps -eo "ppid,pid,cmd,rss,sz,vsz")

PPID   PID CMD                           RSS    SZ         VSZ
(local)
1588 1615 java -cp axir-distribution. 25484 234382 937528
1615 1631 java -cp /home/wiktor/Code/ 83472 163059 652236
1615 1657 java -cp /home/wiktor/Code/ 70624 89135 356540
1615 1658 java -cp /home/wiktor/Code/ 37652 77625 310500
1615 1669 java -cp /home/wiktor/Code/ 38096 77733 310932
1615 1675 java -cp /home/wiktor/Code/ 37420 61395 245580
1615 1684 java -cp /home/wiktor/Code/ 38000 77736 310944
1615 1703 java -cp /home/wiktor/Code/ 39180 78060 312240
1615 1712 java -cp /home/wiktor/Code/ 38488 93882 375528
1615 1719 java -cp /home/wiktor/Code/ 38312 77874 311496
1615 1726 java -cp /home/wiktor/Code/ 38656 77958 311832
1615 1727 java -cp /home/wiktor/Code/ 78016 89429 357716

(server)
22522 23560 java -cp axir-distribution. 24860 285196 1140784
23560 23585 java -cp /app/axir/target/a 100764 161629 646516
23560 23667 java -cp /app/axir/target/a 72408 92682 370728
23560 23670 java -cp /app/axir/target/a 39948 97671 390684
23560 23674 java -cp /app/axir/target/a 40140 81586 326344
23560 23739 java -cp /app/axir/target/a 39688 81542 326168

它们看起来非常相似。事实上,现在的问题是,如果我将服务器上的虚拟内存使用量 (3.2GB) 加起来,它是否更接近地反射(reflect)了 2.4GB 的内存使用量(根据 free),但在本地使用的虚拟内存加起来高达 4.7GB,但实际上只使用了 ~250MB。似乎内存没有被积极共享。 (如果可能的话)

谢谢你的帮助,

维克托

最佳答案

据我所知,服务器上的“java -server”选项是默认的,也许这会带来这个问题。尝试在客户端上使用 -server 选项运行

关于java - 会影响 Java 内存使用的 Linux 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com