How to size a JVM

Sizing a JVM for optimal performance is one of the trickiest tasks in the performance tuning for Java/JEE applications. While organizations have their own methodology to sizing a JVM, it is recommended to execute the JVM sizing in continuous phases with two distinct action steps. The sizing at the first step of tuning exercise is imperative to create a base. However, when performance issues are uncovered and fixed through code changes then it is suggested to size the JVM again for optimal performance. The rule of thumb I follow is to tune or size the JVM whenever there are changes to the code. Mentioned below are general tasks when sizing a JVM:

  • Run short duration tests such as for example, 10 minutes or 20 minutes. This time duration depends on the length of your business transactions that you plan to stress test.
  • During these short duration tests determine and tune the JVM parameters of interest such as setting of maximum and minimum sizes for heap, GC algorithm among others.
  • Note that the max/min sizes of heap is determined based on multiple factors for example, the number of objects created in a transaction path, memory consumed by these objects that are still alive (i.e. have a reference) among others.
  • Note the application response time and JVM behavior (for example the number and duration of minor and major garbage collections, heap growth) and apply the one that best balances JVM behavior with optimal application response time defined in your SLA.
  • Run long durations tests. The duration of such tests is usually constrained by your stress test environment availability. For example, if the application you are stress testing interacts with ten different legacy systems that can be available for a stress test in six hour intervals. Then you might want to run multiple two hour long duration tests and then possibly some six hour duration tests depending on the need. Fine tuning of the JVM can be done from such long duration tests.

Other articles of possible interest:

Top five Java application performance management tools

To scale out or not using Gigaspaces

AdventNet, one product for all performance/service management needs

Keynote and SOASTA, cloud offerings to test your web site performance

Three tools to monitor your Websphere MQ environment

Top six performance tuning tips for a Java enterprise application

On demand message queuing providers vs. SaaS Integrators

On demand message queuing providers enable custom integration of services through API or coding. In some situations using an on demand message queuing service adds more value, for example, in the situations of decoupling the components of your application. However, in the situations of integration between external services and given the current economic conditions, enterprises and SMB’s are focused on efficiency and cost savings looking to adopt SaaS models more than ever before.

The SaaS integrators provide an extra level of abstraction over the on demand message queuing providers, for example, a visual paradigm of integration with an emphasis on integration through configuration rather than, integration through coding.  This would increase the inclination towards SaaS integrators over integrating using coding or using on demand message queuing providers.

Other articles of possible interest:

Value proposition of SaaS integration

A list of on demand (SaaS) Message Queuing (MQ) providers

CloudMQ, new addition to on demand message queue service providers list

Gnip, Online Message Oriented Middleware (MOM)

CloudMQ, new addition to on demand message queue service providers list

The latest addition to the list of on demand message queuing service providers is CloudMQ. See my earlier coverage on the list of on demand message queue providers here. The article also answers the question: why enterprises may choose on demand message queuing integration mechanisms.

CloudMQ seems to have been built leveraging AMQP with Amazon EC2 and S3 components. CloudMQ overcomes some of the shortcomings in Amazon’s SQS such as JMS Support, message order preservation, and unlimited message sizes among others. While the SOA tag may not sound all that interesting for enterprises to adopt CloudMQ, however, the customer has more choice in this area from the providers such as Amazon SQS, OnlineMQ, Gnip and RabbitMQ (Erlang based and built over AMQP) and SaaS integrators such as CastIron, XAWare, Boomi, Jitterbit and Hubspan.

Other articles of possible interest:

Gnip, Online Message Oriented Middleware (MOM)

Value proposition of SaaS integration

Gnip 2.0 launches with a pricing model

Three tools to monitor your Websphere MQ environment

Does GoGrid opening their cloud API bring new business opportunities ?

GoGrid announces its Cloudcenter Application Programming Interface (API) under a share-alike Creative Commons license. This allows developers, system integrators among others to copy, modify, distribute and republish their cloud computing API with attribution to GoGrid. This is a big move from GoGrid. However, this was anticipated because of the intense competition from Amazon limiting the business opportunities to GoGrid in the current economic conditions.

GoGrid‘s key strategic differentiators among its competitors (mainly Amazon), when it started, were: support for MS Windows OS and an intuitive GUI console based on Google Web Toolkit (GWT). However, both these differentiators were neutralized by Amazon by launching Amazon Web Services (AWS) Console and supporting MS Windows on Amazon EC2. By going open, GoGrid competes directly with cloud enabling software providers such as 3Tera, open source Enomaly, Citrix C3, VMware vCloud/VDCOS and Elastra among others. However, it will be interesting to see the ramifications of this move over time in the cloud computing space and whether going open would bring any new business opportunities to GoGrid in the current economy.

Other articles of possible interest:

What does Oracle cloud offering mean to the enterprise

VMware and Citrix want to be enterprise cloud enablers

What cloud services can a small IT firm provide?

Will cloud computing be a commodity business ?

Why enterprises wouldn’t embrace private clouds ?

Why enterprises wouldn’t embrace private clouds ?

