I'm playing around with jHiccup (
http://www.azulsystems.com/jHiccup) and my assumption was that I can get a "flat line" by isolating CPUs and running it on those CPUs. Curiously I get worse spikes when running on those CPUs.
As you can see from the graphs, both the maximum value and the variance is considerably worse in the isolated case. BTW, the XLS file in the jHiccup archive only works with MS Office 2010 and up. No LibreOffice / older MS Office support which is sad for us Linux folks :-(
Getting back to the test procedure:
- OS: Ubuntu 13.04, Kernel: 3.8.0-25-generic #37-Ubuntu SMP
- CPU: Intel i7-2760QM
- JVM: OpenJDK 7u21-2.3.9-1ubuntu1
- added kernel boot parameters: isolcpus=4,5,6,7
- disable irq balancing: service irqbalance stop
- jHiccup command line: ./jHiccup -r 0 /usr/bin/java org.jhiccup.Idle -t 360000
- jHiccup with taskset: taskset -c 6 ./jHiccup -r 0 /usr/bin/java org.jhiccup.Idle -t 360000
Also, while running jHiccup on the isolated CPUs I got the native thread ID (nid) for HiccupRecorder and moved it to core 7 so that it isn't influenced by other JVM threads. I'm fairly confident in my steps (I double checked each of them in multiple ways - for example by looking at /proc/cmdline for the kernel boot parameter, looking at htop, looking at the output of taskset commands, etc).
Any ideas why running jHiccup on the isolated CPUs gives worse results?
Thanks,
Attila