I have a node.js app that uses node-java to invoke a Java class and then calls a method in that class. That Java class is a wrapper around a commercial product API. I posted most of my node.js app here:
Critique for node.js+node-java application that interfaces with a COTs product?
Meanwhile, I've deployed/installed node.js and node-java on two test systems. One (the original one) is CENTOS 7 and the newer one is CENTOS 6. The reason I did the CENTOS 7 installation first was because CENTOS 7 had the right gcc/g++ for node-java, and then after I got things working on CENTOS 7, I circled back to CENTOS 6 and figured out how to upgrade the gcc/g++.
Now, I'm running some load testing on this node.js+node-java app and the tests run fine on the CENTOS 7 target. But, on the app running on CENTOS 6, the Jmeter test runs ok ONCE, but if I try to re-run the Jmeter tests, it just runs super slowly.
If I reboot the CENTOS 6 system and run the Jmeter test against that, it again works ok the first run, but then is slow for any subsequent runs.
I don't think it actually gets any errors, but it's super slow.
The virtual machines for both the CENTOS 6 and the CENTOS 7 systems are the same, 2 processors, and 4096 MB memory.
I can't figure out what might be happening so I was hoping someone here might have some ideas?
Thanks, Jim
EDIT 1: I think that I've realized/found several things about the CENTOS 6 system:
That system has configuration settings that are done for an Oracle database installation. Sorry, I forgot about this before, but I got this CENTOS 6 system by cloning a BASE CENTOS 6 image that I keep around for installing test Oracle databases. I don't remember exactly what the configuration changes are, but they are the "prerequisites" that the Oracle database installer checks for, and I vaguely recall that those include a bunch of kernel parameters, so those settings may be part of the problem I'm seeing when I run my Node.js+node-java app on the CENTOS 6 system, whereas I don't see those problems when I run the same Node.js+node-java app on the CENTOS 7 system. NOTE that the CENTOS 7 system is a "vanilla" CENTOS 7 that I installed from scratch and doesn't have any tweaks other than the defaults.
As I said some of the CENTOS 6 Oracle Db tweaks may be causing the weird behavior I'm seeing when testing Node.js+node-java app with CENTOS 6, whereas no problem when I run the same app with CENTOS 7. Here's a behavior that I'm noticing on the CENTOS 6 system:
After I run the Jmeter test, if I kill the node.js app, I see a bunch of connections still on port 8080. These are all in TIME_WAIT state. If I wait until all those connections disappear AND THEN I start the node.js app and then run a Jmeter test, it works correctly. That was probably why, when I rebooted the CENTOS 6 system between Jmeter test runs, they worked ok.
- So I'm now deploying a new CENTOS 6 system from the CENTOS DVD directly rather than doing a clone. I will try setup my test on that new CENTOS 6 after that and see if it behaves "normally".