James Urquhart of the wisdom of clouds, a popular blog, presents an interesting argument for private clouds. His argument for private clouds cites three reasons which are mentioned below:

  • “Disruptive online technologies have almost always had an enterprise analog. The Internet itself had the Intranet: the use of HTTP and TCP/IP protocols to deliver linked content to an audience through a browser. The result was a disruptive technology similar to its public counterpart, but limited in scope to each individual enterprise.
  • Cloud computing itself may primarily represent the value derived from purchasing shared resources over the Internet, but again there is an enterprise analog: the acquisition of shared resources within the confines of an enterprise network. This is a vast improvement over the highly siloed approach IT has taken with commodity server architectures to date.
  • The result is that much of the same disruptive economics and opportunity that exists in the “public cloud” can be derived at a much smaller scale from within an enterprise’s firewall. It is the same technology, the same economic model and the same targeted benefits, but focused only on what can be squeezed out of on-premises equipment.”

These are interesting points. However, what are missing with this argument are two things:

  1. Historically in enterprise computing, we have seen every enterprise analog was driven by a business need. For example, an Intranet service such as accessing a repository of “Customer Contacts” is driven by the need for confidentially in the data and thus is not exposed over Internet. So what would be the business case for a private cloud in an enterprise?
  2. The point on shared resources for the enterprise and disruptive economics is best summed up by the question: what would be the cost associated with the value (if any) provided by a private cloud? Moreover, can this cost be justified for services (i.e. products) that would be hosted in a private cloud?

Before the above questions are answered let’s recap for a moment, the important value additions of cloud computing (public cloud). The benefits for using cloud computing (public cloud) is in automatic scaling, cost reductions and increased flexibility for business to leverage IT.  The rest of this article analyzes whether these benefits can be realized by adopting a private cloud?

Automatic Scaling: While public clouds have demonstrated the value add of automatic scaling especially to startups (the poster child example for this being the case study on Animoto.com). However, when it comes to enterprises, the question would be what services were disrupted due to limitations or lack of adapting to unanticipated traffic spikes. Or what are the services/projects in the pipeline that could grow virally leading to a possibility of service disruption thereby leading to decreases in service adoption by the customers. Given the enterprise processes around business planning and execution, it is seldom that an enterprise would run into such situations. However, unless service metrics numbers can back you up when answering such questions, creating a business case for private cloud adoption can be difficult.

Cost Reductions:  The CAPEX and OPEX costs associated with a private cloud in an enterprise would be roughly the same or greater than without a private cloud. Why? In order to have a private cloud, an enterprise would use the existing or possibly new infrastructure (hardware). This would mean there is limited scope for decreases in the CAPEX costs. Additionally, administrators are required to deploy the private cloud enabling software over the infrastructure resulting in increased administration overhead to cloud enable the existing enterprise applications. Thus there are no decreases in the OPEX costs either. Moreover, not all enterprise application stacks/platforms are supported on cloud enabling software. However, the point is, all this brings a new set of unknown and governance related issues that contribute to increased costs.

Flexibility:  The release to market for services and ease of recovering business in the event of a disaster is or can be optimized significantly by virtualization. Thus this argument of using private clouds for increased flexibility or agility, over virtualized environments, for business to leverage IT isn’t really convincing.

James and some others have bought into the noise around private clouds; however, enterprises would have minimal scope in adopting private clouds.

Forecast Survey: Java/JEE not a hot skill for ‘09

The respondents to Computerworld’s annual forecast survey voted .Net as a hot programming skill for ‘09. It is surprising there is no mention of Java/JEE in the top nine list of hot skills. Per the survey, the top skills for ’09 are:

1.       SAP, .Net in application development category

2.       Help desk/technical support

3.       Project management

4.       Networking

5.       Business Intelligence

6.       Security

7.       Web 2.0

8.       Data center

9.       Telecom

The complete article is available here.

One layoff every ten seconds

The current economic crisis has resulted in massive layoffs across the world. LiveMint.com, a subsidiary of Wall Street Journal, reports there is at least one layoff every ten seconds. In the US, for the month of November alone, there have been more than 500,000 jobs slashed. Techcrunch layoff tracker reports over a hundred thousand job cuts in tech companies. However there is some positive news from various job sites around the web.

  • A report released by readwriteweb.com shows some recruiting happening including at startups. The top three job categories between Nov’1 2008 to Dec’14 2008, with maximum vacancies are for a) Designer/Developer b) VP c) Sales/Marketing. The complete report is available over here. The job postings are here.
  • Dice’s report for St Louis released in Nov’08 is available here showing Tech jobs might assume more importance.
  • A posting from SimplyHired team says though there has been significant increase in job search activity in the New York area, however, job searches in the areas of San Jose, Oakland and Cincinnati have decreased to -13%, -37% and -21% respectively. The complete post is available over here.

Mentioned below are some resources from around the web to survive a layoff.

  1. Managing your layoff
  2. Managing the layoff process
  3. Next steps after a layoff
  4. The layoff survival guide
  5. Top 5 things to do after a layoff