Effective warmup strategy for Nashorn - JDK-8u40-b25
Kunal Cholera
kcholera at linkedin.com
Wed Mar 11 02:05:38 UTC 2015
zip location - https://drive.google.com/file/d/0B5PpdCJ7YycqMWlVQ0FsNlozcTA/view?usp=sharing
________________________________________
From: nashorn-dev [nashorn-dev-bounces at openjdk.java.net] on behalf of Kunal Cholera [kcholera at linkedin.com]
Sent: Tuesday, March 10, 2015 6:52 PM
To: nashorn-dev at openjdk.java.net
Subject: Effective warmup strategy for Nashorn - JDK-8u40-b25
Hello Nahsorn dev team,
Currently our warmup strategy does the following - before our application starts serving request to real users we create 24 Nashorn instances. We are limiting to 24 as we have 24 CPU cores per machine in production. We then load the javascript files into this nashorn instances to setup the context for javascript execution. We then execute each of these javascript 2000 times with mock data to warmup the execution times.
We have observed it takes about 4000 iterations[1] to reach optimal performance. See the graph here that shows 4000 javascript executions on 1 javascript file -
https://drive.google.com/file/d/0B5PpdCJ7YycqbDJBWGRRVjRsYVU/view?usp=sharing
Three questions
1.What is the best way to quickly warm-up to reach optimal performance in fewer iterations ?
2. Is there a better way to warmup using fixture data as opposed to fake data which we have to maintain ?
3. Is there a way to clone 1 nashorn instances that is warmed up so that we can avoid doing the same warmup for other nashorn instances ?
[1]
Steps to reproduce these performance numbers -
Download this zip https://drive.google.com/file/d/0B5PpdCJ7YycqMWlVQ0FsNlozcTA/view?usp=sharing which has the following four files
1. bench.js - the benchmarking script
2. hp.js - the javascript we want to execute on Nashorn
3. hp.json - the data we want to use while executing our script hp.js
4. dust-full.js - library needed to execute hp.js script
I am using "1.8.0_40-ea" Java(TM) SE Runtime Environment (build 1.8.0_40-ea-b25 on 8 core redhat linux machine ).
Please advise.
Thanks
Kunal Cholera
More information about the nashorn-dev
mailing list