Re: 回复:Need Information for memory sharing with AppCDS
Ioi Lam
ioi.lam at oracle.com
Fri Mar 13 18:16:39 UTC 2020
I usually use ps_mem.py
https://github.com/pixelb/ps_mem/blob/master/ps_mem.py
java -cp ... app1 &
java -cp ... app2 &
ps_mem.py | grep java
Thanks
- Ioi
On 3/13/20 12:28 AM, 向伟(识月) wrote:
> Hi Jiangli, Ioi,
>
> Another question about the memory sharing with AppCDS:
> How to evaluate memory savings when multiple processes use the same
> archiving file?
>
> Thanks,
> Wei Xiang
>
> ------------------------------------------------------------------
> 发件人:向伟(识月) <shiyue.xw at alibaba-inc.com>
> 发送时间:2020年3月10日(星期二) 10:39
> 收件人:Jiangli Zhou <jianglizhou at google.com>
> 抄 送:hotspot-runtime-dev
> <hotspot-runtime-dev-bounces at openjdk.java.net>;
> hotspot-runtime-dev <hotspot-runtime-dev at openjdk.java.net>
> 主 题:回复:Need Information for memory sharing with AppCDS
>
> Hi Jiangli,
>
> Thanks a lot for the detailed information. It's clear to me.
>
> Thanks,
> Wei Xiang
> ------------------------------------------------------------------
> 发件人:Jiangli Zhou <jianglizhou at google.com>
> 发送时间:2020年3月10日(星期二) 00:50
> 收件人:向伟(识月) <shiyue.xw at alibaba-inc.com>
> 抄 送:hotspot-runtime-dev
> <hotspot-runtime-dev-bounces at openjdk.java.net>;
> hotspot-runtime-dev <hotspot-runtime-dev at openjdk.java.net>
> 主 题:Re: Need Information for memory sharing with AppCDS
>
> Hi,
>
> On Sun, Mar 8, 2020 at 11:56 PM 向伟(识月) <shiyue.xw at alibaba-inc.com> wrote:
> >
> > Hi Ioi,
> >
> > Thanks a lot for your information.
> > I have the question about the usage in the document:
> > For common class path prefix:
> > ---------------------------------------
> > Run the Hello and Hi applications with the same shared archive:
> > java -XX:SharedArchiveFile=common.jsa -cp common.jar:hello.jar:hi.jar Hello
> > java -XX:SharedArchiveFile=common.jsa -cp common.jar:hello.jar:hi.jar Hi
> >
> > If a class with name ABC is both in hello.jar and hi.jar, the content is different.
> > With the class path -cp common.jar:hello.jar:hi.jar, the second run "java .. Hi" can't load the correct class ABC in hi.jar.
> >
>
> For the above usage, I'd recommend to only archive the classes from
> common.jar to create a common.jsa. The common.jsa can be used for both
> applications for sharing. As described in the earlier email, the
> follow two conditions must be true to achieve sharing:
>
> - Both processes must be running with the same JVM binary
> - Both processes must be memory mapping using the same copy of common.jsa.
>
> If each container uses a different copy of the common.jsa, then there
> is no memory sharing.
>
> > Is there any solution for this usage?
>
> I'd recommend to not include ABC in the common.jsa in this case.
>
> Hope that helps.
>
> Best,
> Jiangli
> >
> > Thanks,
> > Wei Xiang
> > ------------------------------------------------------------------
> > 发件人:Ioi Lam <ioi.lam at oracle.com>
> > 发送时间:2020年3月9日(星期一) 13:03
> > 收件人:hotspot-runtime-dev <hotspot-runtime-dev at openjdk.java.net>
> > 主 题:Re: Need Information for memory sharing with AppCDS
> >
> > On 3/8/20 8:51 PM, 向伟(识月) wrote:
> > > Hi,
> > >
> > > We am trying to take advantage of the characteristics of memory sharing with AppCDS, and we expected that the
> > > JVM internal packages and common packages can be shared with AppCDS.
> > >
> > > In the user scenario, there are some common base packages for different Java processes with "-cp common_path"
> > > Process A: -cp common_path:pathA
> > > Process B: -cp common_path:pathA:pathB
> > > Process C: -cp common_path:pathC
> > >
> > > I check the code in JDK11, and it uses SharedPathsMiscInfo to do the consistency check for class path.
> > > The below usage can work in JDK11
> > > Dump stage:
> > > -cp common_path
> > >
> > > Runtime stage:
> > > -cp common_path:new_path
> > >
> > > But I find that SharedPathsMiscInfo has been removed in the latest JDK code.
> > >
> > > I need the information:
> > > 1. the new flow to do the consistency check.
> > > 2. constraint condition about the memory sharing among the different Java processes.
> > >
> > > Is there any user guide to use the memory sharing feature for AppCDS?
> >
> > Hi Wei,
> >
> > The topic of sharing the same CDS archive between different apps that
> > have the same classpath prefix can be found here:
> >
> >
> https://docs.oracle.com/en/java/javase/13/docs/specs/man/java.html#application-class-data-sharing
> >
> > See the section "Sharing a Shared Archive Across Multiple Application
> > Processes".
> >
> > SharedPathsMiscInfo was removed in this RFE in JDK 14:
> > https://bugs.openjdk.java.net/browse/JDK-8227370
> >
> > However, we still enforce the same set of consistency checks as previous
> > JDK versions.
> >
> > Please let me know if you have further questions.
> >
> > Thanks
> > - Ioi
> >
> > > Thanks,
> > > Wei Xiang
> >
>
>
More information about the hotspot-runtime-dev
mailing list