Skip to main content

Use 64 bit data model JVM on Sun X Solaris

Goal: Either to determine the bit width in a Java program or use a 64 bit data model JVM.
OS: SunX Solaris 64 bit OS.
  1. First of all install 32 bit JDK/JRE (steps 1 and 2 are valid for JDK 1.6)
  2. Then add 64 bit packages over it. This will convert the JDK to work in both 32 bit and 64 bit modes (but 32 bit is still default).
  3. To test it for 32 bit, run $ java -version
  4. To test it for 64 bit, run $ java -d64 -version
  5. In ant binary file (in bin folder of apache-ant) add line ANT_OPTS="$ANT_OPTS -d64"
  6. If you do not want to change ant binary file, then you can set the environment variable every time you run the ant command. For e.g. setenv ANT_OPTS -d64
  7. Next you add instructions in build.xml file used by ant. In Java/JUnit tags, add property clonevm="true" if you have fork="true" property. This will clone the same VM environment for all forked processes, as for ant process itself. clonevm will not have any effect if fork is false.
  8. Run you ant target.
Following is the code example:
class JVMBitSize
  private static int jvmBit = 32;
  public static void main(String args[])
    String sysProp = System.getProperty("");
    if(sysProp != null) {
      try {
        jvmBit = Integer.parseInt(sysProp.trim());
        System.out.println("JVMBit = " + jvmBit);
      } catch(NumberFormatException e) {

<project name=" JVMBitSize " default="run" basedir=".">
  <path id="JVMBitSize.classpath">
    <path location="${basedir}"/>
  <target name="compile">
    <javac srcdir="."/>
  <target name="run" depends="compile">
    <echo level="info" message="JVM bit size in ant, before java task: ${}"/>
    <java classname=" JVMBitSize" fork="true" clonevm="true">
      <classpath refid="JVMBitSize.classpath"/>

#So that 64 bit data model of JVM is used and no java.lang.OutOfMemoryError exceptions are thrown
ANT_OPTS="$ANT_OPTS -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -d64"

To run program:
$ant run


Anonymous said…
thanks for sharing.
Connor Harley said…
I was pretty clueless at first but I asked my brother and boom! Thanks for this.
Anonymous said…
This comment has been removed by a blog administrator.

Popular posts from this blog

ElasticSearch max file descriptors too low error

ElasticSearch 5.x requires a minimum of Max file descriptors 65536 and Max virtual memory areas 262144.
It throws an error on start-up if these are set to very low value.
ERROR: bootstrap checks failed max file descriptors [16384] for elasticsearch process is too low, increase to at least [65536] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Check current values using:
$ cat /proc/sys/fs/file-max 16384 $ cat /proc/sys/vm/max_map_count 65530 $ ulimit -Hn 16384 $ ulimit -Sn 4096
To fix this, following files need to change/add below settings:
Recommended: Add a new file 99-elastic.conf under /etc/security/limits.d with following settings:
elasticsearch - nofile 800000 elasticsearch - nproc 16384 defaultusername - nofile 800000 defaultusername - nproc 16384 Alternatively, edit /etc/sysctl.conf with following settings:
fs.file-max = 800000 vm.max_map_count=300000

Kafka performance tuning

Performance Tuning of Kafka is critical when your cluster grow in size. Below are few points to consider to improve Kafka performance:
Consumer group ID: Never use same exact consumer group ID for dozens of machines consuming from different topics. All of those commits will end up on the same exact partition of __consumer_offsets, hence the same broker, and this might in turn cause performance problems. Choose the consumer group ID to group_id+topic_name.
Skewed: A broker is skewed if its number of partitions is greater that the average of partitions per broker on the given topic. Example: 2 brokers share 4 partitions, if one of them has 3 partitions, it is skewed (3 > 2). Try to make sure that none of the brokers is skewed.
Spread: Brokers spread is the percentage of brokers in the cluster that has partitions for the given topic. Example: 3 brokers share a topic that has 2 partitions, so 66% of the brokers have partitions for this topic. Try to achieve 100% broker spread.
Leader skew…

Procedure for name and date of birth change (Pune)

For change of name, the form (scribd) is available free of cost at Government Book Depot (Shaskiya Granthagar), which is located near Collector’s office, next to Saint Helena's School. The postal address is:
Government Photozinco Press Premises and Book Depot,
5, Photozinco Press Road, Pune, MH, 411001.
Wikimapia link

Charges for name or date of birth change, in the Maharashtra Government Gazette:
INR 120.00 per insertion (for two copies of the Gazette)
For backward class applicants: INR 60.00
Charges for extra copy of the Gazette: INR 15.00 per copy (two copies are enough, so you may not want to pay extra for extra copies).

Backward class applicants are required to submit a xerox of caste certificate of old name as issued by the Collector of the District concerned.

Once the form is duly submitted, it normally takes 10 to 15 days for publication of advertisement in the Maharashtra Government Gazette. The Gazette copy reaches to the address filled in the form within next 7 to 15 day…