Optimization of JVM by dynamic thread prioritization for web services - Lam, , Hai-Shuan; Rao, , Gsn. R. K.; Eswaran, , Chikkanan; Tai, , Ewe-Shin (2006)
The explosive growth of e-business activities implemented over web services has created a need for optimizing the throughput of web server applications. Due to its portability., Java has become the popular and multithreading capability language for developing web applications. The performance of Java application greatly depends on its bytecode interpreter namely Java Virtual Machine (JVM). Optimization has been studied on several areas such as thread synchronization, thread scheduler and garbage collections. This paper presents outcome of an implementation of priority mechanism that suits JikesRVM. The main objective is to obtain a simulated throughput improve on SPECjbb2000 benchmarking suite. The result of this project reveals an improvement of 3%-4% on throughput after the implementation of the new priority mechanism. Insufficient thread information and additional overhead are the two main challenges to overcome for this mechanism to achieve higher efficiency. From the result obtained, errors such as deadlock, starvation and priority inversion may occur if system thread priority level is assigned to be lower than the application thread. To further utilize the priority mechanism in JikesRVM suggested by this project, prioritization policy switching, multi-parameters reference and implementation of algorithm in other thread queues are possible.